1. 程式人生 > >SQL語句(一)

SQL語句(一)

語句 線表 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語句(一)