SQL語句(一)
阿新 • • 發佈:2018-03-24
語句 線表 ble spa 指定 des BE 運算符 正則表達
SELECT
SELECT 語句用於從數據庫中選取數據。
SELECT columnA_name,columnB_name FROM table_name;
選取從表中選取列A和列B兩列的數據。
SELECT * FROM table_name;
選取表的所有數據。
一、DISTINCT關鍵字過濾重復
SELECT DISTINCT 過濾重復結果。
SELECT DISTINCT column_name,column_name FROM table_name;
不重復選取,加上DISTINCT會將一樣的結果過濾掉。
二、WHERE子句
WHERE 子句用於提取那些滿足指定標準的記錄 ,它選取的是記錄。
SELECT column_name,column_name FROM table_name WHERE column_name operator value;
WHERE 子句中的常見的運算符:
運算符 | 描述 |
---|---|
= | 等於 |
<> | 不等於。註釋:在 SQL 的一些版本中,該操作符可被寫成 != |
> | 大於 |
< | 小於 |
>= | 大於等於 |
<= | 小於等於 |
BETWEEN | 在某個範圍內 |
LIKE | 搜索某種模式 |
IN | 指定針對某個列的多個可能值 |
運算符在比較時,如果是數字字段不需要加‘‘,如果是非數字字段需要加‘‘。
根據運算符的分類大致如下:
1.比較運算符
比較運算符包涵:= > < >= ,<=, !=,<> 表示(不等於)
SELECT * FROM emp WHERE ename =‘SMITH‘; SELECT * FROM emp WHERE ename!=‘SMITH‘; SELECT * FROM emp WHERE eage=18; SELECT * FROM emp WHERE eage>18;
2.邏輯運算
邏輯運算符包涵:AND(與) OR(或) NOT(非)。
SELECT * FROM emp WHERE sal >2000 AND sal < 3000; SELECT * FROM emp WHERE sal > 2000 OR ename = ‘SMITH‘; SELECT * FROM emp WHERE NOT sal > 2000;邏輯運算符優先級:()>NOT>AND>OR
3.特殊條件
- 空值判斷: IS NULL
SELECT * FROM emp WHERE comm IS NULL;返回空值的列
- BETWEEN ... AND(返回區間之內的值)
SELECT * FROM emp WHERE sal BETWEEN 1500 AND 3000;返回區間的值,這個值可以為數字,可以為英文字符,也可以為日期。例如:
SELECT * FROM Websites WHERE name NOT BETWEEN ‘A‘ AND ‘H‘; SELECT * FROM access_log WHERE date BETWEEN ‘2016-05-10‘ AND ‘2016-05-14‘;NOT BETWEEN ...AND(返回不在區間之內的值)
- IN
SELECT * FROM emp WHERE sal IN (5000,3000,1500);返回與()的值相等的列,IN可以規定多個值,=規定一個值
- 模糊查詢LIKE
SELECT * FROM emp WHERE ename LIKE ‘M%‘;% 表示多個字值,_ 下劃線表示一個字符:
M% : 為能配符,正則表達式,表示的意思為模糊查詢信息為 M 開頭的。
%M% : 表示查詢包含M的所有內容。
%M_ : 表示查詢以M在倒數第二位的所有內容。
三、ORDER BY
ORDER BY 關鍵字用於對結果集按照一個列或者多個列進行排序。
ASC升序,DESC降序。默認為降序。ASC升序,越來越大。
SELECT column_name,column_name FROM table_name ORDER BY columnA_name,columnB_name ASC|DESC;
依次根據列B排序,在列B的基礎上再排列A。
四、TOP關鍵字, LIMIT, ROWNUM從句
SELECT TOP 子句用於限制要返回的記錄的數目。
註釋:並非所有的數據庫系統都支持 SELECT TOP 子句。
SQL Server / MS Access 語法
SELECT TOP number|percent column_name(s) FROM table_name;SQL Server中可以使用百分比顯示:浮點型數值+Percent
MySQL 語法
SELECT column_name(s) FROM table_name LIMIT number;Oracle 語法
SELECT column_name(s) FROM table_name WHERE ROWNUM <= number;
SQL語句(一)