SQL是Structure Query Language(結構化查詢語言)的縮寫。 SQL主要可以分為三個類別: 1.DDL(Data Definition Languages)語句:數據定義語言,這些語句定義了不同的數據段、資料庫、表、列、索引等資料庫對象。常用的關鍵字有: create 、dro ...
SQL是Structure Query Language(結構化查詢語言)的縮寫。
SQL主要可以分為三個類別:
1.DDL(Data Definition Languages)語句:數據定義語言,這些語句定義了不同的數據段、資料庫、表、列、索引等資料庫對象。常用的關鍵字有: create 、drop、alter等。
2.DML(Data Manipulation Language)語句:資料庫操縱語言,用於添加,刪除,更新和查詢資料庫,檢查數據完整性。常用的語句關鍵字:insert 、delete 、 update和select等。
3.DCL(Data Control Language)語句:資料庫控制語言,用於控制不同的數據段直接的許可和訪問級別的語句。這些語句定義了資料庫,表,欄位,用戶的訪問許可權和安全級別。主要的關鍵字包括:grant、revoke等。
DDL語句:
DDL是資料庫定義語言的縮寫,是對資料庫內部的對象進行創建、刪除、修改等操作的語言。
1).創建資料庫:CREATE DATABASE dbname;
2).查看資料庫:SHOW DATABASES;
3).選擇要操作的數據:USE dbname;
4).查看所有數據表:SHOW TABLES;
5).刪除資料庫:DROP DATABAES dbname;
6).創建表:CREATE TABLE tablename;
7).查看表的定義:DESC tablename / SHOW CREATE TABLE tablename;
8).刪除表:DROP TABLE tablename;
9).修改表類型: MODIFY,增加表欄位:ADD,刪除表欄位:DROP,欄位改名:CHANGE
註意:change 和 modify 都可以修改表的定義,不同的是 change 後面需要寫兩次列名,不方便,但是 change 的優點是可以修改列名稱,modify 則不能。
DML語句:
DML是指對資料庫中表記錄的操作,主要包括了插入,更新,刪除,查詢等開發人員日常使用最頻繁的操作。
1.插入記錄:INSERT INTO tablename (欄位1,欄位2,....) VALUES(value1,value2,...);
2.更新記錄:UPDATE tablename SET 欄位1=value1,欄位2=value2,.... [WHERE CONDITION];
更新多表:UPDATE t1,t2... SET t1.欄位1=expr1,t2.欄位1=expr1.... [WHERE CONDITION];
註意:多表更新的語法更多地用來根據一個表的欄位來動態的更新另一個表的欄位。
3.刪除記錄:DELETE FROM tablename [WHERE CONDITION];
刪除多表:DELETE t1,t2,... FROM t1,t2,... [WHERE CONDITION];
註意:不管是單表還是多表刪除,不加 where 條件都會把表的所有記錄刪除,操作時一定要小心。
4.查詢記錄:SELETE * FROM tablename [WHERE CONDITION];
查詢時常用的關鍵字:DISTINCT(去重),ORDER BY(排序,DESC/ASC ),LIMIT(顯示的行數--解釋不太規範),GROUP BY(分類),HAVING(對分類後的結果進行篩選),
WITH ROLLUP(對分類聚合後的結果進行再彙總),聚合函數(sum<求和>,max<最大值>,min<最小值>,count<記錄數>)
WHERE後面的條件是一個欄位用=比較,除了=以外,還可以使用 >,<,<=,>=,!=等比較運算符;多個條件直接還可以使用or 、and等邏輯運算符進行多條件查詢。
5.表連接:表連接分為外鏈接和內連接,他們的主要區別是,內連接僅選出兩張表內互相匹配的記錄,而外連接會選出其他不匹配的記錄,我們常用的是內連接。
外連接又分為左連接和右連接,右連接和左連接之間類似,可以互相轉化。
6.子查詢:某些情況下,當進行查詢的時候,需要的條件是一個select的結果,這個時候就會用到子查詢,子查詢會用到的關鍵字有:in、not in 、=、!=、exists、not exists等。
如果子查詢記錄數唯一,可以用=代替in;
註意:子查詢和表連接之間的轉換主要應用於兩個方向:
表連接在很多情況下用於優化子查詢,
MySql4.1以前的版本不支持子查詢,需要用表連接來實現子查詢的功能。
7.記錄聯合:將兩個表的數據按照一定的查詢條件查詢出來後,將結果合併到一起顯示出來。關鍵字:UNION 和 UNION ALL ,UNION ALL是把結果集合併到一起,而UNION則是進行了一次DISTINCT,去除重覆記錄。
DCL語句是DBA用來管理系統中的對象許可權時使用,一般開發人員很少使用,常用的關鍵字有:grant , revoke等;
總結:MySQL在變種的sql基礎上進行了很多擴展,本文章只是對一些簡單的常用語法進行了彙總,有未曾寫到的東西還請查詢官方文檔。