在對資料進行管理時,使用SSMS進行資料維護有可視化、友善的優點,但是在批量維護或重複維護時,使用SSMS就不友善了,還容易出錯,這就需要編寫SQL語句對資料庫進行維護
SQL和T-SQL
SQL是Structured Query Language的縮寫,即結構化查詢語言,是關系資料庫的标準語言。如今Oracle、Sybase、Informix、SQL Server這些大型資料庫管理系統都支援SQL作為查詢語言
T-SQL是SQL的加強版,除了标準的SQL指令外,還支援類似于程式語言的基本功能,如流量控制、變量說明、功能函數等
T-SQL語言主要由以下幾部分組成:
DML(Data Manipulation Language,資料操縱語言):用來查詢、插入、删除、修改資料庫中的資料,如select、insert、update、delete
DDL(Data Definition Language,資料定義語言):用來建立資料庫、資料庫對象和定義其列,大部分指令以create開頭的指令,如create、alter、drop
DCL(Data Control Language,資料控制語言):用來控制資料庫元件的存取許可、存取權限等,如grant、revoke
插入資料(INSERT)
使用INSERT語句将資料庫插入到表中,文法格式如下:
insert [into] 表名 [列名] values 值清單
其中
* into是可選的,可省略
* 表名是必須的,而表的列名是可選的,如省略,值清單的順序與資料表中字段順序保持一緻
* 多個列名和值清單用逗号分隔
例如:向學生成績表中插入一行資料,可以使用如下T-SQL語句
SQL語句的執行一般在查詢視窗中進行,單擊“建立查詢”按鈕,選擇資料庫,輸入SQL語句,如下圖所示:
<a href="http://yangshufan.blog.51cto.com/13004230/1983937" target="_blank"></a>
在SSMS中單擊“√”,系統會檢查輸入的T-SQL語句是否有文法錯誤,之後會顯示分析結果,如果無誤,單擊執行,可以執行T-SQL語句,然後顯示執行結果,如下圖所示:
在插入資料時,需要注意以下事項:
(1)每次插入一整行資料,不可能隻插入半行或者幾列資料
(2)資料值的數目必須與列數相同,每個值的資料類型、精度、小數位也不需與相應的列比對
(3)對于字元類型的列,必須使用單引号
(4)插入的資料項要求符合CHECK限制的要求
更新資料(UPDATE)
使用UPDATE語句更新表中的資料,文法格式如下:
update 表名 set 列名=更新值 [where 更新條件]
* set後面可以緊随多個資料列的更新值,不限一個
* where是可選的,用來限制條件,如果不限制,整個表所有資料行都将被更新
例如:更改學生成績表中學生楊凡的CNT為95,SQL為77,可以使用如下T-SQL語句,如下圖所示
删除資料
(1)使用DELETE語句删除表中的資料
delete文法格式如下
delete from 表名 [where 删除條件]
* 如果不用where,将删除表中所有資料
例如:删除學生成績表中學生張三的記錄,可以使用如下T-SQL語句
注意:delete語句用于删除整條記錄,不會隻删除單個字段,是以在delete後面不能出現字段名
(2)使用Truncate table語句删除表中的資料
Truncate table語句用來删除表中所有行,功能上類似于,沒有where子句的delete語句, Truncate table文法格式如下:
truncate table 表名
Truncate table語句與DELETE語句的差別如下:
① Truncate table語句不帶where,隻能将整個表資料清空,而DELETE語句可以按照條件删除某些記錄
② Truncate table語句不記錄事務日志,删除後無法通過事務日志恢複;而DELETE語句每删除一行記錄,都會記錄一條事務日志。
③ Truncate table語句不能用于有外鍵限制引用的表,這種情況下,需要使用DELETE語句
綜上所述,Truncate table語句執行速度更快,在情況大量資料表作業時,DBA常用此語句,但在執行前要確定資料可以删除,否則無法恢複
本文轉自 楊書凡 51CTO部落格,原文連結:http://blog.51cto.com/yangshufan/1983937,如需轉載請自行聯系原作者