实习——SQL语句
一、SQL基本概念
結構化查詢語言(Struct Query Language,SQL)是一種專門用來與數據庫溝通的語言。
 設計SQL的目的——提供一種從數據庫中讀寫數據的簡單有效的方法。
二、檢索數據
SELECT語句
1.檢索一個表中的數據
SELECT col_name1,col_name2,... FROM table_name- DISTINCT:指示數據庫只返回不同的值
 - TOP:最多返回前多少行
 
SQL第一個被檢索的行是第0行
三、排序檢索數據
ORDER BY語句
單純的檢索數據,如果不排序,數據一般將以它在底層中出現的順序顯示,這有可能是數據最初添加到表中的順序。但是當數據隨后進行過更新或刪除,那么這個順序將會受到DBMS重用回儲存空間的方式的影響。
 ORDER BY 一定是SELECT語句中最后一條子句,參考列一定是可排序列
指定排序:默認升序,DESC降序
四、過濾數據
WHERE子句
WHERE 子句操作符
| !> | 不大于 | 
| BETWEEN | 在指定的兩個值之間 | 
| IS NULL | 為NULL | 
| <> / != | 不等于 | 
高級數據過濾
- AND操作符、OR操作符
 - IN操作符
 - NOT操作符:除……之外的數據
 
用通配符進行過濾
- LIKE操作符:
%(百分號)通配符:表示任何字符出現任意次數
子句 WHERE prod_name LIKE '%'不會匹配產品名稱為 NULL 的行
_(下劃線)通配符:只匹配單個字符
[](方括號)通配符:必須匹配指定位置(通配符的位置)的一個字符 
五、處理數據
拼接字段
在 SQL 中的 SELECT 語句中,可使用一個特殊的操作符來拼接兩個列,操作符(+,||)
 根據不同數據庫類型,有不同的關鍵字(Concat,RIRIM)
 別名:AS
使用函數
| LEFT()/RIGHT() | 返回字符串左/右邊的字符 | 
| LENGTH() | 返回字符串的的長度 | 
| LOWER()/UPPER | 將字符串轉換為小/大寫 | 
| LTRIM()/RTRIM() | 去掉字符串左/右邊的空格 | 
| SOUNEX | 返回字符串的SOUNDEX值 | 
SOUNDEX 是一個將任何文本串轉換為描述其語音表示的字母數字模式的算法。SOUNDEX 考慮了類似的發音字符和音節,使得能對字符串進行發音比較而不是字母比較。
下面給出一個使用 SOUNDEX()函數的例子。Customers 表中有一個顧客Kids Place,其聯系名為 Michelle Green。但如果這是錯誤的輸入,此聯系名實際上應該是 Michael Green,該怎么辦呢?顯然,按正確的聯系名搜索不會返回數據,如下所示:
--輸入 SELECT cust_name, cust_contact FROM Customers WHERE cust_contact = 'Michael Green'; --輸出cust_name cust_contact -------------------------- ----------------------------現在試一下使用 SOUNDEX()函數進行搜索,它匹配所有發音類似于Michael Green 的聯系名:
--輸入 SELECT cust_name, cust_contact FROM Customers WHERE SOUNDEX(cust_contact) = SOUNDEX('Michael Green'); --輸出cust_name cust_contact -------------------------- ---------------------------- Kids Place Michelle Green在這個例子中,WHERE 子句使用 SOUNDEX()函數把 cust_contact 列值
 和搜索字符串轉換為它們的 SOUNDEX 值。因為 Michael Green 和Michelle Green 發音相似,所以它們的 SOUNDEX 值匹配,因此 WHERE子句正確地過濾出了所需的數據。
日期和時間處理函數
參考數據庫文檔
數值處理函數
| EXP() | 返回一個數的指數值 | 
| SQRT() | 返回一個數的平方根 | 
數據匯總
| AVG() | 返回某列的平均值 | 
| COUNT() | 返回某列的行數 | 
| MAX()/MIN() | 返回某列的最大/小值 | 
| SUM() | 返回某列值之和 | 
聚集不同值:
- DISTINCT 參數——只包含不同的值
 - TOP……
 
數據分組
- GROUP BY 子句 ——創建分組
 - HAVING 子句——過濾分組
 
五、視圖
CREATE VIEW ProductCustomers AS SELECT cust_name, cust_contact, prod_id FROM Customers, Orders, OrderItems WHERE Customers.cust_id = Orders.cust_id AND OrderItems.order_num = Orders.order_num;總結
                            
                        - 上一篇: 超美的头发编发
 - 下一篇: 构建神经网络- 手写字体识别案例