DML:对数据库中表记录的操作,主要包括表记录的插入、更新、删除和查询。
1.插入记录:
INSERT INTO tablename (field1,field2,...,fieldn) VALUES (value1,value2,...,valuen)
eg.insert into emp (ename,hiredate,sal,deptno) values ('zzx1','2000-01-01','2000',1)
eg.insert into empvalues ('zzx1','2000-01-01','2000',1) 也可不指定字段名称
eg.insert into emp (ename,sal) values ('zzx1','2000') 也可仅部分字段显示插入
eg.insert into emp (ename,hiredate,sal,deptno) values ('zzx1','2000-01-01','2000',1) , ('zzx2','2022-01-01','4000',1) 也可一次性插入多条记录,以逗号隔开
2.更新记录:
UPDATE tablename SET field1=value1,field2=value2,...,fieldn=valuen [WHERE CONDITION]
eg.update emp set sal =4000 where ename='lisa'
- 也可更新多个表中的数据:UPDATE t1,t2,...,tn SET t1.field1=exprl, tn.fieldn=exprn [WHERE CONDITION]
SELECT * FROM emp
SELECT * FROM dept
UPDATE emp a,dept b SET a.sal =a.sal*b.deptno,b.deptname=a.ename WHERE a.deptno =b.deptno 同时更新emp中的字段sal和表dept中的字段deptname
3.删除记录:
DELETE FROM tablename [WHERE CONDITION]
ed.delete from emp where ename='dony'
- 一次删除多个表的数据:DELETE t1,t2,...,tn FROM t1,t2,...,tn [WHERE CONDITION]
eg.delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3 同时删除表emp和dept中deptno为3的记录
4.查询记录:
SELECT *FROM tablename [WHERE CONDITION]
- 也可以用逗号分隔字段来代替,即二者等价:select * from emp=select ename,hiredate,sal,deptno from emp
(1)查询不重复的记录:关键字DISTINCT
eg.select distinct deptno from emp 将表中的记录去掉重复后显示出来
(2)条件查询:关键字WHERE
eg.select * from emp where deptno=1
- where处可以使用:=、>=、<=、<、>、!=、or、and等比较运算符和逻辑运算符
eg.select * from emp where deptno=1 and sal <3000
(3)排序和限制:关键字ORDER BY,DESC:降序 ASC:升序,不写则默认升序
SELECT * FROM tablename [WHERE CONDITION] [ORDER BY field1 [DESC|ASC],field2 [DESC|ASC],...,fieldn [DESC|ASC]]
排序后的字段只希望显示一部分,使用关键字LIMIT:
(4)聚合
(5)表连接
(6)子查询
(7)记录联合