0005 《SQL必知必会》笔记01-SELECT语句

时间:2021-10-09 00:26:52

1、SELECT基本语句:

SELECT 字段名1,···,字段名n FROM 表名

2、检索所有字段,用"*"替换字段名,这会导致效率低下

SELECT * FROM 表名;

3、去除重复项,“DISTINCT”作用于所有字段

SELECT DISTINCT 字段名1,···,字段名n FROM 表名;

4、若检索结果过多,可限定结果的条数

SELECT 字段名 FROM 表名 WHERE ROWNUM<=n;

5、对检索出的数据进行排序,ASC为升序,也为默认排序方式;DESC为降序。ORDER BY 语句一定是最后一条语句。如果不排序,那么不能认为检索出的数据的顺序有任何意义

SELECT 字段名 FROM 表名 ORDER BY 字段名1 ASC|DESC,```,字段名n ASC|DESC;

6、WHERE 子句,操作符如下,语法都为:WHERE 字段名 操作符 值;注意Oracle至少默认不支持“!<”和“!>”

操作符 说明 操作符 说明
= 等于    
!= 不等于 <> 不等于
< 小于 > 大于
<= 小于等于 >= 大于等于
BETWEEN AND 双侧闭区间 IS NULL 空值

7、WHERE子句的多条件过滤——AND,多个子条件同时满足

WHERE 子条件1 AND ··· AND 子条件n

8、WHERE 子句的多条件过滤——OR,满足任意一个条件

WHERE 子条件1 OR ···OR 子条件n

9、WHERE子句——IN操作符,满足IN的任意个值,与OR类似,但有如下优点:语法更清楚直观;更易管理求值顺序;比一组OR执行快;可以包含其他SELECT语句,能动态建立WHERE子句。

WHERE 字段名 IN(值1,···,值n)

10、NOT操作符:否定其后面的条件。在复杂语句中,NOT非常有用

WHERE NOT 条件;

11、AND的求值优先级高于OR,可以用"()"改变优先级

12、模糊匹配Like操作符,通配符——“%”,匹配0~n个字符;“_”,匹配一个字符。特别注意:Oracle会用空格来补全字段,最好是用TRIM()、RTRIM()、LTRIM()去掉空格

WHERE 字段名 LIKE ‘带%的字符串’

0005 《SQL必知必会》笔记01-SELECT语句0005 《SQL必知必会》笔记01-SELECT语句

13、《SQL必知必会》降到了“[]”通配符,但是Oracle貌似不支持,或者说默认不支持,待学到后面确定了再改这条。

14、关于通配符:(1)不要过度使用通配符,(2)通配符不要放在开始处,会非常慢,(3)注意通配符的位置,放错地方,可能会返回意外的数据