漢字轉拼音
SQL基礎:
文章目錄
- SQL基礎:
- 前言
- 一、rownum行查詢
- 二、LIKE(模糊查詢)
- 三、萬用字元
- 四、in操作符
- 五、between...and...操作符
- 六、Alias(別名)
- 七、Join(連線查詢)
- 八、UNION(合併)
- 九、SELECT INTO(查詢插入)
前言
SQL基礎整理
一、rownum行查詢
-
rownum
展示指定行的資料資訊:(展示行數小於固定數值的行的列名的資訊)
-
用法:
select 列名 from 表名 where rownum <= 數值
(等價與MySQL中的 LIMIT 和 SQL SELECT 中的TOP)
二、LIKE(模糊查詢)
-
作用:
LIKE操作符作用與where中的搜尋條件
-
用法:
select 列名1 from 表名 where 列名2 LIKE 檢索條件
(展示表中列名2等於檢索條件的列名1的資料資訊)
注:一般LIKE與萬用字元"%"一起使用(模糊查詢) -
用法1:
select * from 表名 where 列名 LIKE ‘%A’
(展示表中某一列中以A結尾的所有資料資訊) -
用法2:
select * from 表名 where 列名 LIKE ‘%A%’
(展示表中某一列中包含A的所有資料資訊) -
用法3:
select * from 表名 where 列名 LIKE ‘A%’
(展示表中某一列中以A開頭的所有資料資訊)
三、萬用字元
符號 | 作用 |
---|---|
% | 代替一個或多個字元 |
_ | 代替一個字元 |
[charlist] | 字元列中的任何單一字元 |
[^charlist] 或者 [!charlist] | 不在字元列中的任何單一字元 |
-
用法:
萬用字元"%" 和 “_” 一般在LIKE中使用
例如:
select * from 表名 where 列名 like ‘%A%’
select * from 表名 where 列名 like ‘C_A_S’萬用字元[charlist]
例:select * from 表名 where 列名 like ‘[ASD]%’ (查詢表中某列以A或S或D開頭的列的資料資訊)
萬用字元[!charlist]
例:
select * from 表名 where 列名 like ‘[!ASD]%’
(查詢表中某列不以A或S或D開頭的列的資料資訊)
四、in操作符
-
作用:
in操作符作用於where條件中規定多個值
-
用法:
select * from 表名 where 列名 in (值1,值2,值3,…)
(查詢表中某列的值等於 ‘值1’ 或 ‘值2’ 或 ‘值3’…的資料資訊)
五、between…and…操作符
-
作用:
between操作符(一般用法為between…and)(包含前包含後)
between操作符作用與where條件中,選取介於兩個值之間的資料資訊(可以是數值,文字或日期) -
用法:
select * from 表名 where 列名 between 值1 and 值2
(查詢表中某列資料的值在 ‘值1’ 和 ‘值2’ 之間的資料資訊)
如果是隻查詢數字型別或者字元型別的資料,包前包後
select * from test_hsj where id between 1 and 5; -
時間用法:
用法1:
select * FROM UPLAN WHERE CREATE_DATE BETWEEN to_date('2021-01-04 00:00:00','yyyy-mm-dd hh24:mi:ss') AND to_date('2021-01-05 11:39:07','yyyy-mm-dd hh24:mi:ss')
如果是隻查詢某兩個月之間的資料,會預設從每個月的1號開始查,包前包後
用法2:
select * from test_hsj where regdate between to_date('2015-05','yyyy-MM') and to_date('2015-06','yyyy-MM')
如果是隻查詢某兩年之間的資料,會預設從1月1日開始查,包前包後
用法3:
select * from test_hsj where regdate between to_date('2015','yyyy') and to_date('2016','yyyy')
注1:
使用萬用字元時’2021-01-05%'預設為當天00:00:00select * FROM UPLAN WHERE CREATE_DATE BETWEEN to_date('2021-01-05%','yyyy-mm-dd hh24:mi:ss') AND to_date('2021-01-06%','yyyy-mm-dd hh24:mi:ss')
六、Alias(別名)
-
作用:
Alias(as)別名(給表或列名起別名方便記憶書寫)
-
用法:
select 列名1 as a1,列名2 as a2 from 表名 as u where u.a2 = ‘aaa’
(從表中查詢欄位2等於’aaa‘ 的兩個欄位)
七、Join(連線查詢)
-
Join
作用:
Join(連線查詢)(為了得到從多個表中查詢到的完整結果)
INNER JOIN(內連線查詢)與JOIN相同,連線匹配的行
結果:
產生的結果是多個表的交集
圖示:
用法:select column_name(s) from table 1 INNER JOIN table 2 ON table 1.column_name=table 2.column_name
-
LEFT JOIN(左外連線查詢)
作用:
LEFT JOIN(左外連線查詢)返回左表全部行和右表滿足on條件的行,如果左表的行在右表沒有匹配,那麼這一行資料在右表中對應的資料用null代替
結果:
產生的結果是左表的全集,右表匹配則有值,沒有匹配則取null
圖示:
用法:select * from Table A left join Table B on Table A.id = Table B.id
-
RIGHT JOIN(右外連線查詢)
作用:
RIGHT JOIN(右外連線查詢)返回右表全部行和左表滿足on條件的行,如果右表的行在左表中沒有匹配則返回null
結果:
產生的結果是右表的全集,左表匹配則有值,沒有匹配則取null
圖示:
select * from Table A right join Table B on Table A.id=Table B.id
-
FULL OUTER JOIN(全連線查詢)
作用:
FULL OUTER JOIN(全連線查詢)從左表和右表返回所有的行,如果其中一個表的資料在兩一個表中沒有匹配的行,則對應表的資料用null代替
結果:
產生左表和右表的並集。但是需要注意的是,對於沒有匹配的記錄,則會以null做為值。
圖示:
select column_name(s) from table 1 FULL OUTER JOIN table 2 ON table 1.column_name=table 2.column_name
總結join:
1、A inner join B 取交集。
2、A left join B 取 A 全部,B 沒有對應的值為 null。
3、A right join B 取 B 全部 A 沒有對應的值為 null。
4、A full outer join B 取並集,彼此沒有對應的值為 null。
5、對應條件在 on 後面填寫。
八、UNION(合併)
-
作用:
UNION 操作符用於合併兩個或多個SELECT語句的結果集
*注:UNION 內部的SELECT語句必須又相同數量的列。列也必須擁有相似的資料型別。同時,每條SSELECT語句中的列順序必須相同。
-
用法:
select 列名1 from 表名1 union select 列名2 from 表名2
(合併從表1查詢出的列1和從表2查詢出來的列2)(列1與列2需要有相似的資料型別)*注1:預設UNION操作符選取的是不同的值,同時進行預設規則的排序,如果需要顯示重複的值則使用 UNION ALL
*注2:UNION 結果集中的列名總是等於 UNION 中第一個 SELECT 語句中的列名。
*注3:UNION ALL 命令和 UNION 命令幾乎是等效的,不過 UNION ALL 命令會列出所有的值。
-
UNION與UNION ALL區別:
區別1:取bai結果的交集
1、duunion: 對兩個結果集進zhi行dao並集操作, 不包括重複行,相當zhuan於distinct, 同時進行預設規則的排序;
2、union all: 對兩shu個結果集進行並集操作, 包括重複行, 即所有的結果全部顯示, 不管是不是重複;
區別2:獲取結果後的操作
1、union: 會對獲取的結果進行排序操作
2、union all: 不會對獲取的結果進行排序操作
區別3:
1、union看到結果中ID=3的只有一條
select * from student2 where id < 4
union
select * from student2 where id > 2 and id < 6
2、union all 結果中ID=3的結果有兩個
select * from student2 where id < 4
union all
select * from student2 where id > 2 and id < 6
總結
union all只是合併查詢結果,並不會進行去重和排序操作, 在沒有去重的前提下,使用union all的執行效率要比union高
九、SELECT INTO(查詢插入)
-
作用:
SELECT INTO 語句作用:從一個表中選取資料,然後把資料插入到另一個表中(常用於建立表的備份復件或者用於對記錄進行存檔)
-
用法:
select * into 表名1 from 表名2(把從表2中查到的所有資料儲存到表1中)
select 列名 into 表名1 from 表名2(把從表2中查到的某一列資料儲存到表1中)
select * into 表名1 in 資料庫名1 from 表名2(把從表2中查到的某一列資料儲存到資料庫1的表1中)
也可以使用where條件查詢作為條件或者join連線查詢