天天看點

使用T-SQL語句插入、更新、删除資料表

    在對資料進行管理時,使用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,如需轉載請自行聯系原作者