数据库基本知识(二)——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]

  1. fun_name 为聚合函数,sum,count(*),max,min
  2. group by 表示进行分类聚合的字段
  3. with rollup 可选语法,表明是否对分类聚合后的结果进行再汇总
  4. 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;

  1. union all:把结果集直接合并在一起
  2. union :将union all的结果进行一次distinct ,去除重复记录后的结果

DCL 语句:DBA用来管理系统中的对象权限时使用

posted on 2019-10-17 21:12  能晓远  阅读(339)  评论(0)    收藏  举报

导航