〇、前言
DML(Data Manipulation Language):数据操作语言,用来操作表中存储的数据,但是只能完成增、 删 、改;
一、增加数据
insert into [表名] (字段列名集合) values (值的集合) ;
多个列名之间‘,’分割,多个值之间‘,’分割,值的顺序和列名顺序一一对应。
如:insert into stu (sid, name, sal) values (1, "ZhangSan", 45.67) ;
结果 :
如果给表里的每个字段都添加值则中间的列名集合可以省略:
如:insert into stu values (1, "LiSi", 88.88) ;
结果:
如上,两条数据具有同样的sid,这是不符合业务逻辑的,由此我们需要给字段添加约束。约束的作用就是为了保证数据的正确性和完整性。
二、完整性约束
注意:约束都是添加在字段上的
1、非空(NOT NULL):插入数据不能为null;(无插入值时和值为null时都不能插入)
如:create table stu (sid int(11), name varchar(20) not null, sal double(5,2));(给name添加非空约束)
2、唯一(UNIQUE):插入的数据唯一;
如:create table stu (sid int(11) unique, name varchar(20), sal double(5,2));(给sid添加唯一约束)
3、主键(PRIMARY KEY):一条数据在数据库中的唯一标识,特点:非空且唯一;
如:create table stu (sid int(11) primary key, name varchar(20), sal double(5,2)); (给sid添加主键约束,要求sid的值非空且唯一)
4、主键自增长(PRIMARY KEY AUTO_INCREMENT):如果主键的是int,那么如果给主键赋值为null , 会自动根据上一条记录的值+1。(只能给int、long类型设置)
如:create table stu (sid int(11) primary key auto_increment, name varchar(20), sal double(5,2));(给sid添加主键自增长约束)
三、完整性约束之外键约束
1、外键:一张表的主键作为另一张表的外键,就保证数据的完整性。(注意: 主键和外键的数据类型必须一致,名称可以不一致)
如:CONSTRAINT fk_emp_dept FOREIGN KEY(deptno) REFERENCES dept(deptno)
2、表和表之间的关系
- 一对一的关系 :主外键可以在任意一方;
- 一对多或者多对一的关系 :外键添加到多的一方;
- 多对多的关系:定义中间表,中间表的两个字段都是外键,分别用于关联两个表的主键。
四、删除数据
delete from 表名 [where 条件] ;
如: delete from stu where sid = 1 ; (删除sid为1的数据)
没有where条件的话表示删除所有的数据:
- delete from 表名 ; (逐行删除表中的数据,效率低)
- truncate table 表名 ;(直接把表删除然后再创建表,效率高)
五、修改数据
update 表名 set 字段名 = 字段值 , 字段名 = 字段值 , ... [where 条件] ; (没有where条件的话表示修改所有数据)
如:update stu set name = 'lisisi', sal = 66.88 where sid = 2 ; (修改sid为2的数据的name和sal的值)