一、前期准备工作
1.1 登陆mysql,查看数据表
1.2 显示所有表
1.3 创建guigui表并插入数据
1.4 创建ky35表格并插入数据
二、子连接
子查询也被称作内查询或者嵌套查询,是指在一个查询语句里面还嵌套着另一个查询语句。子查询语句是先于主查询语句被执行的,其结果作为外层的条件返回给主查询进行下一 步的查询过滤。
子查询不仅可以在 SELECT 语句中使用,在 INERT、UPDATE、DELETE 中也同样适用。在嵌套的时候,子查询内部还可以再次嵌套新的子查询,也就是说可以多层嵌套。
2.1 IN
IN 用来判断某个值是否在给定的结果集中,通常结合子查询来使用
语法:<表达式> [NOT] IN <子查询>
2.1.1 多表查询select
2.1.2 insert
2.1.3 update
2.1.4 delete
2.2 exists
EXISTS 这个关键字在子查询时,主要用于判断子查询的结果集是否为空。如果不为空, 则返回 true;反之,则返回 false
2.3 别名as
三、视图
使用场景:针对不同的人,提供不同结果集的“表”
作用范围:
select * from info; | 展示的部分是info表 |
select * from view_name; | 展示的一张或多张表 |
功能:简化查询结果集、灵活查询、可以针对不同用户呈现不同结果集、相对有更高的安全性
3.1 视图和表之间的区别与联系
区别:
视图 | 表 | |
---|---|---|
区别 |
|
|
联系:
视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系。
3.2 多表创建视图
四、NULL
4.1 NULL和无值''的区别
- 无值的长度为 0,不占用空间的;而 NULL 值的长度是 NULL,是占用空间的。
- IS NULL 或者 IS NOT NULL,是用来判断字段是不是为 NULL 或者不是 NULL,不能查出是不是无值的。
- 无值的判断使用=’‘或者<>’'来处理。<> 代表不等于。
- 在通过 count()指定字段统计有多少行数时,如果遇到 NULL 值会自动忽略掉,遇到无值会加入到记录中进行计算。
五、连接查询
使用较多的连接查询包括:内连接、左连接和右连接
5.1 前期准备
5.2 内连接
两张或多张表中同时符合某种条件的数据记录的组合。通常在FROM子句中使用关键字INNER JOIN 来连接多张表,并使用ON子句设置连接条件。
语法:SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
5.3 左连接
使用 LEFT JOIN关键字来表示,左连接也就是左表中的所有行以及右表中符合条件的行。
语法:SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
5.4 右连接
使用 RIGHT JOIN关键字来表示,右连接也就是右表中的所有行以及左表中符合条件的行。