m-zhuang

导航

MySQL 数据库基本操作

数据库基本操作

一、SQL语句管理

DDL 数据定义操作 创建 比如表 库 索引

DML 数据操纵 用来插入 删除修改 数据库中的数据

DQL 数据查询 查找符合条件的数据记录

DCL 数据控制 设置后缀更改数据库用户和角色权限

二、常用的数据类型

数据类型 含义
int 整型
float 单精度浮点型 4字节32位
double 双精度浮点型 8字节64位
char 固定长度的字符类型
varchar 可变长度的字符类型
text 文本
image 图片
decimal(5,2) 5个有效长度数字,小数点后面有2位

三、基本操作

1. 查看当前服务器中的数据库

show databases;

image-20230711140542754

2. 创建新的数据库

create database test1sql;

image-20230711141803162

3. 在数据库中创建新的数据表

主键一般选择能代表唯一性的字段不允许取空值(NOLL),一个表只能有一个主键。

create table 表名 (primary key (主键名),字段1 数据类型, 字段2 数据类型);

# 查看存在的数据库
show databases;

# 使用这个数据库
use test1sql;

# 创建数据表
create table test1tab (id int NOT NULL,name char(5) NOT NULL,age int NOT NULL,salary double NOT NULL);
# 注:这条命令没加主键,加主键使用此条
create table test1tab (primary key (id),id int NOT NULL,name char(5) NOT NULL,age int NOT NULL,salary double NOT NULL);

# 查看存在的数据表
show tables;

# 查看指定的数据表的属性
desc test1tab;

image-20230711144735135

4. 向数据表中插入数据记录

# 查看数据表中的属性
desc test1tab;

# 插入数据记录
insert into test1tab (id,name,age,salary) values(1,'员工1',23,18888);
insert into test1tab (id,name,age,salary) values(2,'员工2',24,19999);
insert into test1tab (id,name,age,salary) values(3,'员工3',24,20000);

# 查看表中所有的数据记录
select * from test1tab;

image-20230711153022280

5. 查看表中所有数据记录

select * from test1tab;

image-20230711154649933

6. 按字段查找数据表中的记录

select name,salary from test1tab;

image-20230711155617722

7. 查找数据表中指定的记录

select * from test1tab where id=2;

image-20230711160626036

8. 查找指定记录的指定字段

select name,salary from test1tab where id=2;

image-20230711161014465

9. 按记录范围进行查找

# 查看表中前两行记录
select * from test1tab limit 2;

# 查看第1行之后的前两行
select * from test1tab limit 1,2;

image-20230711161357661

10. 删除表

删除速度

drop> truncate > delete

安全性

delete 最好

(1)drop

drop table table_name;

TRUNCATE清空表后,没有返回被删除的条目:TRUNCATE 工作时是将表结构按原样重新建立,
因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,
ID会从1开始重新记录

① 删除速度快

② 表和内容和结构删除

③ 不可以带 where

④ 不可以回滚(无法恢复)

⑤ 属于 DDL

实例:

drop table test1tab;

image-20230713194314618

(2)truncate

truncate table table_name;

TRUNCATE清空表后,没有返回被删除的条目: TRUNCATE 工作时是将表结构按原样重新建立,因此在速度上TRUNCATE会比DELETE清空表快;使用TRUNCATE TABLE 清空表内数据后,ID会从1开始重新记录

① 删除速度快

② 表的内容删除

③ 不可以带 where

④ 不可以回滚(无法恢复)

⑤ 属于 DDL

实例:

truncate table test1tab;

image-20230713192336012

(3)delete

delete from table_name;

DELETE清空表后,返回的结果内有删除的记录条目;

DELETE 工作时是一行一行的删除记录数据的;如果表中有自增长字段,使用DELETE FROM 删除
所有记录后,再次新添加的记录会从原来最大的记录ID后面继续自增写入记录。

① 删除速度慢,需要逐行删除

② 表结构在,表内容要看 where 执行的情况

③ 可以带 where

④ 可以回滚(可恢复)

⑤ 属于 DML

应用场景

① 不在需要一张表的时候 用 drop

② 想删除部分数据行的时候,用delete并且加上where字句

③ 保留表而删除所有数据的时候用 truncate

实例:

delete from test1tab;

image-20230713191655970

11. 修改 更新数据表中的数据记录

格式:

update 表名 set 字段1=字段值1 where 条件表达式;

实例:

将 id为3的age更新为25

update test1tab set age=25 where id=3;

12. 在数据表中删除指定的数据记录

格式:

delete from 表名 where 表达式;

实例:

将 id为3的数据记录删除

delete from  test1tab where id=3;

image-20230712153937312

13. 修改表名

格式:

alter table 旧表名 rename 新表名;

实例:

将表名 test1tab 改为 testtab1

alter table test1tab rename testtab1;

image-20230712154931644

14. 扩展表结构

增加字段

格式:

alter table 表名 add 新增字段 数据类型 属性;

实例:

向 testtab 表中增加字段 phone,数据类型为 char(11)

alter table testtab1 add phone char(11) not null;

image-20230712160226018

15. 修改表中字段添加唯一键

格式:

unique key 是添加唯一键

alter table 表名 change 旧列名 新列名 数据类型 unique key;

实例:

将testtab1中的age字段改为ages,并将其设置为唯一键

alter table testtab1 change age ages int(3) unique key;

image-20230712190527361

16. 删除表中字段

格式:

alter table 表名 drop 字段名;

实例:

将testtab1表中的phone字段删除

alter table testtab1 drop phone;

image-20230712191504987

17. 检查表是否存在

if not exists 是检查表是否存在

create table if not exists testtab (值1 数据类型,值2 数据类型);

表示检测要创建的表是否已存在,如果不存在就继续创建

18. int数据类型自动填充

int(4) zerofill

表示若数值不满4位数,则前面用"0"填充,例0001

20. 自增字段

int(4) auto_increment

21. 复制表结构

create table testtab2 like testtab1;

image-20230714164030981

22. 复制表中记录

image-20230713190522569

23. 克隆表

表结构和表记录都复制

create table testtab3 (select * from testtab1);

image-20230713190951823

24. 创建临时表

临时表创建成功之后,使用SHOWTABLES命令是看不到创建的临时表的,临时表会在连接退出
后被销毁。

如果在退出连接之前,也可以可执行增删改查等操作,比如使用DROP TABLE语句手动直接删除
临时表。

可做测试环境使用 比如删除大量数据的时候,可以创建临时表 做一个复杂删除

PS:无法创建外键

create temporary table test1tab (id int(4) zerofill primary key auto_increment, name varchar(10) not null, hobby varchar(50));

image-20230714162914811

退出 MySQL 临时表消失

image-20230714164458130

25. 6种常见约束

约束 名称
foreign key 外键
not null 非空约束
unique [key|index] 唯一约束(键/索引)
default 默认值约束
auto_increment 自增约束

posted on 2023-07-11 19:55  m_zhuang  阅读(15)  评论(0编辑  收藏  举报