SQL基础教程第二版笔记——02 SELECT语句基础、算术、比较、逻辑运算符
列的查询
从表中选取数据时需要使用 SELECT 语句
SELECT <列名>,……
FROM <表名>;
![4e92768bcc9a79d1b93eed47fc718586.png](https://img-blog.csdnimg.cn/img_convert/4e92768bcc9a79d1b93eed47fc718586.png)
查询出表中所有的列
想要查询出全部列时,可以使用代表所有列的星号(*)。
SELECT *
FROM <表名>;
![d4de8912700a9485f7a92166de3ad910.png](https://img-blog.csdnimg.cn/img_convert/d4de8912700a9485f7a92166de3ad910.png)
为列设定别名
SQL 语句可以使用 AS 关键字为列设定别名
![b58a11aa638cc9f1286470420b52ae51.png](https://img-blog.csdnimg.cn/img_convert/b58a11aa638cc9f1286470420b52ae51.png)
![72e3228cb8773ba5e244f3aa236e737f.png](https://img-blog.csdnimg.cn/img_convert/72e3228cb8773ba5e244f3aa236e737f.png)
常数的查询
SELECT 子句中不仅可以书写列名,还可以书写常数
![f7183b4c4306619b0af8b2629c82f186.png](https://img-blog.csdnimg.cn/img_convert/f7183b4c4306619b0af8b2629c82f186.png)
从结果中删除重复行
想要删除重复行时, 可以通过在 SELECT 子句中使用DISTINCT 来实现
![555de20ec4fdb37cb80f2eb577b49c5b.png](https://img-blog.csdnimg.cn/img_convert/555de20ec4fdb37cb80f2eb577b49c5b.png)
在使用 DISTINCT 时, NULL 也被视为一类数据。DISTINCT 关键字只能用在第一个列名之前。
![c70e1110fee0bbe9c6ddf7721a35689c.png](https://img-blog.csdnimg.cn/img_convert/c70e1110fee0bbe9c6ddf7721a35689c.png)
根据WHERE语句来选择记录
SELECT 语句通过 WHERE 子句来指定查询数据的条件。
![be76b6c9e8277d356a99693ddf455a34.png](https://img-blog.csdnimg.cn/img_convert/be76b6c9e8277d356a99693ddf455a34.png)
首先通过WHERE 子句查询出符合指定条件的记录,然后再选取出 SELECT 语句指定的列
也可以不选取出作为查询条件的列
![f8e3734096b48720bff9d0d9c7ae9958.png](https://img-blog.csdnimg.cn/img_convert/f8e3734096b48720bff9d0d9c7ae9958.png)
注释的书写方法
1行注释
书写在“--”之后,只能写在同一行
多行注释
书写在“/*”和“*/”之间,可以跨多行。
![989afbfc99d36e37e0009b2eab4f005c.png](https://img-blog.csdnimg.cn/img_convert/989afbfc99d36e37e0009b2eab4f005c.png)
![5f2d4a548ea4b8ca60624d5b1d56c356.png](https://img-blog.csdnimg.cn/img_convert/5f2d4a548ea4b8ca60624d5b1d56c356.png)
算术运算符
SQL 语句中可以使用计算表达式
![8a59dc673cc3db69f2a454c40069dc2d.png](https://img-blog.csdnimg.cn/img_convert/8a59dc673cc3db69f2a454c40069dc2d.png)
四则运算所使用的运算符( +、 -、 *、 /) 称为算术运算符
SQL 中也可以像平常的运算表达式那样使用括号 ( )。括号中运算表达式的优先级会得到提升,优先进行运算。例如在运算表达式( 1 + 2) * 3 中,会先计算 1 + 2 的值,然后再对其结果进行 * 3 运算。
注意:所有包含 NULL 的计算,结果肯定是 NULL
比较运算符
![1aabcf93ceda6370f56b58c761cf310f.png](https://img-blog.csdnimg.cn/img_convert/1aabcf93ceda6370f56b58c761cf310f.png)
一定要让不等号在左,等号在右
![4694b29b5f80707f09dc6d83d5286149.png](https://img-blog.csdnimg.cn/img_convert/4694b29b5f80707f09dc6d83d5286149.png)
WHERE子句的条件表达式中也可以使用计算表达式
![51442e89eb65a4b35d972e2919261921.png](https://img-blog.csdnimg.cn/img_convert/51442e89eb65a4b35d972e2919261921.png)
对字符串使用不等号时的注意事项
对字符串类型的数据进行大小比较时,使用的是和数字比较不同的规则。典型的规则就是按照字典顺序进行比较,也就是像姓名那样,按照条目在字典中出现的顺序来进行排序。该规则最重要的一点就是,以相同字符开头的单词比不同字符开头的单词更相近
不能对NULL使用比较运算符
SQL提供了专门用来判断是否为 NULL 的 IS NULL 运算符
反之, 希望选取不是 NULL 的记录时,需要使用 IS NOT NULL 运算符
NOT运算符
想要指定“不是 ~”这样的否定条件时,需要使用 <> 运算符。 除此之外还存在另外一个表示否定,并且使用范围更广的运算符 NOT。
![bb5a66f91147f94d9f50d014a656eec7.png](https://img-blog.csdnimg.cn/img_convert/bb5a66f91147f94d9f50d014a656eec7.png)
AND运算符和OR运算符
在 WHERE 子句中使用 AND 运算符或者 OR 运算符,可以对多个查询条件进行组合。
AND 运算符在其两侧的查询条件都成立时整个查询条件才成立,其意思相当于“并且”。
OR 运算符在其两侧的查询条件有一个成立时整个查询条件都成立,其意思相当于“或者”
![41d5db87a19da5df73c05a2d8f8f35e3.png](https://img-blog.csdnimg.cn/img_convert/41d5db87a19da5df73c05a2d8f8f35e3.png)
![a745b68d6caff343da38e9364dcc0fce.png](https://img-blog.csdnimg.cn/img_convert/a745b68d6caff343da38e9364dcc0fce.png)
通过括号强化处理
AND 运算符优先于 OR 运算符
想要优先执行 OR 运算符时,可以使用半角括号( )将OR运算符及其两侧的查询条件括起来
![76ac9381e1ec53142957ef09b1292c51.png](https://img-blog.csdnimg.cn/img_convert/76ac9381e1ec53142957ef09b1292c51.png)
![d9c08d127be97fcf392190c73903f74e.png](https://img-blog.csdnimg.cn/img_convert/d9c08d127be97fcf392190c73903f74e.png)
![f873f311408839e1e1f93a01ba082782.png](https://img-blog.csdnimg.cn/img_convert/f873f311408839e1e1f93a01ba082782.png)
![770a612cb8a02c292b48b4d998e925ad.png](https://img-blog.csdnimg.cn/img_convert/770a612cb8a02c292b48b4d998e925ad.png)
全部都是空
![c6362054d152274a8687fdbd2229e71a.png](https://img-blog.csdnimg.cn/img_convert/c6362054d152274a8687fdbd2229e71a.png)
![7453a6e943f42231dadfe196a1cb3f75.png](https://img-blog.csdnimg.cn/img_convert/7453a6e943f42231dadfe196a1cb3f75.png)
![f54b8baf12e15e9e68fdc99740dca45a.png](https://img-blog.csdnimg.cn/img_convert/f54b8baf12e15e9e68fdc99740dca45a.png)
![2fe1ce4b0cca74aaa84f0bd0dd1acac9.png](https://img-blog.csdnimg.cn/img_convert/2fe1ce4b0cca74aaa84f0bd0dd1acac9.png)
![12c7e00feb56aac1a7ac2925e9cc0c85.png](https://img-blog.csdnimg.cn/img_convert/12c7e00feb56aac1a7ac2925e9cc0c85.png)