一、SQL基礎查詢
1、select語句
格式:select字段from表名;
2、where 用於限制查詢的結果
3、查詢條件> < >= <= = !=
4、與 或(AND,OR)
5、在 不在(IN,NOT IN)
6、在[a,b] (between val1 and val2)
7、空 非空(NULL,NOT NULL)
8、全部 任一(ALL,ANY)
不能單獨使用,必須與關系運算符配合
9、排重DISTINCT
用在字段之前
二、排序
1、使用 ORDER BY 語句
格式:select 字段 from 表名 where 條件 ORDER BY 字段;
2、設置升序降序(ASC,DESC)
格式:select 字段 from 表名 where 條件 ORDER BY 字段 ASC|DESC
3、多項排序
格式:select 字段 from 表名 where 條件 ORDER BY 字段 ASC|DESC,字段ASC|DESC
三、聚合函數
注意:在使用比較運算符時NULL為最大值,在排序時也會受影響
把 select 語句的查詢結果匯聚成一個結果,這樣的函數叫聚合函數
1、MAX\MIN
獲取最大值和最小值,可以是任何數據類型,但只能獲取一個字段
2、AVG\SUM
獲取平均值、總和
nvl(salary,0)
3、COUNT
統計記錄的數量
四、分組
1、GROUP BY
格式:select 組函數 from 表 group by 字段
2、HAVING 組判斷條件
它的真假決定一組數據是否返回
五、查詢語句的執行順序
1、格式:select sum(salary) from 表名 where bool order by group by
a、from 表名,先確定數據的來源
b、where 確定表中的哪些數據有效
c、group by 字段名,確定分組的依據
d、having 確定組數據是否返回
e、order by 對組數據進行排序
六、關聯查詢
1、多表查詢
select 字段 from 表1,表2 where;
2、多表查詢時有相同字段怎么辦
1、表名.字段名
2、表名如果太長,可以給表起別名 (from 表 別名)
3、笛卡爾積
a、8條數據
b、9條數據
在多表查詢時,一定要設置where 條件,否則將得到笛卡爾積
七、連接查詢
當使用多表進行關聯查詢時,根據設置的條件會得到不同的結果
1、內連接查詢:左右兩邊能匹配上的
select last_name ,name from s_emp,s_dept where dept_id=s_dept.id
2、外連接:左右兩邊不能匹配的數據
select last_name ,name from s_emp left|right|full outer join s_dept on dept_id=s_dept.id
3、左外連接
匹配成功的數據+左表不能匹配的數據
4、右外連接
匹配成功的數據+右表不能匹配的數據
5、全外連接
匹配成功的數據+左右表不能匹配的數據