sql管理數(shù)據(jù)表_第1頁
sql管理數(shù)據(jù)表_第2頁
sql管理數(shù)據(jù)表_第3頁
sql管理數(shù)據(jù)表_第4頁
sql管理數(shù)據(jù)表_第5頁
已閱讀5頁,還剩18頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第 3 章管 理 數(shù) 據(jù) 表創(chuàng)建、修改和刪除表創(chuàng)建、修改和刪除表插入、修改和刪除數(shù)據(jù)插入、修改和刪除數(shù)據(jù)管理完整性約束管理完整性約束 使用使用 Transact-SQL 語句語句創(chuàng)建、創(chuàng)建、修改和刪除表:修改和刪除表: 使用使用create命令創(chuàng)建表非常靈活,它允許對表設置幾種不同的選項,命令創(chuàng)建表非常靈活,它允許對表設置幾種不同的選項,包括表名、存放位置和列的屬性等。包括表名、存放位置和列的屬性等。 其完整語法形式如下其完整語法形式如下:CREATE TABLE database_name.owner.|owner. table_name ( |column_name AS computed

2、_column_expression | ,n) ON filegroup | DEFAULT TEXTIMAGE_ON filegroup|DEFAULT := column_name data_type DEFAULT constant_expression |IDENTITY(seed,increment ) .n 其中,各參數(shù)的說明如下:其中,各參數(shù)的說明如下: database_name:用于指定所創(chuàng)建表的數(shù)據(jù)庫名稱。:用于指定所創(chuàng)建表的數(shù)據(jù)庫名稱。 owner:用于指定新建表的所有者的用戶名。:用于指定新建表的所有者的用戶名。 table_name:用于指定新建表的名稱。:用于指定

3、新建表的名稱。 column_name:用于指定新建表的列名。:用于指定新建表的列名。 computed_column_expression:用于指定計算列的列值表達式。:用于指定計算列的列值表達式。 ON filegroup | DEFAULT:用于指定存儲表的文件組名。:用于指定存儲表的文件組名。 TEXTIMAGE_ON:用于指定:用于指定 text、ntext 和和 image 列的數(shù)據(jù)存儲的文件組。列的數(shù)據(jù)存儲的文件組。 data_type:用于指定列的數(shù)據(jù)類型。:用于指定列的數(shù)據(jù)類型。 DEFAULT:用于指定列的默認值。:用于指定列的默認值。 constant_expressio

4、n:用于指定列的默認值的常量表達式、可以為一個常:用于指定列的默認值的常量表達式、可以為一個常量或量或NULL或系統(tǒng)函數(shù)。或系統(tǒng)函數(shù)。 IDENTITY:用于將列指定為標識列。:用于將列指定為標識列。Seed:用于指定標識列的初始值。:用于指定標識列的初始值。Increment:用于指定標識列的增量值。:用于指定標識列的增量值。 column_constraint 和和 table_constraint:用于指定列約束和表約束。:用于指定列約束和表約束。 舉例:舉例:- 分別創(chuàng)建分別創(chuàng)建 名為名為 student 的表的表- 創(chuàng)建列,并定義其數(shù)據(jù)類型和可空性創(chuàng)建列,并定義其數(shù)據(jù)類型和可空性cr

5、eate table student( sno char(10) not null primary key, sname char(10) not null, ssex char(2), sage int, sdept char (10); 舉例:舉例:- 分別創(chuàng)建分別創(chuàng)建 名為名為 course的表的表- 創(chuàng)建列,并定義其數(shù)據(jù)類型和可空性創(chuàng)建列,并定義其數(shù)據(jù)類型和可空性create table course( cno char(10) not null primary key, cname char(10) not null, ccredit int); 舉例:舉例:- 分別創(chuàng)建分別創(chuàng)建 名

6、為名為 score的表的表- 創(chuàng)建列,并定義其數(shù)據(jù)類型和可空性創(chuàng)建列,并定義其數(shù)據(jù)類型和可空性create table score( sno char(10) not null foreign key references student(sno), cno char(10) not null foreign key references course(cno), grade numeric(9), primary key (sno,cno);系統(tǒng)提供的數(shù)據(jù)類型:系統(tǒng)提供的數(shù)據(jù)類型:種類種類數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)字數(shù)字整數(shù)整數(shù)int, bigint, smallint, tinyint精確數(shù)值精

7、確數(shù)值decimal, numeric近似數(shù)值近似數(shù)值float, real貨幣貨幣money, smallmoney日期和時間日期和時間 datetime, smalldatetime字符字符Non-Unicodechar, varchar, varchar(max), textUnicodenchar, nvarchar, nvarchar(max), ntext二進制二進制 binary, varbinary, varbinary(max)圖像圖像 image全局標識符全局標識符 uniqueidentifierXMLxml特殊特殊 bit, cursor, timestamp, sys

8、name, table, sql_variant 整數(shù)類型:整數(shù)類型: 它主要用來存儲數(shù)值,可以直接進行數(shù)據(jù)運算,而不必使用函數(shù)轉換。它主要用來存儲數(shù)值,可以直接進行數(shù)據(jù)運算,而不必使用函數(shù)轉換。整數(shù)類型包括以下四類:整數(shù)類型包括以下四類:(1)Bigint:Bigint數(shù)據(jù)類型可以存儲一定范圍之間的所有整型數(shù)據(jù)。數(shù)據(jù)類型可以存儲一定范圍之間的所有整型數(shù)據(jù)。每個每個Bigint數(shù)據(jù)類型值存儲在數(shù)據(jù)類型值存儲在8個字節(jié)中。個字節(jié)中。(2)Int(Integer):):Int(或(或integer)數(shù)據(jù)類型可以存儲一定范圍之間)數(shù)據(jù)類型可以存儲一定范圍之間的所有正負整數(shù)。每個的所有正負整數(shù)。每個I

9、nt數(shù)據(jù)類型值存儲在數(shù)據(jù)類型值存儲在4個字節(jié)中。個字節(jié)中。(3)Smallint:可以存儲一定范圍之間的所有正負整數(shù)。每個:可以存儲一定范圍之間的所有正負整數(shù)。每個smallint類型的數(shù)據(jù)占用類型的數(shù)據(jù)占用2個字節(jié)的存儲空間。個字節(jié)的存儲空間。(4)Tinyint:可以存儲從:可以存儲從0255范圍之間的所有正整數(shù)。每個范圍之間的所有正整數(shù)。每個tinyint類類型的數(shù)據(jù)占用型的數(shù)據(jù)占用1個字節(jié)的存儲空間。個字節(jié)的存儲空間。 位數(shù)據(jù)類型:位數(shù)據(jù)類型: Bit稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和和1,長度為,長度為1字節(jié)。在輸字節(jié)。在輸入入0以外的其他值時,

10、系統(tǒng)均把它們當以外的其他值時,系統(tǒng)均把它們當1看待。這種數(shù)據(jù)類型常作為邏輯變看待。這種數(shù)據(jù)類型常作為邏輯變量使用,用來表示真、假或是、否等二值選擇。量使用,用來表示真、假或是、否等二值選擇。 Decimal數(shù)據(jù)類型和數(shù)據(jù)類型和Numeric數(shù)據(jù)類型數(shù)據(jù)類型 Decimal和和Numeric數(shù)據(jù)類型完全相同,它們可以提供小數(shù)所需要數(shù)據(jù)類型完全相同,它們可以提供小數(shù)所需要的實際存儲空間,但也有一定的限制,可以用的實際存儲空間,但也有一定的限制,可以用517個字節(jié)來存儲一定范個字節(jié)來存儲一定范圍之間的固定精度和小數(shù)位的數(shù)字。圍之間的固定精度和小數(shù)位的數(shù)字。 可將其寫為可將其寫為Decimal(p,s

11、)的形式,)的形式,p和和s確定了精確的總位數(shù)和確定了精確的總位數(shù)和小數(shù)位。其中小數(shù)位。其中p表示可供存儲的值的總位數(shù),默認設置為表示可供存儲的值的總位數(shù),默認設置為18;s表示小數(shù)表示小數(shù)點后的位數(shù),默認設置為點后的位數(shù),默認設置為0。例如:。例如:decimal(10,5),表示共有),表示共有10位位數(shù),其中整數(shù)數(shù),其中整數(shù)5位,小數(shù)位,小數(shù)5位。位。 貨幣數(shù)據(jù)類型:貨幣數(shù)據(jù)類型: Money:用于存儲貨幣值,存儲在:用于存儲貨幣值,存儲在money數(shù)據(jù)類型中的數(shù)值以一個數(shù)據(jù)類型中的數(shù)值以一個正數(shù)部分和一個小數(shù)部分存儲在兩個正數(shù)部分和一個小數(shù)部分存儲在兩個4字節(jié)的整型值中,精確到貨幣單位

12、字節(jié)的整型值中,精確到貨幣單位的千分之十。的千分之十。 Smallmoney:與:與money數(shù)據(jù)類型類似,但范圍比數(shù)據(jù)類型類似,但范圍比money數(shù)據(jù)類型數(shù)據(jù)類型小,精確到貨幣單位的千分之十。小,精確到貨幣單位的千分之十。 當為當為money或或smallmoney的表輸入數(shù)據(jù)時,必須在有效位置前面的表輸入數(shù)據(jù)時,必須在有效位置前面加一個貨幣單位符號。加一個貨幣單位符號。 近似數(shù)字類型包括近似數(shù)字類型包括Real和和Float兩大類。兩大類。 Real:可以存儲正的或者負的十進制數(shù)值,最大可以有:可以存儲正的或者負的十進制數(shù)值,最大可以有7位精確位數(shù)。位精確位數(shù)。每個每個Real 類型的數(shù)據(jù)

13、占用類型的數(shù)據(jù)占用4個字節(jié)的存儲空間。個字節(jié)的存儲空間。 Float:可以精確到第:可以精確到第15位小數(shù)。如果不指定位小數(shù)。如果不指定Float 數(shù)據(jù)類型的長度,它數(shù)據(jù)類型的長度,它占用占用8個字節(jié)的存儲空間。個字節(jié)的存儲空間。Float數(shù)據(jù)類型也可以寫為數(shù)據(jù)類型也可以寫為Float(n)的形式,)的形式,n指指定定Float數(shù)據(jù)的精度,數(shù)據(jù)的精度,n為為115之間的整數(shù)值。之間的整數(shù)值。 當當n取取17時,實際上是定義了一個時,實際上是定義了一個Real 類型的數(shù)據(jù),系統(tǒng)用類型的數(shù)據(jù),系統(tǒng)用4個字節(jié)存?zhèn)€字節(jié)存儲它;當儲它;當n取取815時,系統(tǒng)認為其是時,系統(tǒng)認為其是Float類型,用類型

14、,用8個字節(jié)存儲它。個字節(jié)存儲它。 日期和時間數(shù)據(jù)類型日期和時間數(shù)據(jù)類型 Datetime:用于存儲日期和時間的結合體,其精確度可達:用于存儲日期和時間的結合體,其精確度可達3.33毫秒。毫秒。 Datetime數(shù)據(jù)類型所占用的存儲空間為數(shù)據(jù)類型所占用的存儲空間為8個字節(jié)。當存儲個字節(jié)。當存儲Datetime數(shù)數(shù)據(jù)類型時,默認的格式是據(jù)類型時,默認的格式是MM DD YYYY hh:mm A.M./P.M,當插入數(shù)據(jù)或,當插入數(shù)據(jù)或者在其他地方使用者在其他地方使用Datetime類型時,需要用單引號把它括起來。類型時,需要用單引號把它括起來。 默認的時間日期是默認的時間日期是January 1

15、,1900 12:00 A.M??梢越邮艿妮斎敫袷???梢越邮艿妮斎敫袷饺缦拢喝缦拢篔an 4 1999、JAN 4 1999、January 4 1999等。等。Smalldatetime:與:與Datetime數(shù)據(jù)類型類似,但其日期時間范圍較小。數(shù)據(jù)類型類似,但其日期時間范圍較小。 SmallDatetime數(shù)據(jù)類型使用數(shù)據(jù)類型使用4個字節(jié)存儲數(shù)據(jù),個字節(jié)存儲數(shù)據(jù),SQL Server 2000用用2個字個字節(jié)存儲日期節(jié)存儲日期SmallDatetime的精度為的精度為1分鐘。分鐘。 字符數(shù)據(jù)類型:字符數(shù)據(jù)類型: 它可以用來存儲各種字母、數(shù)字符號和特殊符號。在使用字符數(shù)據(jù)類它可以用來存儲各種

16、字母、數(shù)字符號和特殊符號。在使用字符數(shù)據(jù)類型時,需要在其前后加上英文單引號或者雙引號。型時,需要在其前后加上英文單引號或者雙引號。 Char:其定義形式為:其定義形式為Char(n),當用),當用Char數(shù)據(jù)類型存儲數(shù)據(jù)時,每個數(shù)據(jù)類型存儲數(shù)據(jù)時,每個字符和符號占用一個字節(jié)的存儲空間。字符和符號占用一個字節(jié)的存儲空間。n 表示所有字符所占的存儲空間。表示所有字符所占的存儲空間。若不指定若不指定n值,系統(tǒng)默認值,系統(tǒng)默認n的值為的值為1。如果定義了一個。如果定義了一個Char數(shù)據(jù)類型,而且數(shù)據(jù)類型,而且允許該列為空,則該字段被當作允許該列為空,則該字段被當作Varchar來處理。來處理。 Var

17、char:其定義形式為:其定義形式為Varchar(n)。用)。用Char數(shù)據(jù)類型可以存儲長達數(shù)據(jù)類型可以存儲長達8000個字符的可變長度字符串,和個字符的可變長度字符串,和Char類型不同的是類型不同的是Varchar類型的存儲空類型的存儲空間是根據(jù)存儲在表的每一列值的字符數(shù)變化的。間是根據(jù)存儲在表的每一列值的字符數(shù)變化的。 Text:用于存儲文本數(shù)據(jù),實際應用時要根據(jù)硬盤的存儲空間而定存:用于存儲文本數(shù)據(jù),實際應用時要根據(jù)硬盤的存儲空間而定存儲量。儲量。 Unicode 字符數(shù)據(jù)類型字符數(shù)據(jù)類型(Nchar、Nvarchar、Ntext三種):三種): Nchar:其定義形式為:其定義形式

18、為Nchar(n)。)。Nchar數(shù)據(jù)類型采用數(shù)據(jù)類型采用Unicode標準字標準字符集,符集,Unicode標準用兩個字節(jié)為一個存儲單位,其一個存儲單位的容納量標準用兩個字節(jié)為一個存儲單位,其一個存儲單位的容納量就大大增加了,可以將全世界的語言文字都囊括在內,在一個數(shù)據(jù)列中就就大大增加了,可以將全世界的語言文字都囊括在內,在一個數(shù)據(jù)列中就可以同時出現(xiàn)中文、英文、法文等,而不會出現(xiàn)編碼沖突。可以同時出現(xiàn)中文、英文、法文等,而不會出現(xiàn)編碼沖突。 Nvarchar:其定義形式:其定義形式Nvarchar(n)。它與)。它與Varchar數(shù)據(jù)類型相似,數(shù)據(jù)類型相似,Nvarchar數(shù)據(jù)類型也采用數(shù)據(jù)

19、類型也采用Unicode標準字符集,標準字符集,n的取值范圍為的取值范圍為14000。 Ntext:與與Text數(shù)據(jù)類型類似,存儲在其中的數(shù)據(jù)通常是直接能輸出到數(shù)據(jù)類型類似,存儲在其中的數(shù)據(jù)通常是直接能輸出到顯示設備上的字符,顯示設備可以是顯示器、窗口或者打印機。顯示設備上的字符,顯示設備可以是顯示器、窗口或者打印機。 二進制數(shù)據(jù)類型:二進制數(shù)據(jù)類型: Binary:其定義形式為其定義形式為Binary(n),數(shù)據(jù)的存儲長度是固定的,當),數(shù)據(jù)的存儲長度是固定的,當輸入的二進制數(shù)據(jù)長度小于輸入的二進制數(shù)據(jù)長度小于n時,余下部分填充時,余下部分填充0。 二進制數(shù)據(jù)類型的最大長度(即二進制數(shù)據(jù)類型

20、的最大長度(即n的最大值)為的最大值)為8000,常用于存儲圖,常用于存儲圖像等數(shù)據(jù)。像等數(shù)據(jù)。 Varbinary:其定義形式為其定義形式為Varbinary(n),數(shù)據(jù)的存儲長度是變),數(shù)據(jù)的存儲長度是變化的,它為實際所輸入數(shù)據(jù)的長度加上化的,它為實際所輸入數(shù)據(jù)的長度加上4字節(jié)。其他含義同字節(jié)。其他含義同Binary。 Image:用于存儲照片、目錄圖片或者圖畫。其存儲數(shù)據(jù)的模式與用于存儲照片、目錄圖片或者圖畫。其存儲數(shù)據(jù)的模式與Text數(shù)據(jù)類型相同,通常存儲在數(shù)據(jù)類型相同,通常存儲在Image字段中的數(shù)據(jù)不能直接用字段中的數(shù)據(jù)不能直接用Insert語句直接輸入。語句直接輸入。 特殊數(shù)據(jù)類

21、型:特殊數(shù)據(jù)類型:(1)Sql_variant:用于存儲除文本、圖形數(shù)據(jù)和:用于存儲除文本、圖形數(shù)據(jù)和Timestamp類型數(shù)據(jù)外的類型數(shù)據(jù)外的其他任何合法的其他任何合法的SQL Server數(shù)據(jù)。此數(shù)據(jù)類型極大地方便了數(shù)據(jù)。此數(shù)據(jù)類型極大地方便了SQL Server的的開發(fā)工作。開發(fā)工作。(2)Table:用于存儲對表或者視圖處理后的結果集。這種新的數(shù)據(jù)類型:用于存儲對表或者視圖處理后的結果集。這種新的數(shù)據(jù)類型使得變量可以存儲一個表,從而使函數(shù)或過程返回查詢結果更加方便、使得變量可以存儲一個表,從而使函數(shù)或過程返回查詢結果更加方便、快捷。快捷。(3)Timestamp:亦稱時間戳數(shù)據(jù)類型,它

22、提供數(shù)據(jù)庫范圍內的惟一值:亦稱時間戳數(shù)據(jù)類型,它提供數(shù)據(jù)庫范圍內的惟一值,反應數(shù)據(jù)庫中數(shù)據(jù)修改的相對順序,相當于一個單調上升的計數(shù)器。,反應數(shù)據(jù)庫中數(shù)據(jù)修改的相對順序,相當于一個單調上升的計數(shù)器。 當它所定義的列在更新或者插入數(shù)據(jù)行時,此列的值會被自動更新當它所定義的列在更新或者插入數(shù)據(jù)行時,此列的值會被自動更新,一個計數(shù)值將自動地添加到此,一個計數(shù)值將自動地添加到此Timestamp數(shù)據(jù)列中。數(shù)據(jù)列中。(4)Uniqueidentifier:用于存儲一個:用于存儲一個16字節(jié)長的二進制數(shù)據(jù)類型,它是字節(jié)長的二進制數(shù)據(jù)類型,它是SQL Server根據(jù)計算機網(wǎng)絡適配器地址和根據(jù)計算機網(wǎng)絡適配器

23、地址和CPU時鐘產生的全局惟一標識符時鐘產生的全局惟一標識符代碼為代碼為GUID。 此數(shù)字可以通過調用此數(shù)字可以通過調用 SQL Server 的的 newid()函數(shù)獲得,在全球各()函數(shù)獲得,在全球各地的計算機經(jīng)由此函數(shù)產生的數(shù)字不會相同。地的計算機經(jīng)由此函數(shù)產生的數(shù)字不會相同。(5)XML :可以存儲:可以存儲XML數(shù)據(jù)的數(shù)據(jù)類型。利用它可以將數(shù)據(jù)的數(shù)據(jù)類型。利用它可以將 XML 實例存實例存儲在字段中或者儲在字段中或者 XML 類型的變量中。注意存儲在類型的變量中。注意存儲在 XML 中的數(shù)據(jù)不能超中的數(shù)據(jù)不能超過過 2GB。(6)Cursor:這是變量或存儲過程:這是變量或存儲過程O

24、UTPUT 參數(shù)的一種數(shù)據(jù)類型,這些參數(shù)的一種數(shù)據(jù)類型,這些參數(shù)包含對游標的引用。使用參數(shù)包含對游標的引用。使用 Cursor 數(shù)據(jù)類型創(chuàng)建的變量可以為空。數(shù)據(jù)類型創(chuàng)建的變量可以為空。- 修改修改 course 表的定義表的定義- 在表中添加名為在表中添加名為tno的列,并定義其數(shù)據(jù)類型,指其不可空的列,并定義其數(shù)據(jù)類型,指其不可空 ALTER TABLE course ADD tno char(10) NOT NULL使用使用Transact-SQL語句創(chuàng)建、語句創(chuàng)建、修改修改和刪除表:和刪除表:舉例:舉例:- 在前面定義的在前面定義的 course 表中添加列和更改列的可空性。表中添加列和

25、更改列的可空性。使用使用Transact-SQL語句創(chuàng)建、修改和語句創(chuàng)建、修改和刪除表:刪除表:若要刪除數(shù)據(jù)庫中的表除了用若要刪除數(shù)據(jù)庫中的表除了用“SSMS”在在【對象資源管理器對象資源管理器】進行刪進行刪除外,還可以用除外,還可以用DROP TABLE 語句來實現(xiàn)。語句來實現(xiàn)。舉例:舉例:刪除刪除score表。表。 DROP TABLE score; 在這個交互式多媒體中,你可以了解在這個交互式多媒體中,你可以了解如何使用如何使用 SQL Server Management Studio 創(chuàng)建表,請注意你需要為表指定一創(chuàng)建表,請注意你需要為表指定一個自動增長的列作為個自動增長的列作為ID,同時另外一列將,同時另外一列將擁有默認值。擁有默認值。使用使用Transact-SQL語句語句插入插入、修改和刪除數(shù)據(jù)、修改和刪除數(shù)據(jù)插入數(shù)據(jù)-INSERT語句n INSERT語句的基本語法形式INSERT INTO table_or_view_name (column_list) VALUES (expression)使用使用Transact-SQL語句語句插入插入、修改和刪除數(shù)據(jù)、修改和刪除數(shù)據(jù)插入

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論