数据库相关知识点提要

关键词:

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 ;
);

  1. 首先执行外查询 select * from emp e,然后取出第一行数据,将数据中的部门编号传给内查询
  2. 内查询执行select * from dept d where deptno <30 and d.deptno = e.deptno ;看是否查询到结果,查询到,则返回true,否则返回false;比如传来的是30,则不满足deptno <30 and d.deptno = 30,返回false
  3. 内查询返回true,则该行数据保留,作为结果显示;反之,返回false,则不作结果显示
  4. 逐行查询,看内查询是否查到数据,是否保留作结果显示

 

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.视图

 

 

 

 

 

 

 

 4.存储过程

 

 

 

 

 

 

 

 

 5.存储函数

 

 

 

 

 

 

 

 

 

6.流程控制

 

 

7.游标的使用

 

 

 

 

 

 8.触发器

 

 

 

 

 

 

 

 

 

参考答案:

1.

 

 

 

 

 

 

 

 

 2.

 

 

 

 

 

 

 

 

 

3.

 

 

 

 

 

 

 

 

 4.

 

 

 

 

 

 

 

 

 5.

 

 

 

 

 

 6.

 

 7.

 

 

 

 

 

 

 8.

 

 

 

 

 

 

 

 

 

posted @ 2023-01-28 16:07  slowlydance2me  阅读(59)  评论(2编辑  收藏  举报