数据库相关知识点提要
关键词:
DESC
LIMIT
上面的limit只有一个参数值,将表中的前三条数据查询出来
上面的SQL语句,limit有两个参数,第一个参数表示从第几行数据开始查,第二个参数表示查几条数据,“limit 3,2”表示从第四行数据开始,取两条数据。
(NOT)LIKE
like ''%X%'和'X%'以及'%X'的区别
'abc%'找以abc开始的;
'%abc' 找以abc结尾的;
'%abc%'找字符串里含有abc的;
结果肯定不同!
LEFT / RIGHT / INNER JOIN
JOIN默认为inner JOIN
左(外)连接以左表为主
右(外)连接以右表为主
EXISTS
举个栗子:
Oracle自带的EMP、DEPT表查询,部门编号小于30的所有员工信息
Oracle语句:
select * from emp where deptno in (select deptno from dept where deptno <30);
select * from emp e where exists (
select * from dept d where deptno <30 and d.deptno = e.deptno ;
);
- 首先执行外查询 select * from emp e,然后取出第一行数据,将数据中的部门编号传给内查询
- 内查询执行select * from dept d where deptno <30 and d.deptno = e.deptno ;看是否查询到结果,查询到,则返回true,否则返回false;比如传来的是30,则不满足deptno <30 and d.deptno = 30,返回false
- 内查询返回true,则该行数据保留,作为结果显示;反之,返回false,则不作结果显示
- 逐行查询,看内查询是否查到数据,是否保留作结果显示
DELIMMITER
其实就是告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。在为可能输入较多的语句,且语句中包含有分号。
这种情况下,就需要 事先把delimiter换成其它符号,如//或$$。
PROCEDURE
存储过程;程序
INSERT INTO
插入记录语句
INSERT INTO 表名称 VALUES (值1, 值2,....)
INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
INSERT INTO Persons (LastName, Address) VALUES ('Wilson', 'Champs-Elysees')
CURSOR
游标用declare 语句创建。DECLARE 命名游标,并定义相应地select 语句,根据需要带where 和其他子句。
下面在存储过程中使用declare 定义一个游标,存储过程完成后游标也相应消失。
打开和关闭游标
在处理open 语句时执行查询,存储检索出地数据以供浏览和滚动游标处理后,要关闭游标
close会释放游标使用的所有内部内存和资源,所有游标使用后都要进行关闭操作
在一个游标关闭后,如果没有重新打开,则不能使用它。但是使用声明过的游标不需要再次声明,使用open 语句打开就行。
如果不明确的关闭游标,mysql 将会在到达end 语句的时候自动关闭它。
相关连接👇
MySQL ------ 游标(CURSOR)(二十六) - 知乎 (zhihu.com)
FETCH
使用游标数据的关键词
在一个游标被打开后,可以使用 fetch 语句分别访问它的每一行。
fetch 指定检索什么数据(所需的列),检索出来的数据存储在什么地方。还向前移动游标中的内部指针,使下一条fetch语句检索下一行(避免重复读取一行)。
TRIGGER
触发器的创建
表名:表示触发器监控的对象。
BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。
INSERT|UPDATE|DELETE:表示触发的事件。
INSERT 表示插入记录时触发;
UPDATE 表示更新记录时触发;
DELETE 表示删除记录时触发。
触发器执行的语句块:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。
相关连接👇
(20条消息) MySQL—— 17 触发器_有什么奇怪!的博客-CSDN博客
WHERE 1=2
表示条件为否
HAVING
配合 合计函数 (求和、求平均)使用
练习题:
1.排序与分页
2.多表查询
3.视图![](https://img2023.cnblogs.com/blog/2986763/202301/2986763-20230128155352721-430450569.png)
4.存储过程
5.存储函数
6.流程控制![](https://img2023.cnblogs.com/blog/2986763/202301/2986763-20230128155729817-1399193119.png)
7.游标的使用
8.触发器
参考答案:
1.
2.![](https://img2023.cnblogs.com/blog/2986763/202301/2986763-20230128160109826-1708488157.png)
3.
4.
5.
6.
7.![](https://img2023.cnblogs.com/blog/2986763/202301/2986763-20230128160441726-1165124159.png)
8.
本文来自博客园,作者:slowlydance2me,转载请注明原文链接:https://www.cnblogs.com/slowlydance2me/p/17070517.html