CREATE TABLE <表名>(<列名> <數據類型>[列級完整性約束條件] [,<列名> <數據類型>[列級完整性約束條件]]…);
列級完整性約束條件有NULL[可爲空]、NOT NULL[不爲空]、UNIQUE[惟一],能夠組合使用,可是不能重複和對立關係同時存在。sql
-- 建立學生表 CREATE TABLE Student ( Id INT NOT NULL UNIQUE PRIMARY KEY, Name VARCHAR(20) NOT NULL, Age INT NULL, Gender VARCHAR(4) NULL );
DROP TABLE <表名>;
-- 刪除學生表 DROP TABLE Student;
TRUNCATE TABLE <表名>;
-- 刪除學生表 TRUNCATE TABLE Student;
-- 添加列 ALTER TABLE <表名> [ADD <新列名> <數據類型>[列級完整性約束條件]] -- 刪除列 ALTER TABLE <表名> [DROP COLUMN <列名>] -- 修改列 ALTER TABLE <表名> [MODIFY COLUMN <列名> <數據類型> [列級完整性約束條件]]
-- 添加學生表`Phone`列 ALTER TABLE Student ADD Phone VARCHAR(15) NULL; -- 刪除學生表`Phone`列 ALTER TABLE Student DROP COLUMN Phone; -- 修改學生表`Phone`列 ALTER TABLE Student MODIFY Phone VARCHAR(13) NULL;
SELECT [ALL|DISTINCT] <目標列表達式>[,<目標列表達式>]… FROM <表名或視圖名>[,<表名或視圖名>]… [WHERE <條件表達式>] [GROUP BY <列名> [HAVING <條件表達式>]] [ORDER BY <列名> [ASC|DESC]…]
SQL查詢語句的順序:SELECT、FROM、WHERE、GROUP BY、HAVING、ORDER BY。SELECT、FROM是必須的,HAVING子句只能與GROUP BY搭配使用。code
SELECT * FROM Student WHERE Id>10 GROUP BY Age HAVING AVG(Age) > 20 ORDER BY Id DESC
-- 插入不存在的數據 INSERT INTO <表名> [(字段名[,字段名]…)] VALUES (常量[,常量]…); -- 將查詢的數據插入到數據表中 INSERT INTO <表名> [(字段名[,字段名]…)] SELECT 查詢語句;
-- 插入不存在的數據 INSERT INTO Student (Name,Age,Gender) VALUES ('Andy',30,'女'); -- 將查詢的數據插入到數據表中 INSERT INTO Student (Name,Age,Gender) SELECT Name,Age,Gender FROM Student_T WHERE Id >10;
UPDATE <表名> SET 列名=值表達式[,列名=值表達式…] [WHERE 條件表達式]
-- 將Id在(10,100)的Age加1 UPDATE Student SET Age= Age+1 WHERE Id>10 AND Id<100
DELETE FROM <表名> [WHERE 條件表達式]
-- 刪除Id小於10的數據記錄 DELETE FROM Student WHERE Id<10;
CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次序>][,<列名>[<次序>]]…);
UNIQUE:代表此索引的每個索引值只對應惟一的數據記錄
CLUSTER:代表創建的索引是彙集索引
次序:可選ASC(升序)或DESC(降序),默認ASC對象
-- 創建學生表索引:單一字段Id索引倒序 CREATE UNIQUE INDEX INDEX_SId ON Student (Id DESC); -- 創建學生表索引:多個字段Id、Name索引倒序 CREATE UNIQUE INDEX INDEX_SId_SName ON Student (Id DESC,Name DESC);
DROP INDEX <索引名>;
-- 刪除學生表索引 INDEX_SId DROP INDEX INDEX_SId;
CREATE VIEW <視圖名> AS SELECT 查詢子句 [WITH CHECK OPTION]
查詢子句:子查詢能夠是任何SELECT語句,可是常不容許含有
ORDER BY
子句和DISTINCT
短語;
WITH CHECK OPTION:表示對UPDATE、INSERT、DELETE操做時要保證更新。索引
CREATE VIEW VIEW_Stu_Man AS SELECT * FROM Student WHERE Gender = '男' WITH CHECK OPTION
DROP VIEW <視圖名>;
DROP VIEW VIEW_Stu_Man;
訪問控制是控制用戶的數據存儲權限,由DBA來決定。
SQL標準語句包括SELECT、INSERT、UPDATE和DELETEclass
-- 1.受權 GRANT <權限>[,<權限>]… [ON <對象類型> <對象名>] TO <用戶>[,<用戶>]… [WITH GRANT OPTION] -- 2.收回受權 REVOKE <權限>[,<權限>]… [ON <對象類型> <對象名>] FROM <用戶>[,<用戶>]…
WITH GRANT OPTION:若指定此子句,表示該用戶能夠將權限賦給其餘用戶權限
-- 受權 GRANT SELECT,INSERT,UPDATE ON TABLE TO USER_Admin WITH GRANT OPTION -- 收回受權 REVOKE SELECT,INSERT,UPDATE ON TABLE FROM USER_Admin