SQL語言_1 SQL和T-SQL基礎

                                  SQL語言_SQL和T-SQL基礎

                                                                                                                              作者:田超凡

版權所有,轉載請註明原作者,仿冒侵權必究法律責任

 

1.表的基本概念

數據庫中的表用來根據不同需求和實際需要分門別類存儲數據,數據庫中的數據都存放在不同類型的表中,因此可以說表是數據庫的一個重要組成部分。

2.數據完整性的概念,以及SQL Server爲保證數據完整性提供的4種類型的約束的作用、區別、聯繫

數據完整性:數據完整性指的是數據庫中數據的準確性。

爲保證數據完整性,SQL Server提供了以下4種類型的約束:

(1)實體完整性約束

作用:確保同一個表中不能存在相同的數據行。

實施方式:主鍵約束、非空約束、標識列

(2)域完整性約束

作用:確保給定列輸入值的有效性。

實施方式:檢查約束、外鍵約束、默認約束、唯一約束

(3)引用完整性約束

作用:保持表之間已建立的關係。

實施方式:外鍵約束

(4)自定義完整性約束

作用:通過用戶自定義完整性定義特定規則。

實施方式:自定義。

3.SQL Server中的基本數據類型

二進制數據類型:binary/varbinary/image

字符數據類型:

char/varchar(非Unicode字符)

nchar/nvarchar(Unicode字符)

長度區別:char/nchar固定長度,varchar/nvarchar長度可變

text長文本 ntext可變長度的長文本

日期時間類型:datetime/smalldatetime/date

數值數據類型(包括整數、小數和分數):

整數:int/bigint/smallint/tinyint

小數:float/real

貨幣數據類型:money

布爾數據類型(1是0否,實際返回true/false):bit

 

4.表的結構以及主外鍵相關定義、如何建立表間關係(實施引用完整性)

表的結構:列是否爲空IS NULL/NOT NULL 是否有默認值DEFAULT,是否是標識列IDENTITY(標識種子,標識增量),是否是主鍵PRIMARY KEY

是否爲空:是否允許列中插入空值

默認值:不顯式在某列插入數據時,該列默認插入的數據

標識列:自動編號,不能輸入數據,數據類型必須是整數型,可以設置爲主鍵,實施實體完整性

主鍵:主鍵用來唯一標識表中的每一列,強制實體完整性,一個表只能有一個主鍵。

複合主鍵:當需要將兩列或兩列以上的列設置爲一個主鍵時,則該主鍵也叫複合主鍵。

外鍵:用來建立引用關係,確保從表中的某個數據項在主表中必須存在,強制引用完整性,一個表可以有多個外鍵,外鍵中的數據和主鍵中的數據相對應,添加外鍵約束前必須先添加外鍵對應的主鍵(主鍵約束)

 

※通過學習本章,你需要掌握並熟練運用的知識:

1.SQL語言的定義、作用?

2.T-SQL和SQL間的關係?

3.SQL語言的組成?

4.SQL語言中的運算符?

5.T-SQL插入數據的語法?(一次插入一行/一次插入多行)

6.T-SQL插入標識列的語法?

7.T-SQL更新(修改)數據的語法?

8.T-SQL刪除數據的語法?(刪除部分記錄/刪除表中所有數據)

9.TRUNCATE TABLE使用中的一些注意事項?

10.T-SQL語言執行增、刪、改的一些注意事項

 

※對照下面的一些自我總結看看是否掌握了本章知識

1.

定義:SQL語言是結構化查詢語言(struct query language),通過使用SQL語言,可以使用代碼代替使用鼠標對數據庫中的一些常用操作,SQL語言甚至可以通過ADO.NET搭建數據庫和應用程序之間的橋樑。SQL語言相對於界面操作而言,操作方式更加靈活,執行速度更快,執行效率更高,可以滿足更多的實際需求,SQL語言是當今程序員必須掌握的一個對於操作數據庫而言的基本技能。

作用:數據庫需要一套指令集,能夠識別指令,執行相應操作,並向程序提供數據。目前標準的指令集就是SQL語言。

2.

T-SQL:SQL Server使用的ANSI SQL的一個擴展集,依賴於SQL語言,T-SQL只能在SQL Server數據庫中使用,使用範圍相對單一。

SQL語言:數據庫通用的結構化查詢語言,適用範圍相對較廣,可以在當今主流的幾乎任意一種數據庫中使用,方便程序員對數據庫進行操作。

關係:

作用域不同:SQL語言可以在當今主流的幾乎所有數據庫中使用,T-SQL只能在SQL Server數據庫中使用。

依賴關係:T-SQL依賴於SQL語言

3.

SQL語言主要由以下幾個部分組成:

DML 數據操作語言

DDL 數據定義語言

DQL 數據查詢語言

DCL 數據控制語言

4.

SQL語言中的運算符主要由以下幾種類型:

算術運算符:進行常見的加減乘除取模運算

賦值運算符:可以給變量賦值,一般在更新(修改)數據中用的比較多,用來給某列賦修改後的值。

比較運算符:進行常見的大小關係比較,主要運用於建立檢查約束(CHECK)和作爲分支結構控制語句(如IF-ELSE、CASE-END) 的判斷條件

邏輯運算符:AND/OR/NOT用來對條件進行判斷,返回布爾類型(true/false)

5.

T-SQL一次插入一行數據:

INSERT  [INTO]  table_name(column1,column2….)

VALUES(value1,value2…)

T-SQL一次插入多行數據:

INSERT-SELECT語句:將以存在表中的數據一次性插入到已建好的表中

INSERT  [INTO]  table_name(column1,column2…)

SELECT column1,column2….

FROM  table_name

 

SELECT-INTO:將已存在的表中的數據插入到新表中(系統自動創建新表)

SELECT column1,column2….

INTO table_new

FROM table_name

 

INSERT-SELECT-UNION:一次插入多行數據(手動輸入的情況)

INSERT  [INTO]  table_name(column1,column2…)

SELECT value1,value2 UNION  ——第一行

SELECT value1,value2 UNION  ——第二行

…最後一行結尾不用加UNION

 

6.T-SQL插入標識列:

SELECT  IDENTITY(數據類型(必須是整數型,一般使用int),標識種子,標識增量)  AS 標識列名

INTO  table_name

FROM  table_name

 

7.T-SQL更新表中數據

UPDATE table_name SET column1=value1,column2=value2…

WHERE 更新條件

 

8.T-SQL刪除數據

刪除部分記錄:

DELETE FROM table_name

WHERE 刪除條件

刪除表中所有數據:

DELETE FROM table_name

TRUNCATE TABLE table_name

 

9.TRUNCATE-TABLE刪除表中所有數據時的一些注意事項:

①使用TRUNCATE TABLE刪除的數據不能恢復

②使用TRUNCATE TABLE刪除表中數據後,標識列會重新開始編號

③不能使用TRUNCATE TABLE刪除帶有外鍵約束的引用的表的數據

④使用TRUNCATE TABLE刪除表中數據後,表中的約束依然存在

⑤建議儘量少用TRUNCATE TABLE語句刪除表中所有數據,以免由於誤操作而造成數據丟失、損壞,從而帶來的嚴重後果。

 

10.T-SQL語言執行表中數據增、刪、改的注意事項:

①新增的數據必須滿足插入的表中的各種約束,從而保證數據完整性。另外,列名和插入的數據數量、類型、順序必須保持一致,不然會導致插入失敗

②更新表中數據(修改表中的數據時),一般需要使用WHERE字句限定更新(修改)條件,如果不限定WHERE條件,則將默認更新表中所有數據。實際應用中一般建議限定WHERE條件,以免誤操作導致表中所有數據的更新(原本只需要更新部分數據),而破壞數據完整性

③刪除數據時一定要謹慎,儘量少用TRUNCATE TABLE刪除數據,刪除數據的語法中WHERE字句可選,不限定WHERE條件則默認刪除表中所有數據,產生的效果類似於TRUNCATE TABLE,但是使用DELETE語句刪除數據後標識列不會重新開始編號,甚至可以撤銷刪除(恢復數據),而TRUNCATE TABLE執行的刪除操作則是徹底的,不可撤銷和恢復的。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章