开发者学堂课程【MySQL 实操课程: MySQL 之 DML 应用实战】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/717/detail/12805
MySQL 之 DML 应用实战
目录
一、DML 介绍
二、插入记录
三、更新、删除记录
四、查询指定列、查询不重复记录
一、DML介绍
DML 定义
DML(Data Manipulation Language): 数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用的关键字主要包括 insert、delete、update 和 select 等。
二、插入记录
示例:插入记录
1.查看 emp 表
输入 SELECT * from EMP
; 下图可以看见 emp 表里面没有任何数据库。
2.插入记录
输入 INSERT into emp(ename,hiredate,sal,deptno) VALUE('zhangsan','2015-08-01','2000',1)
INSERT into emp(ename,hiredate,sal,deptno) VALUE(lisi','2017-09-21','3000',1)
显示执行成功
3.查看 emp 表是否成功插入记录
输入 SELECT * from EMP
;可以看见已经插入成功
4.创建 dept 表
输入 CREATE TABLE dept(deptno int(3),deptname varchar(20));
5.在 dept 表中插入数据库
输入 insert INTO dept VALUES(1,'tech'),(2,'sal'),(3,'fin');
显示执行成功
当前有两个数据表
一个是 emp 表,一个是 dept 表
6.查看 dept 表
输入 SELECT * from dept;输入 insert INTO dept VALUES(1,'tech'),(2,'sal'),(3,'fin');
已经执行成功。
7.查看 emp 表
输入 SELECT * from emp;
三、更新、删除记录
1.更新记录
示例:将 lisi 的 sal 更新为4000
输入 select * from emp;
可以看见 lisi 当前的 sal 为3000
输入 UPDATE emp set sal=4000 where ename='lisi';
显示执行成功
验证 emp 表是否执行成功
输入 select * from emp;
显示‘lisi’的sal更新为4000执行成功
2.删除记录
示例:将 lisi 删除
输入 DELETE FROM emp where ename='lisi';
显示执行成功
验证 emp 表是否执行成功
输入 select * from emp;显示‘lisi’已经被删除
3.删除记录的另一种方式:利用 truncate
truncate table emp 是删除整个表里面的数据,一次性清除
输入 truncate table emp;显示执行成功
验证 emp 表是否执行成功
输入 select * from emp;emp
表里面已经没有任何数据(全部清除)。
4.truncate 与 delete 的差异
(1)delete 对于表的删除:如果表含有自增的列,那么在 delete 的过程中,插入的数据,表的自增列不会重零继续开始,而是接着原来删除的记录开始。
示例:增加列
①输入 ALTER table emp add COLUMN id int(3) auto_increment;
显示错误:需要指定组件,因为是自增列
②添加组件
输入 ALTER table emp add COLUMN id int(3) auto_increment primary key;
显示语法错误
③重新输入
alter table emp add id int auto_increment primary keyfirst;
点击执行
④查看 desc 表
输入 desc emp;可以看见 auto_increment 已经成功执行了。
⑤查询 emp 表
输入 select * from emp;可以看见没有任何数据
⑥插入 zhangsan 数据
输入 insert into emp(ename,hiredate,sal,deptno) VALUES('zhangsan','2007-08-01',2000,1);
执行成功
查询 emp 表
输入 select * from emp;插入数据成功
⑦插入 lisi 数据
输入insert into emp(ename,hiredate,sal,deptno) VALUES('lisi','2017-08-25',3000,1);
执行成功
查询 emp 表
输入 select * from emp;插入数据成功
可以看见 ID 会自增。
示例:删除之后在插入数据
输入 delete from emp;
输入 select * from emp;可以看见 emp 表里面的数据为空。
直接插入 insert into emp(ename,hiredate,sal,deptno) VALUES('zhangsan','2007-08-01',2000,1);
输入 select * from emp;ID 是从3开始的,即使把前面两条数据删除了,ID 依然是从原来删除的 ID 自增的。
执行 truncate table emp;把数据删除
查询:输入 select * from emp;是没有数据的
插入 insert into emp(ename,hiredate,sal,deptno) VALUES('zhangsan','2007-08-01',2000,1);
查询:输入 select * from emp;ID 是从1开始
(2)delete 对于数据的删除,如果是放在事物里面,它是可以支持回滚,但是truncate 不支持数据的回滚。
四、查询指定列、查询不重复记录
1.查询指定列
(1)插入 'lisi、wangwu
插入insert into emp(ename,hiredate,sal,deptno) VALUES('lisi','2017-08-25',3000,1);
再插入 insert into emp(ename,hiredate,sal,deptno) VALUES('wangwu','2019-11-18',8000,2);
查询 emp 表
输入 select * from emp;有三条数据
(2)不显示 ID
输入 select ename,hiredate,sal,deptno from emp;
已经不显示 ID 了
2.查询涉及到的部门
输入 select DISTINCT deptno from emp;
只显示两个部门。