DML 操作是指对数据库中表记录的操作,主要包括表记录插入(insert)、更新(update)、删除(delete)和查询(select)
1. 插入记录
表创建好后,就可以往里插入记录,基本语句如下:
INSERT INTO tablename (field1,field2,.....fieldn) VALUES (value1,value2....valuen);
例如,向emp 表中插入以下记录:
ename 为abc1,hiredate 为 2017-10-09,sal 为2000,deprno 为1
也可以不用指定字段名称,但是values后面的顺序应该和字段的排列顺序一致:
含可空字段、非空但是含有默认值的字段、自增字段,可以不用在insert 后的字段列表里面出现,value后面只写对应字段名称的value,
这些没写得字段可以自动设置为NULL、默认值、自增值
例如,只对表中的ename 和sal字段显示插入:
insert 语句可以一次性插入多条记录
例如:
2. 更新记录
表中记录值可以通过uodate 命令进行更改,语法如下
UPDATE tablename SET field1=value1,field2=value2,....fieldn=valuen [WHERE CONDITION]
例如,将表中abc1 的薪水从2000 改为3000
3.删除记录
语法如下:
DELETE FROM tablename [WHERE CONDITION]
例如,在emp 中将dony 的记录全部删除,命令如下:
4.查询记录
语句如下:
SELECT * FROM tablename [WHERE CONDITION]
查询所有的记录值
select * from emp;
(1)查询不重复记录。
select distinct deptno from emp;
(2)条件查询
select * from emp where deptno=1;
多个字段查询
select * from emp where deptno=1 and sal<3000;
(3)排序和限制
select * from emp order by sal;
对于sal 相同的前两条记录,如果按照从高到低排序,可以使用以下命令:
select * from emp order by sal desc;
对于后续记录,希望只显示一部分,可以用LIMIT 关键字
select * from emp order by sal limit 3;
如果 显示emp 表中 按照sal 排序后从第二条记录开始,显示3条记录:
select * from emp order by sal limit 1,3;
(4)聚合
例如要统计emp表中公司人数
在此基础上,统计各个部门人数:
更细一点,既要统计部门人数,又要统计总人数:
统计人数大于1的部门
select deptno,count(1) from emp group by deptno having count(1)>1;
统计公司所有员工的薪水总额、最高最低薪水:
(5)表连接
显示多个表中字段
(6)子查询