1. 程式人生 > >SQL必知必會摘要

SQL必知必會摘要

用法 row 第一個 table class err num 方向 返回

數據檢索 2.2 檢索單個列 SELECT prod_name FROM Products; SQL語句不區分大小寫
2.3 檢索多個列 SELECT prod_nameprod_idprod_price FROM Products;
2.4 檢索所有列 SELECT * FROM Products;
2.5 檢索不同的值 SELECT DISTINCT vend_id FROM Products;
2.6 限制結果 SELECT TOP 5 prod_name FROM Products;(SQL server、Access)
SELECT prod_name FROM Products
FETCH FIRST 5 ROWS ONLY;(DB2)
SELECT prod_name FROM Products
WHERE ROWNUM <=5;(Oracle)
SELECT prod_name FROM Products
LIMIT 5;(MySQL、SQLite等)
SELECT prod_name FROM Products LIMIT 4 OFFSET 3;(LIMIT 3,4)
從第3行起的4行數據
2.7 使用註釋 SELECT prod_name --這是一條註釋(--之後的是註釋)
FROM Products;
# 這是一條註釋
(單行註釋)
/*這是一條註釋,很長
(跨行註釋,通常用於代碼註釋)
很長的註釋*/
排序檢索數據 3.1 排序數據 SELECT prod_name FROM Products ORDER BY prod_name; 字母升序拍;可以通過非檢索列進行排序
3.2 按多個列排序 SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY prod_price,prod_name;
prod_price相同時才按照prod_name
3.3 按列位置排序 SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY 2,3;
表示先按prod_id,再按prod_price排序
3.4 指定排序方向 SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY prod_price DESC;
降序排列,大小寫字母在排序時是否區分取決於數據庫的配置
SELECT prod_name,prod_id,prod_price FROM Products
ORDER BY prod_price DESC,prod_name;
prod_name仍為升序,ASC表升序(默認)
過濾數據 4.1 使用WHERR SELECT prod_name,prod_price FROM Products
WHERE prod_price = 3.49;
SELECT prod_name,prod_price FROM Products
WHERE prod_price = 3.49
ORDER BY prod_name;
WHERE和ORDER BY組合用法
4.2 WHERE子句操作符 =,<>,!=,<,<=,!<,>,>=,!>,BETWEEN,IS NULL
4.2.2 不匹配檢查 SELECT vend_id,prod_name FROM Products
WHERE vend_id<>‘DLL01‘;
不匹配檢查,字符串需要加引號<>與!=等價
4.2.3 範圍值檢查 SELECT prod_name,prod_price FROM Products
WHERE prod_price BETWEEN 5 AND 10
包括5和10
4.2.4 空值檢查 SELECT prod_name,prod_price FROM Products
WHERE prod_price IS NULL;
NULL與非匹配:空值不會被返回
高級數據過濾 5.1.1 AND操作符 SELECT prod_id,prod_price,prod_name FROM Products
WHERE vend_id = ‘DLL01‘
AND prod_price<=4;
可用多個AND,增加過濾條件
5.1.2 OR操作符 SELECT prod_id,prod_price,prod_name FROM Products
WHERE vend_id = ‘DLL01‘
OR vend_id = ‘BRS01‘;
第一個條件滿足時,不管第二個條件是否滿足,相應行都被檢索出來
SELECT prod_id,prod_price,prod_name FROM Products
WHERE (vend_id = ‘DLL01‘
OR vend_id = ‘BRS01‘)AND prod_price<=10;
組合使用,使用圓括號。AND優先級較高
5.2 IN操作符 SELECT prod_name,prod_price FROM Products
WHERE vend_id =
IN( ‘DLL01‘,‘BRS01‘)
ORDER BY prod_name;
功能與OR相當
SELECT prod_name,prod_price FROM Products
WHERE vend_id = ‘DLL01‘
OR vend_id = ‘BRS01‘
ORDER BY prod_name;
改寫IN語句
5.3 NOT操作符 SELECT prod_name FROM Products
WHERE
NOT vend_id = ‘DLL01‘
ORDER BY prod_name;
SELECT prod_name FROM Products
WHERE vend_id
<> ‘DLL01‘
ORDER BY prod_name;
改寫NOT語句
用通配符進行過濾 6.1.1 %通配符 SELECT prod_id,prod_name FROM Products
WHERE prod_name
LIKE ‘Fish%‘;
找出以Fish起頭的詞,Fish之後可以是0個字符;Acess需要使用*非%;大小寫是否區分取決於數據庫配置
SELECT prod_id,prod_name FROM Products
WHERE prod_name
LIKE%bean bag%‘;
匹配任何包含bean bag的值
SELECT prod_name FROM Products
WHERE prod_name
LIKE ‘F%y‘;
匹配F開頭,y結尾的值([email protected]
%匹配0個、1個、多個字符
如果字符末尾是空格,則需要用F%y%來匹配
WHERE prod_name LIKE ‘%‘; 不配匹配prod_name為NULL的行
6.1.2 _通配符 SELECT prod_id,prod_name FROM Products
WHERE prod_name
LIKE ‘__ inch teddy bear‘;
DB2不支持,Access用?非_
_只匹配單個字符,功能與%通,如需匹配2個字符,則需要使用__

SQL必知必會摘要