MySql
单表查询
1757可回收且低脂的产品
- 注意要返回的是什么那么就去select什么
584寻找用户推荐人
MySQL是三值逻辑,分别为TRUE、FALSE和UNKNOWN,逻辑判断是如果逻辑运算符一端为NULL,则为UNKNOWN; 这段代码 referee_id =2 为TRUE,则NOT TURE为FALSE和UNKNOWN,即<>2 OR 为NULL
null不可以和数值类直接比较,其结果为unkonwn
⭐️IFNULL(referee_id, 0) <> 2:意思是如果 referee_id 列的值为 NULL,则将其替换为 0,然后与 2 进行比较。如果 referee_id 列的值不等于 2,那么这一行将被包含在结果中
1148文章浏览 1
- 我们可以在 SELECT 语句中使用 DISTINCT 关键字来从表 Views 中检索唯一元素
- select 可以给列取别名
1683.无效的推文
- 获取某列字符长度的函数: CHAR_LENGTH ()
多表查询
多表之间的业务关系主要有以下三种:
- 一对多(部门与部门员工的关系):多的一方建立外键,指向一的一方的主键
- 多对多(学生与课程的关系):建立第三张中间表,中间表至少包含两个外键,分别关联两方主键
- 一对一(用户与用户详情的关系):在任意一方加入外键,关联另外一方的主键,并且设置外键为唯一的(UNIQUE)
多表查询分类
连接
内连接
查询两个表之间的交集
1 | 1). 隐式内连接 |
2). 显式内连接
1 | SELECT |
外连接
外连接将两个表按照匹配条件合成一张表
- 左外连接:查询左表所有数据,以及两张表交集部分数据
1
2
3
4
5
6表1
LEFT
[ OUTER ]
JOIN 表2
ON
条件 ... ; - 右外连接:查询右表所有数据,以及两张表交集部分数据
1
2
3
4
5
6表1
RIGHT
[ OUTER ]
JOIN 表2
ON
条件 ... ;
自连接
当前表与自身的连接查询,自连接必须使用表别名
1 | 表A |
[!TIP]
在自连接查询中,必须要为表起别名,要不然我们不清楚所指定的条件、返回的字段,到底
是哪一张表的字段。
联合查询
子查询
指嵌套在主查询中的一个查询
1378.使用唯一标识码替换员工ID
使用outer join会保留主表的全部,以及次表与主表能匹配的记录,没有匹配时返回null
1 | 表1 left join 表2 on 连接条件 |
左外连接表示保留表1的所有数据,表2中没有的记录返回null
产品销售分析
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Protoss想要平静生活!