- 數(shù)據(jù)庫(database):
- 是一個(gè)以某種有組織的方式存儲的數(shù)據(jù)集合。最簡單的方法是將數(shù)據(jù)庫想象為一個(gè)文件柜。
SELECT語句
使用select檢索表數(shù)據(jù)
- 檢索單個(gè)列:(pro_name是列名,Products是表)
- SELECT pro_name FROM Products; - 檢索多個(gè)列
- SELECT pro_id,pro_price,pro_name FROM Products; - 檢索所有列:(* 是通配符)
- SELECT * FROM Products; - 檢索不同的值:(DISTINCT)
-SELECT DISTINCT vendo_id FROM Products注意不能部分使用DISTINCT。因?yàn)镈ISTINCT 作用于所有的列,不僅僅是跟在最后的那一列。比如:SELECT DISTINCT pro_id,pro_price,所有的列都會被檢索出來。 - 限制結(jié)果:(LIMIT)
- SELECT pro_name FROM Products LIMIT 5 OFFSET 5 (注意:第1點(diǎn)、LIMIT 1 OFFSET 1會檢索第2行,而不是第1行。第2點(diǎn)、LIMIT 4 OFFSET 3等價(jià)于LIMIT 3,4) - 使用注釋:(--或#或/* /)
- SELECT pro_name --這是一條注釋 FROM Products (第一點(diǎn):注釋使用--(兩個(gè)連字符)嵌在行內(nèi)。--之后就是注釋。 第二點(diǎn):在一行的開始使用#。這一整行都將作為注釋。第三點(diǎn):注釋從/開始,到/結(jié)束,/和*/之間的任何內(nèi)容都是注釋)
排序檢索數(shù)據(jù)
排序數(shù)據(jù)(ORDER BY)
保證ORDER BY是SELECT語句中最后一條語句,如果不是,就會出現(xiàn)錯(cuò)誤信息。
- 按單個(gè)列排序:(pro_name是列名,Products是表)
- SELECT pro_name FROM Products ORDER BY pro_name ; - 按多個(gè)列排序
- SELECT pro_id,pro_price,pro_name FROM Products ORDER BY pro_name,pro_price; - 按列位置排序
- SELECT pro_id,pro_price,pro_name FROM Products ORDER BY 2,3; - 指定排序方向
- SELECT pro_id,pro_price,pro_name FROM Products ORDER BY pro_price DESC; // 降序排序 (注意:如果想在多個(gè)列進(jìn)行降序排序,必須對每一列指定DESC關(guān)鍵字)
過濾數(shù)據(jù)
使用WHERE語句
數(shù)據(jù)庫一般包含大量的數(shù)據(jù),很少需要表中的所有行。通常只會根據(jù)特定的操作或報(bào)告的需要提取表中數(shù)據(jù)的子集。只檢索所需數(shù)據(jù)需要的指定的搜索條件(search criteria),搜索條件也稱為過濾條件(filter condition),在SELECT語句中,數(shù)據(jù)根據(jù)WHERE語句中指定的搜索條件進(jìn)行過濾。WHERE語句在表名(FROM語句)之后給出。
- SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price = 3.67;
WHERE語句操作符
| 操作符 | 說明 | 操作符 | 說明 |
|---|---|---|---|
| = | 等于 | > | 大于 |
| <> | 不等于 | >= | 大于等于 |
| != | 不等于 | !> | 不大于 |
| < | 小于 | BETWEEN | 在指定的兩個(gè)值之間 |
| <= | 小于等于 | IS NULL | 為NULL值 |
| !< | 不小于 | nil | 無 |
- 檢查單個(gè)值
SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7;
- 不匹配檢查
SELECT vend_id,pro_name FROM Products WHERE vend_id <> 'DLL02';
- 范圍值檢查:(指定開始日期和結(jié)束日期之間的所以日期或者價(jià)格區(qū)間)
SELECT pro_price,pro_name FROM Products WHERE pro_price BETWEEN 5 AND 8;
- 空值檢查
SELECT cust_name FROM Customers WHERE cust_email IS NULL;
高級過濾數(shù)據(jù)
組合WHERE子句
主要有兩種方式:即以AND子句或者OR子句的方式使用。區(qū)別在AND要滿足多個(gè)條件,而OR在WHERE子句的第一個(gè)條件得到滿足的情況下就不會計(jì)算第二個(gè)條件了(不管第二個(gè)條件是否滿足,相應(yīng)的行22都會被檢索出來) 。如果WHERE子句中,有AND也有OR,優(yōu)先2處理AND操作符。
- AND操作符
SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 AND pro_name = 'DLL02';
- OR操作符
SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 OR pro_name = 'DLL02';
- 求值順序
SELECT pro_id,pro_price,pro_name FROM Products WHERE pro_price < 7 OR pro_name = 'DLL02' AND pro_id = '3';
IN操作符
IN操作符用來指定條件范圍,范圍中的每個(gè)條件度可以匹配。IN取一組由逗號分隔、擴(kuò)在圓括號中的合法值。
SELECT pro_price,pro_name FROM Products WHERE vend_id IN ('DLL02','BRS02');
NOT操作符
WHERE子句中的NOT也有且只有一個(gè)功能,那就是否定其后所跟的任何條件
SELECT pro_price,pro_name FROM Products WHERE NOT vend_id = 'DLL02' ORDER BY pro_name ;