所有内容收录在合集~SQL入门到熟练
IS NULL运算符,如何获取有缺失值的记录
没错,这个运算符就是用来专门的搜索,有缺失值的记录的。
比如打开的这个表,你会发现地址2有很多的null,是空值。
NULL意识是缺失。
那么怎么获得这些没有地址的数据呢?
直接输入就可以
SELECT *
FROM address
where address2 is null
在排序之前,先说一下为什么表格是按照最左边的单元格按顺序排列的,首先点击表的时候,会出现三个按钮,中间的像扳手一样的按钮,点击打开。
这样就打开了表的设计模式,这里可以更改,新增或者删除列,改名,调整顺序等,然后可以看到一个黄色的键,就是这个表的主键列。
在关系型数据库中,每个表都有一个主键列,这个列中的值可以唯一识别表里的记录。
ORDER by
直接输入即可排序,这个功能很鸡肋,因为直接点击表格也可以有这个效果
同样的,如果输入DESC,就会得到一个倒序的排列。
重要的是,MYSQL可以用任何列排数据,不管那一列是不是在SELECT句子中
一些在其他的数据中,会报错的数,这里依旧可以进行查询,包括表达式里的别名
LIMIT
有一群候选人,我就想选前几个出来,怎么写呢?
直接写 LIMIT3,好啦
这里增加一个概念,偏移量 offset,给数据分页的时候会十分有用。
假设有很多页的数据,只想看第4页的前3个,加入这个概念就可以了。
LIMIT 9,3,这个时候9就是我们说的偏移量。
这节课的内容说起来都很简单,最后就出一道题吧。
order_id | product_id | quantity | unit_price |
7 | 1 | 2 | 9 |
7 | 3 | 3 | 5 |
7 | 5 | 4 | 4 |
一个表里有且只有id为7的项目,我们也根据每个项目的总价格进行了排序。当然你肯定知道每个项目的总价格是每个项目乘以单价,只是这个表格没有显示出来。产品1的总价格是16,假设单位是k,无所谓了。
继续写一个查询,选择所有id为7的项目,根据总价格的降序排序。
然后书写出来是这样
SELECT *
FROM order_items
WHERE order_id=7
ORDER BY quantity*unti_price DESC
总结:
用于MYSQL的句子不一定是某个列的名称,可以直接把两列进行一系列的运算,然后进行排序,也是可以的。
也就是说,既可以是别名,也可以是算数表达式。
执行查询就可以获得结果。这个时候如果想看到更清晰,完全可以手动添加一列
SELECT *,quantity*unti_price AS total price
FROM order_items
WHERE order_id=7
ORDER BY quantity*unti_price DESC
这样操作的时候,查询是重复的,所以可以对句子进行简化。
直接把最后一句的quantity*unti_price更换成total price
也可以得到一样的结果
order_id | product_id | quantity | unit_price | total_price |
6 | 5 | 4 | 3 | 12 |
6 | 1 | 2 | 7 | 14 |
6 | 3 | 3 | 5 | 15 |
完结~