MySQL学习 - DML操作

SQL语句分类

  • DDL:数据定义语句:create表、库
  • DML:数据操作语句:insert、update、delete
  • DQL:数据查询语句:select
  • DCL:数据控制语句:管理数据库:管理权限grant、revoke

1.数据库操作 - database

  • 创建数据库 - create
  • 删除数据库 - drop
  • 查看数据库 - show

1.1 创建数据库 - create

1
2
create database `wang_study`;
create database `wang_study` character set utf8;

1.2 删除数据库 - drop

1
drop database `wang_study`;

1.3 查看数据库 - show

1
2
show databases; #显示所有数据库
show create database `wang_study`; #显示创建数据库wang_study的语句

2.表操作 - table

在满足的情况下,尽量使用小的

数据(列)类型:[]参数,【】中是字节数

  • 数据类型:
    • 整形,tinyint【1】、smallint【2】、mediumint【3】、int【4】、bigint【8】
    • 小数类型,float【4】、double【8】、decima[M,D]【大小不确定,M:总位数,不超过65;D:小数位数,不超过30。若不指定,M默认10,D默认0】
    • 位类型,bit(m)【m 范围 1~64】
  • 文本类型:char【0-255】、varchar【065535 == 02^16-1】、text、longtext
  • 二进制数据类型,blob、longblob
  • 时间类型,date【年月日】、time【时分秒】、datetime【年月日时分秒 yyyy-MM-dd HH:mm:ss】、timestamp【时间戳:自动更新】、year【年】

时间戳:

1
2
3
4
5
6
CREATE TABLE  tb1( 
id INT,
# 根据修改时间自动更新
# DEFAULT CURRENT_TIMESTAMP 不自动更新
t1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

2.1 创建表 - create

1
2
3
4
create table table_1 (
`id` int unsinged, # unsinged 无符号 默认是有符号
`name` varchar(255),
) character set utf8;

2.2 ★修改表 - alter table

  • 添加字段add、修改字段modify、删除字段drop

  • 修改字段名change

  • 查看表的结构:desc 表名

  • 修改表名:Rename table 表名 to 新表名

  • 修改表字符集:alter table 表名 character set 字符集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 添加字段
alter table `emp`
add `image` varchar(50) not null default '';
# 修改字段
alter table `emp`
modify id varchar(10);
# 删除字段
alter table `emp`
drop `ccc`;
# 修改字符集
alter table `emp`
character set utf8;
# 需要改字段名
alter table `emp`
change `name` `new_name` varchar(10) not null default '';

2.3 删除表 - drop

1
2
drop table 表名;
drop table `emp`;

3.数据操作

3.1 插入数据 - insert into

  • 插入一条数据
  • 插入多条数据
1
2
3
4
5
6
insert into 表名(字段) values(值);
insert into `emp`(字段1,字段2) values (值1,值2);
insert into `emp`(字段1,字段2) values
(值1,值2),
(值1,值2),
(值1,值2);

3.2 修改数据 - update

  • 修改指定字段数据

  • 修改多个字段数据

  • 修改全表数据

    没有where子句修改所有行

1
2
3
4
5
6
7
update 表名 set 字段 =where 条件;
# 修改指定字段数据
update `emp` set name = 'zhangsan' where id = 1;
# 修改多个字段数据
update `emp` set name = 'zhangsan', money = money + 500 where id = 1;
# 修改整个表数据
update `emp` set name = 'zhangsan';

3.3 删除数据 - delete

  • 删除指定数据,有where条件
  • 删除表中所有数据,没有where子句修改所有行
  • delete只能删除数据,不能删除表本身(使用drop table删除表)
1
2
3
4
# 删除指定字段数据
delete from `emp` where name = 'zhangsan';
# 删除表中所有数据
delete from `emp`;