DML(Data Manipulation Language)数据操纵语言,通俗来说就是直接对表里的数据进行增,删,改操作
增
insert into 表名 (字段名1,字段名2,字段名3) values (值1,值2,值3);
如果不指定字段则默认是全部字段都进行赋值
也可以同时插入多行数据,例如
insert into 表名 (字段名1,字段名2,字段名3) values (值1,值2,值3),(值1,值2,值3),(值1,值2,值3);
删
delete from 表名 [where 条件语句];
没有条件语句默认全部删除
也可以使用truncate来删除
truncate table 表名;
truncate相当于将表删除,然后重新创建一个一模一样的的表,对于拥有自动增长字段的表,可以删除增长字段的值。
改
update 表名 set 字段名 = 值 [where 条件语句];
没有条件语句则该字段所有的数据都改为该值
约束
- 主键
primary key //主键约束,一个表里面只能有一个,有该约束的字段的值不能为空也不能重复
写法
create table 表名(
id int primary key,
name varchar(20),
sex varchar(2)
);
或
create table 表名(
id int,
name varchar(20),
sex varchar(2),
constraint 该约束的名字 primary key(id)
);
其中constraint和名字可以省略
也可以多字段组成联合主键,将两个或多个值看作是一个整体
create table 表名(
id int,
firstname varchar(20),
lastname varchar(20)
constraint 该约束的名字 primary key(firstname,lastname)
);
删除主键
alter table 表名 drop primary key;
- 非空约束
not null //可以有多个,被约束的字段的值不能为空
- 唯一约束
unique //可以有多个,被约束的字段的值不能重复
- 外键约束
foreign key //在多表中使用,用来和其他表进行连接
- 自增
auto_increment //用于是数字类型的字段,插入数据时该字段的值自动加1,必须放在主键后
改变起始值
create table student3(
id int auto_increment,
name varchar(20),
age int default(2),
sex varchar(10)
)auto_increment = 10; //从10开始增长
拥有auto_increment字段后,delete只能删掉数据,但无法清除编号,例如,现在编号为20,使用delete删除所有数据,再添加一条数据,该数据的编号不是1而是21
字段的约束都可以通过alter来进行增,删,改