數據是信息社會(huì )重要的資源,許多重大決策都離不開(kāi)數據和信息的支持。如果只是小規律的數據,用簡(jiǎn)單的文件或表格就行了,但無(wú)法應付以百萬(wàn)計的數據處理。針對結構化數據的數據庫技術(shù)便應運而生。
數據處理包括數據的生成、處理與使用。數據生成主要由數據的增、改、刪。數據的使用主要是數據查詢(xún)、生成視圖與報表。表中結構數據的增、改、刪在SQL語(yǔ)言中,用Insert、update、delete語(yǔ)句完成,數據查詢(xún)使用select語(yǔ)句。
在關(guān)系數據庫中,數據查詢(xún)select語(yǔ)句也就是用于數據的篩選。從數據源中篩選需要的行、列,并可以有適當的計算、分組、排序。數據源可以是多個(gè)數據庫的多個(gè)表或視圖。例如,有3個(gè)關(guān)系型數據庫,每個(gè)數據庫有5個(gè)表,每個(gè)表有10列,1萬(wàn)行記錄,則需要處理的數據是3*5*10萬(wàn)行,10*3*5*10萬(wàn)個(gè)數據項。數據庫中列的篩選直接指定,行的篩選通過(guò)邏輯條件去判斷選取。
在數據處理中,select語(yǔ)句的完整語(yǔ)法比較復雜?;镜恼Z(yǔ)句通常包含五個(gè)部分:
| part | KeyWord | variables | 功能 |
| ① | SELECT | select_list | 列篩選 |
| ② | FROM | table_list | 數據源 |
| ③ | WHERE | search_conditions | 行篩選 |
| ④ | GROUP BY | group_by_list | 分組 |
| ④ | HAVING | search_conditions | 按分組做行篩選 |
| ⑤ | ORDER BY | column_name,column_name ASC|DESC; | 排序 |
說(shuō)明:
I select_list可以是包含column_name(字段名)的簡(jiǎn)單表達式或以column_name(字段名)為參數的簡(jiǎn)單函數;也可以添加DISTINCT關(guān)鍵詞(位置是select后)用于返回唯一不同的值。通配符'*'表示全部列;
II table_list可以是不同數據庫的表或視圖,數據庫與表或視圖以點(diǎn)“.'符號連接;
III search_conditions可以使用的關(guān)系運算符有:
| 運算符 | 描述 |
|---|---|
| = | 等于 |
| <> | 不等于。注釋?zhuān)涸?SQL 的一些版本中,該操作符可被寫(xiě)成 != |
| > | 大于 |
| 小于 | |
| >= | 大于等于 |
| <> | 小于等于 |
| BETWEEN | 在某個(gè)范圍內 |
| LIKE | 搜索某種模式 |
| IN | 指定針對某個(gè)列的多個(gè)可能值 |
補充說(shuō)明
I 關(guān)系表達式可以用or、and連接。
II LIKE后的表達式可以使用以下通配符:
| 通配符 | 描述 |
|---|---|
| % | 替代 0 個(gè)或多個(gè)字符 |
| _ | 替代一個(gè)字符 |
| [charlist] | 字符列中的任何單一字符 |
| [^charlist]or[!charlist] | 不在字符列中的任何單一字符 |
如:
WHERE City LIKE 'ber%';
WHERE City LIKE '%es%';
WHERE City LIKE '_erlin';
WHERE City LIKE 'L_n_on';
WHERE City LIKE '[bsp]%';
WHERE City LIKE '[a-c]%';
WHERE City LIKE '[!bsp]%';
舉例說(shuō)明一個(gè)查詢(xún)實(shí)例:
MyTest數據庫的表Orders:
| Product | Shops | Sales |
| A001 | caraford | 100 |
| A001 | caraford | 100 |
| A002 | caraford | 80 |
| A002 | caraford | 80 |
| A003 | caraford | 90 |
| A004 | wanda | 200 |
構造查詢(xún)表達式:
SELECT ProductID, SUM(Sales) As TotalSales
FROM Orders
WHERE Shops = N'caraford'
GROUP BY ProductID
HAVING SUM(Sales) > 150
ORDER BY ProductID;
注:SUM()是可以使用在SQL中的函數;
查詢(xún)結果:
| ProductID | TotalSales |
| A001 | 200 |
| A002 | 160 |
參考:
http://www.shouce.ren/api/view/a/6032
-End-
聯(lián)系客服