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

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、3.1 SQL Server表的概念表的概念3.2 SQL Server中的數(shù)據(jù)類型中的數(shù)據(jù)類型3.3 創(chuàng)建創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表3.4 管理數(shù)據(jù)管理數(shù)據(jù)表表 11.1.表的概念表的概念 在在SQL ServerSQL Server數(shù)據(jù)庫中,數(shù)據(jù)庫中,表定義為列的集合,與表定義為列的集合,與ExcelExcel電電子表格相似,數(shù)據(jù)在表中是按行和列的格式組織排列的。每子表格相似,數(shù)據(jù)在表中是按行和列的格式組織排列的。每行代表唯一的一條記錄,而每列代表記錄中的一個域。行代表唯一的一條記錄,而每列代表記錄中的一個域。 學號姓名性別出生日期系部入學時間000101張三男1980計算機2000000201李偉

2、男1981經(jīng) 濟 管理2000010101王麗女1982數(shù)學2001關(guān)系名(表名)屬性(列或字段)關(guān)系模式 屬性名記錄或元組主鍵(碼)22.表的設(shè)計表的設(shè)計 在在SQL Server創(chuàng)建表有如下限制:創(chuàng)建表有如下限制:每個數(shù)據(jù)庫里最多有每個數(shù)據(jù)庫里最多有20億個表億個表。每個表上最多可以創(chuàng)建每個表上最多可以創(chuàng)建一個聚集索引一個聚集索引和和249個非聚集索個非聚集索引引。每個表最多可以配置每個表最多可以配置1024個字段個字段。每條記錄最多可以占每條記錄最多可以占8060B,但不包括但不包括text字段和字段和image字段。字段。 33.1 SQL Server表的概念表的概念3.2 SQL

3、Server中的數(shù)據(jù)類型中的數(shù)據(jù)類型3.3 創(chuàng)建創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表3.4 管理數(shù)據(jù)管理數(shù)據(jù)表表 41.二進制數(shù)據(jù)二進制數(shù)據(jù) 2.字符型數(shù)據(jù)類型字符型數(shù)據(jù)類型 3.Unicode字符數(shù)據(jù)字符數(shù)據(jù) 4.日期時間型數(shù)據(jù)日期時間型數(shù)據(jù) 5.整數(shù)型數(shù)據(jù)整數(shù)型數(shù)據(jù) 6.精確數(shù)值型數(shù)據(jù)精確數(shù)值型數(shù)據(jù) 7.近似數(shù)值類型近似數(shù)值類型 8.貨幣數(shù)據(jù)貨幣數(shù)據(jù) 9.位類型數(shù)據(jù)位類型數(shù)據(jù) 51.二進制數(shù)據(jù)二進制數(shù)據(jù)功能:常用于存儲圖像等數(shù)據(jù),包括長二進制數(shù)據(jù)功能:常用于存儲圖像等數(shù)據(jù),包括長二進制數(shù)據(jù)binary、變長二進制數(shù)據(jù)、變長二進制數(shù)據(jù)varbinary和和image三種。三種。類型類型存儲空間大小存儲空間大小(

4、字節(jié)字節(jié))最大取值最大取值說明說明Binary(n)N+4存儲空間固定存儲空間固定N1,8000默認為默認為1輸入不足輸入不足n+4字節(jié)字節(jié),補足后補足后存儲存儲;超過則截斷后存儲超過則截斷后存儲.Varbinary(n)變長存儲數(shù)據(jù)變長存儲數(shù)據(jù) N1,8000默認為默認為1輸入不足輸入不足n+4字節(jié)字節(jié),按實際按實際長度存儲長度存儲;超過則截斷后超過則截斷后存儲存儲.image231-162.字符型數(shù)據(jù)類型字符型數(shù)據(jù)類型功能功能: :用于存儲漢字、英文字母、數(shù)字、標點和各種符號,用于存儲漢字、英文字母、數(shù)字、標點和各種符號,必必須由英文單引號括起來須由英文單引號括起來。類型類型存儲空間大小存

5、儲空間大小(字節(jié)字節(jié))最大取值最大取值說明說明char(n)固定長度存儲字固定長度存儲字符串符串N1,8000默認為默認為1輸入不足輸入不足n個字節(jié)個字節(jié),補足后補足后存儲存儲;超過則截斷后存儲超過則截斷后存儲.varchar(n)按變長存儲字符按變長存儲字符串串N1,8000默認為默認為1輸入不足輸入不足n字節(jié)字節(jié),按實際長按實際長度存儲度存儲;超過則截斷后存儲超過則截斷后存儲.text231-1個字節(jié)個字節(jié)73.Unicode字符數(shù)據(jù)字符數(shù)據(jù) 功能:存放功能:存放Unicode字符數(shù)據(jù)字符數(shù)據(jù). .支持的字符范圍更大,存儲所需支持的字符范圍更大,存儲所需 要的空間也更大。要的空間也更大。類

6、型類型存儲空間大小存儲空間大小(字節(jié)字節(jié))最大取值最大取值說明說明nchar(n)固定長度存儲固定長度存儲字符串字符串N1,4000默認為默認為1輸入不足輸入不足n個字節(jié)個字節(jié),補足后補足后存儲存儲;超過則截斷后存儲超過則截斷后存儲.nvarchar(n)按變長存儲字按變長存儲字符串符串N1,4000默認為默認為1輸入不足輸入不足n字節(jié)字節(jié),按實際長按實際長度存儲度存儲;超過則截斷后存儲超過則截斷后存儲.ntext230-1個字節(jié)個字節(jié)84.日期時間型數(shù)據(jù)日期時間型數(shù)據(jù)功能:用于存儲日期和時間數(shù)據(jù)。功能:用于存儲日期和時間數(shù)據(jù)。類型類型存儲范圍存儲范圍datetime存儲從存儲從1753年年1

7、月月1日到日到9999年年12月月31日的日期和時間日的日期和時間數(shù)據(jù),精確度為數(shù)據(jù),精確度為3%秒。秒。smalldatetime存儲從存儲從1900年年1月月1日到日到2079年年6月月6日的日期和時間數(shù)日的日期和時間數(shù)據(jù),精確度為分據(jù),精確度為分.95. .整數(shù)型數(shù)據(jù)整數(shù)型數(shù)據(jù)功能:用于存儲整型數(shù)據(jù)。功能:用于存儲整型數(shù)據(jù)。類型類型存儲大?。ㄗ止?jié))存儲大小(字節(jié))數(shù)據(jù)范圍數(shù)據(jù)范圍bigint8-263 263-1int4-231 231-1smallint2-215 215-1tinyint10255106.精確數(shù)值型數(shù)據(jù)精確數(shù)值型數(shù)據(jù) 功能:用于存儲帶有小數(shù)點且小數(shù)點后位數(shù)確定的實數(shù)。

8、功能:用于存儲帶有小數(shù)點且小數(shù)點后位數(shù)確定的實數(shù)。類型類型說明說明數(shù)據(jù)范圍數(shù)據(jù)范圍decimal(p,s)p指定存儲數(shù)據(jù)的最大位指定存儲數(shù)據(jù)的最大位數(shù),不含小數(shù)點數(shù),不含小數(shù)點,p1,38;s指定存儲的小數(shù)的指定存儲的小數(shù)的最大位數(shù)最大位數(shù), s0,p.默認小數(shù)位是默認小數(shù)位是0。-1038+1 1038-1numeric(p,s)117.近似數(shù)值類型近似數(shù)值類型功能:用于存儲浮點數(shù)。功能:用于存儲浮點數(shù)。 類型類型說明說明數(shù)據(jù)范圍數(shù)據(jù)范圍float(n)n為精度,為精度,n1,53存放存放-1.79E+3081.79E+308數(shù)值數(shù)值范圍內(nèi)的浮點數(shù)范圍內(nèi)的浮點數(shù)real存儲大小為存儲大小為4

9、個字個字節(jié)節(jié)從從 -3.40E + 38 到到 3.40E + 38 之之間的浮點數(shù)字數(shù)據(jù)間的浮點數(shù)字數(shù)據(jù)128.貨幣數(shù)據(jù)貨幣數(shù)據(jù)類型類型存儲大小存儲大小數(shù)據(jù)范圍數(shù)據(jù)范圍money8 個字節(jié)個字節(jié)貨幣數(shù)據(jù)值介于貨幣數(shù)據(jù)值介于 -263與與 263 - 1之之間,精確到貨幣單位的千分之間,精確到貨幣單位的千分之十十smallmoney4個字節(jié)個字節(jié)貨幣數(shù)值介于貨幣數(shù)值介于-214,748.3648 +214.748,3647 之間,精確到貨之間,精確到貨幣單位的千分之十幣單位的千分之十139.位類型數(shù)據(jù)位類型數(shù)據(jù)功能:位類型數(shù)據(jù)用于存儲整數(shù),只能取功能:位類型數(shù)據(jù)用于存儲整數(shù),只能取 1、0 或

10、或NULL, 常用于邏輯數(shù)據(jù)的存取。常用于邏輯數(shù)據(jù)的存取。說明:說明: 在位類型的字段中輸入在位類型的字段中輸入0 0和和1 1之外的任何值,系統(tǒng)都會之外的任何值,系統(tǒng)都會 作為作為1 1來處理。來處理。 如果一個表中有如果一個表中有8 8個以下的位類型數(shù)據(jù)字段,則系統(tǒng)會用一個以下的位類型數(shù)據(jù)字段,則系統(tǒng)會用一 個字節(jié)存儲這些字段;如果表中有個字節(jié)存儲這些字段;如果表中有9 9個以上個以上1616個以下位類型數(shù)據(jù)個以下位類型數(shù)據(jù) 字段,則系統(tǒng)會用兩個字節(jié)來存儲這些字段。字段,則系統(tǒng)會用兩個字節(jié)來存儲這些字段。 143.1 SQL Server表的概念表的概念3.2 SQL Server中的數(shù)據(jù)

11、類型中的數(shù)據(jù)類型3.3 創(chuàng)建創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表3.4 管理數(shù)據(jù)管理數(shù)據(jù)表表 151.使用使用SSMS創(chuàng)建表創(chuàng)建表 創(chuàng)建表的步驟創(chuàng)建表的步驟: 1)定義表結(jié)構(gòu)定義表結(jié)構(gòu):給表的每一列取字段名,并確定每一列的數(shù):給表的每一列取字段名,并確定每一列的數(shù)據(jù)類型、數(shù)據(jù)長度、列數(shù)據(jù)是否可以為空等。據(jù)類型、數(shù)據(jù)長度、列數(shù)據(jù)是否可以為空等。 2)設(shè)置約束設(shè)置約束:設(shè)置約束是為了限制該列輸入值的取值范圍,:設(shè)置約束是為了限制該列輸入值的取值范圍,以保證輸入數(shù)據(jù)的正確性和一致性。以保證輸入數(shù)據(jù)的正確性和一致性。 3)添加數(shù)據(jù)添加數(shù)據(jù):表結(jié)構(gòu)建立完成之后,就可以向表中輸入數(shù)據(jù)。:表結(jié)構(gòu)建立完成之后,就可以向表中輸入數(shù)

12、據(jù)。 161.使用使用SSMS創(chuàng)建表創(chuàng)建表 例例1:請在請在student數(shù)據(jù)庫中建立數(shù)據(jù)庫中建立“學生基本信息學生基本信息”表的結(jié)構(gòu)。表的結(jié)構(gòu)。注注: : 主鍵的字段值不能為空主鍵的字段值不能為空, ,且字段值在表中必須唯一且字段值在表中必須唯一字段名字段名字段數(shù)據(jù)類型字段數(shù)據(jù)類型長度長度是否為空是否為空約束約束學號學號char8否否主鍵主鍵姓名姓名char10否否 性別性別char2是是 默 認 值默 認 值 男男出生年月出生年月datetime8是是 籍貫籍貫varchar20是是 家庭住址家庭住址varchar60是是電話電話char15是是 所屬班級所屬班級char8是是 172.使

13、用使用T-SQL語句創(chuàng)建表語句創(chuàng)建表 1)語法:語法:CREATE TABLE database_name.owner.|owner.table_name ( column_definition | PRIMARY KEY | UNIQUE ,N ) := column_name data_type DEFAULT constraint_expression | IDENTITY (seed,increment) ,n18語法注釋:語法注釋:database_name:指定創(chuàng)建的表所在的數(shù)據(jù)庫,在:指定創(chuàng)建的表所在的數(shù)據(jù)庫,在當前數(shù)據(jù)庫創(chuàng)建表時該項可以省略。當前數(shù)據(jù)庫創(chuàng)建表時該項可以省略。 o

14、wner:指定表的擁有者,如果表的擁有者為當前:指定表的擁有者,如果表的擁有者為當前用戶,該項可以省略。用戶,該項可以省略。 table_name:指定新建表的名稱。:指定新建表的名稱。 column_definttion:為表中字段的定義表達式。:為表中字段的定義表達式。 column_name:為表中的字段名。:為表中的字段名。 data_type:為字段的數(shù)據(jù)類型。:為字段的數(shù)據(jù)類型。 PRIMARY KEY:為主鍵約束關(guān)鍵字。:為主鍵約束關(guān)鍵字。 UNIQUE:為唯一約束關(guān)鍵字。:為唯一約束關(guān)鍵字。 DEFAULT:為默認約束關(guān)鍵字。:為默認約束關(guān)鍵字。 IDENTITY:為自動編號標

15、識。:為自動編號標識。 Seed:為自動標識的開始值,默認為:為自動標識的開始值,默認為1。 Increment:為自動編號的步長或增量,默認為:為自動編號的步長或增量,默認為1。19 例例2:創(chuàng)建帶有參照約束的學生表創(chuàng)建帶有參照約束的學生表stud_info,學生表的表結(jié)構(gòu)定義如,學生表的表結(jié)構(gòu)定義如 下表所示。下表所示?!皩W號學號”字段為學生表的主鍵。字段為學生表的主鍵。字段名字段名字段數(shù)據(jù)類型字段數(shù)據(jù)類型長度長度是否為空是否為空約束約束學號學號char8否否主鍵主鍵姓名姓名char10否否 性別性別char2是是 默 認 值默 認 值 男男出生年月出生年月datetime8是是 籍貫籍貫

16、varchar20是是 家庭住址家庭住址varchar60是是電話電話char15是是 所屬班級所屬班級char8是是 20創(chuàng)建創(chuàng)建“學生學生”表的代碼如下:表的代碼如下:USE StudentGO CREATE TABLE stud_info(學號學號 char(8) PRIMARY KEY,姓名姓名 char(10) NOT NULL,性別性別 char(2) DEFAULT 男男,出生年月出生年月 datetime,籍貫籍貫 varchar(20),家庭住址家庭住址 varchar(60),電話電話 char(15),所屬班級所屬班級 char(8))GO21例例3:在學生管理數(shù)據(jù)庫中用

17、:在學生管理數(shù)據(jù)庫中用T-SQL語句創(chuàng)建一個學生成績表語句創(chuàng)建一個學生成績表 stud_score ,表結(jié)構(gòu)如下,其中包含標識列和計算列。,表結(jié)構(gòu)如下,其中包含標識列和計算列。22實現(xiàn)的實現(xiàn)的T-SQL語句語句:CREATE TABLE CREATE TABLE stud_scorestud_score( ( ScoreidScoreid intint IDENTITY(1,1) PRIMARY KEY, IDENTITY(1,1) PRIMARY KEY, Stud_noStud_no char(8) NOT NULL, char(8) NOT NULL, Math Math intint

18、DEFAULT 0, DEFAULT 0, Chinese Chinese intint DEFAULT 0, DEFAULT 0, Computer Computer intint DEFAULT 0, DEFAULT 0, total_scoretotal_score AS Math+ Chinese+ computer AS Math+ Chinese+ computer) )GOGO23設(shè)置列的標識屬性時,應(yīng)注意設(shè)置列的標識屬性時,應(yīng)注意: 該列的數(shù)據(jù)類型必須是該列的數(shù)據(jù)類型必須是decimal, int, numeric, smallint, bigint, tinyint中的一種,

19、才可以設(shè)置標識屬性。中的一種,才可以設(shè)置標識屬性。 標識列不允許為空值,也不能包含默認屬性。標識列不允許為空值,也不能包含默認屬性。 每個表中只允許有一個標識列,并且不可以修改。每個表中只允許有一個標識列,并且不可以修改。設(shè)置計算列時,應(yīng)注意設(shè)置計算列時,應(yīng)注意: 在計算列中不能添加如在計算列中不能添加如primary key、 unique、 foreign key、 default等約束條件。等約束條件。 不能對計算列進行賦值。不能對計算列進行賦值。243.1 SQL Server表的概念表的概念3.2 SQL Server中的數(shù)據(jù)類型中的數(shù)據(jù)類型3.3 創(chuàng)建創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表3.4 管理數(shù)

20、據(jù)管理數(shù)據(jù)表表 253.4.1 修改表結(jié)構(gòu)修改表結(jié)構(gòu) 3.4.2 刪除數(shù)據(jù)表刪除數(shù)據(jù)表 3.4.3 查看數(shù)據(jù)表查看數(shù)據(jù)表261 使用使用SSMS修改表結(jié)構(gòu)修改表結(jié)構(gòu)例例4:修改:修改“student” 庫中庫中“學生基本信息表學生基本信息表”表結(jié)構(gòu)。表結(jié)構(gòu)。272 使用使用T-SQL語言修改表語言修改表 1)語法:語法:ALTER TABLE table_name ALTER COLUMN column_name new_data_type ( precision , scale ) NULL | NOT NULL | ADD ,.n | DROP CONSTRAINT constraint_

21、name | COLUMN column ,.n DEFAULT constant_expression WITH VALUES | IDENTITY ( seed , increment ) 28 2)語法注釋:語法注釋: ALTER COLUMN:修改表列屬性的子句修改表列屬性的子句 ADD:增加列或約束的子句增加列或約束的子句 DROP COLUMN:刪除表列的子句刪除表列的子句 table_name:需要修改表的表格名稱需要修改表的表格名稱 column_name:希望增加的字段名希望增加的字段名 data_type:需要增加的字段的數(shù)據(jù)類型名需要增加的字段的數(shù)據(jù)類型名 collati

22、on_name:排序規(guī)則名排序規(guī)則名 29例例5:使用:使用T-SQL代碼修改學生基本信息表代碼修改學生基本信息表stud_info結(jié)構(gòu)結(jié)構(gòu),增加字增加字段段“QQ號碼號碼”,數(shù)據(jù)類型為,數(shù)據(jù)類型為varchar,長度為,長度為15,可為空;增加入,可為空;增加入學時間字段,時間學時間字段,時間/日期類型,默認時間為日期類型,默認時間為2006-9-1。USE studentGOALTER TABLE stud_infoADD QQ號碼號碼 varchar(15) GOALTER TABLE stud_infoADD 入學時間入學時間 datetime DEFAULT 2006-9-1GO30例例6:使用:使用T-SQL代碼修改學生基本信息表代碼修改學生基本信息表stud_info結(jié)結(jié)構(gòu),修改字段構(gòu),修改字段“家庭住址家庭住址”的長度為的長度為100。實現(xiàn)的實現(xiàn)的T-SQL語句語句USE studentGOALTER TABLE stud_infoALTER COLUMN 家庭住址家庭住址 varchar(100)GO31例例7:使用:使用T-SQL語句刪除學生基本信息表語句刪除學生基本信息表stud_info的的QQ

溫馨提示

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

評論

0/150

提交評論