数据库基本知识(二)——DML语句
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 emp values ('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: SELECT ... [LIMIT offset_start,row_count]
eg.select *from emp order by sal limit 3
(4)聚合:
SELECT [field1,field2,...,fieldn] fun_name
FROM tablename
[WHERE where_contition]
[GROUP BY field1,field2,...,fieldn
[WITH ROLLUP]]
[HAVING where_contition]
- fun_name 为聚合函数,sum,count(*),max,min
- group by 表示进行分类聚合的字段
- with rollup 可选语法,表明是否对分类聚合后的结果进行再汇总
- having 表示对分类后的结果再进行条件的过滤
(5)表连接
(6)子查询:关键字in、not in、=、!=、exists、not exsits等
eg.select * from emp where deptno in (select deptno from dept)
(7)记录联合:关键字union、union all
SELECT * FROM t1
UNION|UNION ALL
SELECT* FROM t2
...
UNION|UNION ALL
SELECT * FROM tn;
- union all:把结果集直接合并在一起
- union :将union all的结果进行一次distinct ,去除重复记录后的结果
DCL 语句:DBA用来管理系统中的对象权限时使用
浙公网安备 33010602011771号