SQL語法
引用 http://tw.knowledge.yahoo.com/question/question?qid=1105063001689
SQL主要用在資料庫上
為控制資料庫的主要語言
目前大型資料庫都會用的到
下面是以前自已整理出來的SQL語法
Transact-SQL
1.資料定義語言(DDL)
CREATE:用來在SQL SERVER裡建立物件。
EX
Create Database ABC →建立名字為ABC的資料庫
Create Table TABLE1→建立名字為TABLE1的資料表
Create View VIEWSHOW As Select EmployeeID,EmployeeName From SHOW
→建立名字為VIEWSHOW的檢視表資料來源為SHOW資料表裡面的EmployeeID及EmployeeNAME欄位
Create Procedure ABCDO→建立一個名為ABCDO的程序
Create Function GetEmployees→建立一個名為GetEmployees的自定函數
DROP :用來刪除資料庫、資料表、程序 註:無法回復
EX
Drop Procedure ABCDO,A1,A2→刪除名為ABCDO、A1、A2的程序
DROP VIEW VIEWSHOW→刪除名為VIEW.SHOW的檢視表
DROP TABLE TABLE1→刪除名為TABLE1的資料表
DROP DATABASE ABC→刪除名為ABC的資料庫(刪除前必須先卸除資料庫的使用狀況
2.資料操作語言(DML)
SELECT:檢索資料
EX
Select StudentName,Math,Chinese From ABC INNER JOIN AClass on StudentID=AClassID INNER JOIN BClass on StudentID=BClassID Order By StudentName →從ABC查詢學生名字、數學、中文成績,join條件為id相同,依名字排序
JOIN 合併 ON 條件子句
INSERT:新增資料到資料表
EX
Insert sales(stor_id,ord_num,ord_date,qty,payterms,title_id)
UPDATE:修改資料表中一個或多個資料欄的值
Update Sales Set Payterms='COD' From Sales Inner Join Titles On Sales.title_id=Titles.title_id Where Titles.type='bussiness'
Case陳述式:
Update Sales Set Payterms=Case
When Titles.type='bussiness' Then 'COD'
When Titles.type=mod_cook' Then 'net 30'
When Titles.type='Popular_comp' Then 'net 40'
When Titles.type='Trad_cook' Then 'net 35'
When Titles.type='Psychology' Then 'net 0'
Else 'CASH'
END
From Sales Inner Join Titles on Sales.title_id=Titles.title_id
DELETE:用來刪除一個資料列或是一組資料列,如果沒有where子句,那麼所有該資料表中的資料列都會被清除
EX
Delete authors Where State='ca'
3.資料控制語言(DCL)
GRANT:權限授予
EX
Grant Select on Authors To Mary→授予Mary從Authors讀取資料的權力
Grant Select on Authors To Mary With Grant Option → 授予Mary從Authors讀取資料的權力,並把授權的能力給予
REVOKE:撤銷權限
EX
Revoke Select,Update(au_lname,au_fname) On Authors From Johndoe→撤銷了Johndoe在Authors資料表中查詢、更新的權力
Revoke Grant Option For Select on Sales From Mary CASCADE→撤銷Mary對其他人Select授權能力,最後的CASCADE確保由Mary授權的使用者也失去這個權限
DENY:跟 revoke很類似,同樣也是撤銷權限,但是比revoke更嚴格,比如jonedoe是屬於accounting的角色關係,授權給這2個角色讀取 sales資料的權限,現在如果revoke了johndoe的權限,但它還是可以因為隸屬於accounting而有權讀取;用DENY則可以避免這種情況
EX
Deny select on sales to Johndoe→完全的撤銷Johndoe讀取sales的權力
留言
張貼留言