




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第二章SQLServer數據庫表管理1第二章SQLServer數據庫表管理1回顧數據庫的作用數據庫的發展過程以及當前流行的數據庫數據庫基本概念:數據存儲方式、實體和記錄、數據庫和數據庫表、數據冗余和數據完整性使用企業管理器創建組、注冊、用戶在企業管理器中創建數據庫收縮、移動和配置數據庫的選項2回顧數據庫的作用2本章目標使用企業管理器創建數據庫表設置表的主鍵、外鍵和建立表之間的關系為表增加約束3本章目標使用企業管理器創建數據庫表3再論數據完整性2-1數據完整性+=可靠性準確性4再論數據完整性2-1數據完整性+=可靠性準確性4再論數據完整性2-2數據存放在表中“數據完整性的問題大多是由于設計引起的”創建表的時候,就應當保證以后數據輸入是正確的 ——錯誤的數據、不符合要求的數據不允許輸入創建表:保證數據的完整性=實施完整性約束5再論數據完整性2-2數據存放在表中創建表:保證數據的完整性完整性包括…2-1輸入的類型是否正確?——年齡必須是數字輸入的格式是否正確?——身份證號碼必須是18位是否在允許的范圍內?——性別只能是”男”或者”女”是否存在重復輸入?——學員信息輸入了兩次是否符合其他特定要求?——信譽值大于5的用戶才能夠加入會員列表……列值要求(約束)整行要求(約束)6完整性包括…2-1輸入的類型是否正確?列值要求(約束)整行要完整性包括…2-2域完整性實體完整性參照完整性自定義完整性7完整性包括…2-2域完整性實體完整性參照完整性自定義完整性7實體完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012….地址姓名學號江西南昌雷銅0010014×約束方法:唯一約束、主鍵約束、標識列8實體完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010域完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012….地址姓名學號湖北江門李亮8700000000×約束方法:限制數據類型、檢查約束、外鍵約束、默認值、非空約束9域完整性河南新鄉趙可以0010016河南新鄉張麗鵑00100參照完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012…地址姓名學號980010021數學×約束方法:外鍵約束10參照完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010自定義完整性AV121322喬峰CV0016AV372133玄痛CV0015AV378291沙悟凈AV0014AV378290豬悟能AV0013AV378289孫悟空AV0012….會員證用戶姓名用戶編號約束方法:規則、存儲過程、觸發器×觸發器:檢查信用值11自定義完整性AV121322喬峰CV0016AV372133表操作在企業管理器中演示打開表、數據輸入等操作…12表操作在企業管理器中演示打開表、數據輸入等操作…12創建數據庫表-113創建數據庫表-113SQLServer的數據類型14SQLServer的數據類型14二種:datetime,smalldatetime。說明方法:
datetime用8個字節存儲日期時間。日期范圍1753/1/1~9999/12/31。精度到3/100秒。
smalldatetime用4個字節存儲。范圍1900/1/1~2079/6/6。精度到分。常量用單引號引起,有多種格式。時間日期數據類型:08/10/2004或08-10-2004--分隔符數字方式08102004--數字方式A10,2004--英文數字例:常量2004年8月10日下午5點30分:’2004-8-1017:30:00’或者’8/10/20045:30:00PM’15二種:datetime,smalldatetime。時間日期bigint(大整數):8個字節。Int或integer(整數):4個字節(-231_231-1)。smallint(短整數):2個字節(-32768-32767)。tinyint(微短整數):1個字節(0-255)。Bit:只能取0、1或NULL。bit類型的字段或變量輸入0和NULL以外的數值都作為1處理。整數數據類型:16bigint(大整數):8個字節。整數數據類型:16二種:decimal,numeric,等價。存儲實數值。由數字0~9、正負號、小數點組成。最多38位。由整數部分和小數部分構成。說明方法:decimal(p,s)或numeric(p,s)。P為精度,S為小數位數;默認精度18位,默認小數位0位。精確數據類型:例:decimal(12,4)表示數值中共有12位,4位小數,8位整數。字段的精度為12位。17二種:decimal,numeric,等價。精確數據類型:例二種:money,smallmoney。說明方法:
money兩個4個字節整數存儲。前面表示貨幣的整數部分,后面的4個字節表示小數部分。小數點后保留4位數。Smallmoney分別用兩個字節表示貨幣的整數部分和小數部分,小數點后保留4位數。貨幣常量前加幣值符號。例:$-120.35貨幣數據類型:18二種:money,smallmoney。貨幣數據類型:18思考電話號碼一般使用什么數據類型存儲?性別一般使用什么數據類型存儲?年齡信息一般使用什么數據類型存儲?照片信息一般使用什么數據類型存儲?薪水一般使用什么數據類型存儲?19思考電話號碼一般使用什么數據類型存儲?19創建數據庫表-220創建數據庫表-220思考學員姓名允許為空嗎?家庭地址允許為空嗎?電子郵件信息允許為空嗎?考試成績允許為空嗎?21思考學員姓名允許為空嗎?21自定義數據類型通過存儲過程sp_addtype創建新的類型;用sp_droptype刪除不再使用的自定義類型。sp_addtypetype_namesystem_type;{“NULL”︱”NOTNULL”︱”NONULL”}自定義數據類型:22自定義數據類型通過存儲過程sp_addtype創建新的類型;自定義數據類型例在BOOKS數據庫中定義一個新的數據類型,類型名稱為“圖書編碼類型”,字符型,長度為12位,不允許為空。sp_addtype圖書編碼類型,'char(12)','notnull'創建用戶自定義數據類型:23自定義數據類型例在BOOKS數據庫中定義一個新的數據類型練習:使用系統存儲過程定義一個新的數據類型,類型名稱為“價格類型”,貨幣型,允許為空。USEBOOKSGOEXECsp_addtype價格類型,'money','null'24練習:使用系統存儲過程定義一個新的數據類型,類型名稱為“價格自定義數據類型例刪除用戶自定義數據類型“圖書編碼類型”。USEBOOKSGOEXECUTEsp_droptype圖書編碼類型刪除用戶自定義數據類型:25自定義數據類型例刪除用戶自定義數據類型“圖書編碼類型”。創建數據庫表-326創建數據庫表-326思考在主鍵列輸入的數值,允許為空嗎?一個表可以有多個主鍵嗎?在一個學校數據庫中,如果一個學校內允許重名的學員,但是一個班級內不允許學員重名,可以組合班級和姓名兩個字段一起來作為主鍵嗎?27思考在主鍵列輸入的數值,允許為空嗎?27選擇主鍵的原則最少性盡量選擇單個鍵作為主鍵穩定性盡量選擇數值更新少的列作為主鍵28選擇主鍵的原則最少性28創建數據庫表-4表中沒有合適的列作為主鍵怎么辦?29創建數據庫表-4表中沒有合適的列作為主鍵怎么辦?29思考標識列允許為字符數據類型嗎?如果標識列A的初始值為1,增長量為2,則輸入三行數據以后,再刪除兩行,下次再輸入數據行的時候,標識值從多少開始?30思考標識列允許為字符數據類型嗎?30創建數據庫表-531創建數據庫表-531創建數據庫表-6演示建立主-外鍵關系……32創建數據庫表-6演示建立主-外鍵關系……32關系圖演示關系圖……33關系圖演示關系圖……33主表和從表1、當主表中沒有對應的記錄時,不能將記錄添加到子表 ——成績表中不能出現在學員信息表中不存在的學號;2、不能更改主表中的值而導致子表中的記錄孤立 ——把學員信息表中的學號改變了,學員成績表中的學號也應當隨之改變;3、子表存在與主表對應的記錄,不能從主表中刪除該行 ——不能把有成績的學員刪除了4、刪除主表前,先刪子表 ——先刪學員成績表、后刪除學員信息表34主表和從表1、當主表中沒有對應的記錄時,不能將記錄添加到子表創建數據庫表-7演示建立檢查約束……35創建數據庫表-7演示建立檢查約束……35創建數據庫表完畢!輸入數據項,驗證主鍵、主外鍵關系、檢查約束……36創建數據庫表完畢!輸入數據項,驗證主鍵、主外鍵關系、檢查約束導入-導出數據演示導出數據為EXCEL文件……37導入-導出數據演示導出數據為EXCEL文件……37回顧表的基礎知識建表的基本步驟:確定表中有哪些列確定每列的數據類型給表添加各種約束創建各表之間的關系SQLServer中的數據類型整型數據:intsmallint浮點數據:floatnumeric……字符數據固定長度:char(6)可變長度:varchar(10)unicode編碼:nchar(10)……布爾數據(真/假)bit:1/0貨幣數據money日期數據datetime38回顧表的基礎知識建表的基本步驟:整型數據:intsmal創建表建表的語法CREATETABLE表名(字段1數據類型列的特征,字段2數據類型列的特征,...)列的特征:包括該列是是否為空(NULL)、是否是標識列(自動編號)、是否有默認值、是否為主鍵等。39創建表建表的語法CREATETABLE表名列的特征:3創建數據表T-SQL創建數據表的語法:CREATETABLE表名(字段1數據類型列的特征,字段2數據類型列的特征,... )數據類型[(長度,[小數])]40創建數據表T-SQL創建數據表的語法:CREATETABL創建數據表[NOT]NULL取空值約束DEFAULT<表達式>缺省值IDENTITY(種子值,增量)自動增量標識CHECK<表達式>檢驗表達式UNIQUE唯一值約束PRIMARYKEY主鍵FOREIGNKEY外鍵字段名41創建數據表[NOT]NULL建表示例1USEstuDB--將當前數據庫設置為stuDBGOCREATETABLEstuInfo/*-創建學員信息表-*/(stuNameVARCHAR(20)NOTNULL,--姓名,非空(必填)stuNoCHAR(6)NOTNULL,--學號,非空(必填)stuAgeINTNOTNULL,--年齡,INT類型默認為4個字節stuIDNUMERIC(18,0),--身份證號stuSeatSMALLINTIDENTITY(1,1),--座位號,自動編號stuAddressTEXT--住址,允許為空,即可選輸入)GONUMERIC(18,0)代表18位數字,小數位數為0演示:創建學員信息表stuInfoIDENTITY(起始值,遞增量)42建表示例1USEstuDB--將當前數據庫設置為s建表示例2CREATETABLEstuMarks(ExamNoCHAR(7)NOTNULL,--考號stuNoCHAR(6)NOTNULL,--學號writtenExamINTNOTNULL,--筆試成績LabExamINTNOTNULL--上機成績)GO演示:創建學員成績表stuMarks43建表示例2CREATETABLEstuMarks演示:刪除表如果當前數據庫中已存在stuInfo表,再次創建時系統將提示出錯。如何解決呢?44刪除表如果當前數據庫中已存在stuInfo表,再次創建時系統刪除表刪除表的語法:DROPTABLE
表名USEstuDB--將當前數據庫設置為stuDB,以便在stuDB數據庫中建表GOIFEXISTS(SELECT*FROMsysobjectsWHEREname=’stuInfo’)
DROPTABLEstuInfoCREATETABLEstuInfo/*-創建學員信息表-*/(…..)GO45刪除表刪除表的語法:DROPTABLE表名USEstu回顧SQLServer的約束約束的目的:確保表中數據的完整型常用的約束類型:主鍵約束(PrimaryKeyConstraint):要求主鍵列數據唯一,并且不允許為空唯一約束(UniqueConstraint):要求該列唯一,允許為空,但只能出現一個空值。檢查約束(CheckConstraint):某列取值范圍限制、格式限制等,如有關年齡的約束默認約束(DefaultConstraint):某列的默認值,如我們的男性學員較多,性別默認為“男”外鍵約束(ForeignKeyConstraint):用于兩表間建立關系,需要指定引用主表的那列46回顧SQLServer的約束約束的目的:確保表中數據的完整添加約束添加約束的語法:ALTERTABLE表名
ADDCONSTRAINT約束名約束類型具體的約束說明約束名的取名規則推薦采用:約束類型_約束字段主鍵(PrimaryKey)約束:如PK_stuNo唯一(UniqueKey)約束:如UQ_stuID默認(DefaultKey)約束:如DF_stuAddress檢查(CheckKey)約束:如CK_stuAge外鍵(ForeignKey)約束:如FK_stuNo47添加約束添加約束的語法:ALTERTABLE表名約添加約束示例ALTERTABLEstuInfo
ADDCONSTRAINTPK_stuNoPRIMARYKEY(stuNo)ALTERTABLEstuInfo
ADDCONSTRAINTUQ_stuIDUNIQUE(stuID)ALTERTABLEstuInfo
ADDCONSTRAINTDF_stuAddress
DEFAULT('地址不詳')FORstuAddressALTERTABLEstuInfo
ADDCONSTRAINTCK_stuAge
CHECK(stuAgeBETWEEN15AND40)ALTERTABLEstuMarks
ADDCONSTRAINTFK_stuNo
FOREIGNKEY(stuNo)REFERENCESstuInfo(stuNo)GO演示:給學員信息表stuInfo添加約束添加主鍵約束(stuNo作為主鍵)添加唯一約束(因為每人的身份證號全國唯一)添加默認約束(如果地址不填,默認為“地址不詳”)添加檢查check約束,要求年齡只能在15-40歲之間添加外鍵約束(主表stuInfo和從表stuMarks建立關系,關聯字段為stuNo)48添加約束示例ALTERTABLEstuInfo演示:給添加約束示例演示:查看約束結果49添加約束示例演示:查看約束結果49刪除約束如果錯誤地添加了約束,我們還可以刪除約束刪除約束的語法ALTERTABLE表名
DROPCONSTRAINT約束名例如:刪除stuInfo表中地址默認約束ALTERTABLEstuInfo
DROPCONSTRAINTDF_stuAddress50刪除約束如果錯誤地添加了約束,我們還可以刪除約束ALTER總結SQLServer創建表的過程是規定數據列的屬性的過程,同時也是實施數據完整性(包括實體完整性、引用完整性和域完整性等)保證的過程實體完整性數據行不能存在重復,引用完整性要求子表中的相關項必須在主表中存在域完整性實現了對輸入到特定列的數值的限制SQLServer中存在五種約束,分別是:主鍵約束、外鍵約束、檢查約束、默認約束和唯一性約束(唯一性約束將在后續課程中使用SQL語句實現)51總結SQLServer創建表的過程是規定數據列的屬性的過程總結創建數據庫表需要:確定表的列名、數據類型、是否允許為空,還需要確定主鍵、必要的默認值、標識列和檢查約束如果建立了主表和子表的關系,則:——子表中的相關項目的數據,在主表中必須存在;——主表中相關項的數據更改了,則子表對應的數據項也應當隨之更改;——在刪除子表之前,不能夠刪除主表;52總結創建數據庫表需要:確定表的列名、數據類型、是否允許為空,上機實驗1.在BOOKS數據庫中,創建一個新的數據表,名稱為“圖書借閱信息表”。2.使用企業管理器向“讀者基本信息表”中錄入6條新記錄.。3.使用SQL語言中的INSERT語句向“圖書借閱信息表”中加入5條新記錄。53上機實驗1.在BOOKS數據庫中,創建一個新的數據表,名上機實驗4.上機練習修改數據表中的記錄信息。5.上機練習修改數據表的名稱。6.上機練習使用兩種方法刪除數據庫中的數據表。54上機實驗4.上機練習修改數據表中的記錄信息。54作業1、兩種方法創建數據庫Test,在此數據庫中建立一個表student,包含四個字段Student_ID(整型),Student_Name(字符型),Sex(字符型,要求默認值為“男”),年齡(整型,要求設定年齡范圍在13-25范圍內),設置Studetn_ID為主鍵,完成之后保存。2、練習使用導入/導出數據,把示范數據庫NorthWind的表Publishers導出到Excel文件。下課之前交到156885931@163.com55作業1、兩種方法創建數據庫Test,在此數據庫中建立一個表s第二章SQLServer數據庫表管理56第二章SQLServer數據庫表管理1回顧數據庫的作用數據庫的發展過程以及當前流行的數據庫數據庫基本概念:數據存儲方式、實體和記錄、數據庫和數據庫表、數據冗余和數據完整性使用企業管理器創建組、注冊、用戶在企業管理器中創建數據庫收縮、移動和配置數據庫的選項57回顧數據庫的作用2本章目標使用企業管理器創建數據庫表設置表的主鍵、外鍵和建立表之間的關系為表增加約束58本章目標使用企業管理器創建數據庫表3再論數據完整性2-1數據完整性+=可靠性準確性59再論數據完整性2-1數據完整性+=可靠性準確性4再論數據完整性2-2數據存放在表中“數據完整性的問題大多是由于設計引起的”創建表的時候,就應當保證以后數據輸入是正確的 ——錯誤的數據、不符合要求的數據不允許輸入創建表:保證數據的完整性=實施完整性約束60再論數據完整性2-2數據存放在表中創建表:保證數據的完整性完整性包括…2-1輸入的類型是否正確?——年齡必須是數字輸入的格式是否正確?——身份證號碼必須是18位是否在允許的范圍內?——性別只能是”男”或者”女”是否存在重復輸入?——學員信息輸入了兩次是否符合其他特定要求?——信譽值大于5的用戶才能夠加入會員列表……列值要求(約束)整行要求(約束)61完整性包括…2-1輸入的類型是否正確?列值要求(約束)整行要完整性包括…2-2域完整性實體完整性參照完整性自定義完整性62完整性包括…2-2域完整性實體完整性參照完整性自定義完整性7實體完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012….地址姓名學號江西南昌雷銅0010014×約束方法:唯一約束、主鍵約束、標識列63實體完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010域完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012….地址姓名學號湖北江門李亮8700000000×約束方法:限制數據類型、檢查約束、外鍵約束、默認值、非空約束64域完整性河南新鄉趙可以0010016河南新鄉張麗鵑00100參照完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012…地址姓名學號980010021數學×約束方法:外鍵約束65參照完整性河南新鄉趙可以0010016河南新鄉張麗鵑0010自定義完整性AV121322喬峰CV0016AV372133玄痛CV0015AV378291沙悟凈AV0014AV378290豬悟能AV0013AV378289孫悟空AV0012….會員證用戶姓名用戶編號約束方法:規則、存儲過程、觸發器×觸發器:檢查信用值66自定義完整性AV121322喬峰CV0016AV372133表操作在企業管理器中演示打開表、數據輸入等操作…67表操作在企業管理器中演示打開表、數據輸入等操作…12創建數據庫表-168創建數據庫表-113SQLServer的數據類型69SQLServer的數據類型14二種:datetime,smalldatetime。說明方法:
datetime用8個字節存儲日期時間。日期范圍1753/1/1~9999/12/31。精度到3/100秒。
smalldatetime用4個字節存儲。范圍1900/1/1~2079/6/6。精度到分。常量用單引號引起,有多種格式。時間日期數據類型:08/10/2004或08-10-2004--分隔符數字方式08102004--數字方式A10,2004--英文數字例:常量2004年8月10日下午5點30分:’2004-8-1017:30:00’或者’8/10/20045:30:00PM’70二種:datetime,smalldatetime。時間日期bigint(大整數):8個字節。Int或integer(整數):4個字節(-231_231-1)。smallint(短整數):2個字節(-32768-32767)。tinyint(微短整數):1個字節(0-255)。Bit:只能取0、1或NULL。bit類型的字段或變量輸入0和NULL以外的數值都作為1處理。整數數據類型:71bigint(大整數):8個字節。整數數據類型:16二種:decimal,numeric,等價。存儲實數值。由數字0~9、正負號、小數點組成。最多38位。由整數部分和小數部分構成。說明方法:decimal(p,s)或numeric(p,s)。P為精度,S為小數位數;默認精度18位,默認小數位0位。精確數據類型:例:decimal(12,4)表示數值中共有12位,4位小數,8位整數。字段的精度為12位。72二種:decimal,numeric,等價。精確數據類型:例二種:money,smallmoney。說明方法:
money兩個4個字節整數存儲。前面表示貨幣的整數部分,后面的4個字節表示小數部分。小數點后保留4位數。Smallmoney分別用兩個字節表示貨幣的整數部分和小數部分,小數點后保留4位數。貨幣常量前加幣值符號。例:$-120.35貨幣數據類型:73二種:money,smallmoney。貨幣數據類型:18思考電話號碼一般使用什么數據類型存儲?性別一般使用什么數據類型存儲?年齡信息一般使用什么數據類型存儲?照片信息一般使用什么數據類型存儲?薪水一般使用什么數據類型存儲?74思考電話號碼一般使用什么數據類型存儲?19創建數據庫表-275創建數據庫表-220思考學員姓名允許為空嗎?家庭地址允許為空嗎?電子郵件信息允許為空嗎?考試成績允許為空嗎?76思考學員姓名允許為空嗎?21自定義數據類型通過存儲過程sp_addtype創建新的類型;用sp_droptype刪除不再使用的自定義類型。sp_addtypetype_namesystem_type;{“NULL”︱”NOTNULL”︱”NONULL”}自定義數據類型:77自定義數據類型通過存儲過程sp_addtype創建新的類型;自定義數據類型例在BOOKS數據庫中定義一個新的數據類型,類型名稱為“圖書編碼類型”,字符型,長度為12位,不允許為空。sp_addtype圖書編碼類型,'char(12)','notnull'創建用戶自定義數據類型:78自定義數據類型例在BOOKS數據庫中定義一個新的數據類型練習:使用系統存儲過程定義一個新的數據類型,類型名稱為“價格類型”,貨幣型,允許為空。USEBOOKSGOEXECsp_addtype價格類型,'money','null'79練習:使用系統存儲過程定義一個新的數據類型,類型名稱為“價格自定義數據類型例刪除用戶自定義數據類型“圖書編碼類型”。USEBOOKSGOEXECUTEsp_droptype圖書編碼類型刪除用戶自定義數據類型:80自定義數據類型例刪除用戶自定義數據類型“圖書編碼類型”。創建數據庫表-381創建數據庫表-326思考在主鍵列輸入的數值,允許為空嗎?一個表可以有多個主鍵嗎?在一個學校數據庫中,如果一個學校內允許重名的學員,但是一個班級內不允許學員重名,可以組合班級和姓名兩個字段一起來作為主鍵嗎?82思考在主鍵列輸入的數值,允許為空嗎?27選擇主鍵的原則最少性盡量選擇單個鍵作為主鍵穩定性盡量選擇數值更新少的列作為主鍵83選擇主鍵的原則最少性28創建數據庫表-4表中沒有合適的列作為主鍵怎么辦?84創建數據庫表-4表中沒有合適的列作為主鍵怎么辦?29思考標識列允許為字符數據類型嗎?如果標識列A的初始值為1,增長量為2,則輸入三行數據以后,再刪除兩行,下次再輸入數據行的時候,標識值從多少開始?85思考標識列允許為字符數據類型嗎?30創建數據庫表-586創建數據庫表-531創建數據庫表-6演示建立主-外鍵關系……87創建數據庫表-6演示建立主-外鍵關系……32關系圖演示關系圖……88關系圖演示關系圖……33主表和從表1、當主表中沒有對應的記錄時,不能將記錄添加到子表 ——成績表中不能出現在學員信息表中不存在的學號;2、不能更改主表中的值而導致子表中的記錄孤立 ——把學員信息表中的學號改變了,學員成績表中的學號也應當隨之改變;3、子表存在與主表對應的記錄,不能從主表中刪除該行 ——不能把有成績的學員刪除了4、刪除主表前,先刪子表 ——先刪學員成績表、后刪除學員信息表89主表和從表1、當主表中沒有對應的記錄時,不能將記錄添加到子表創建數據庫表-7演示建立檢查約束……90創建數據庫表-7演示建立檢查約束……35創建數據庫表完畢!輸入數據項,驗證主鍵、主外鍵關系、檢查約束……91創建數據庫表完畢!輸入數據項,驗證主鍵、主外鍵關系、檢查約束導入-導出數據演示導出數據為EXCEL文件……92導入-導出數據演示導出數據為EXCEL文件……37回顧表的基礎知識建表的基本步驟:確定表中有哪些列確定每列的數據類型給表添加各種約束創建各表之間的關系SQLServer中的數據類型整型數據:intsmallint浮點數據:floatnumeric……字符數據固定長度:char(6)可變長度:varchar(10)unicode編碼:nchar(10)……布爾數據(真/假)bit:1/0貨幣數據money日期數據datetime93回顧表的基礎知識建表的基本步驟:整型數據:intsmal創建表建表的語法CREATETABLE表名(字段1數據類型列的特征,字段2數據類型列的特征,...)列的特征:包括該列是是否為空(NULL)、是否是標識列(自動編號)、是否有默認值、是否為主鍵等。94創建表建表的語法CREATETABLE表名列的特征:3創建數據表T-SQL創建數據表的語法:CREATETABLE表名(字段1數據類型列的特征,字段2數據類型列的特征,... )數據類型[(長度,[小數])]95創建數據表T-SQL創建數據表的語法:CREATETABL創建數據表[NOT]NULL取空值約束DEFAULT<表達式>缺省值IDENTITY(種子值,增量)自動增量標識CHECK<表達式>檢驗表達式UNIQUE唯一值約束PRIMARYKEY主鍵FOREIGNKEY外鍵字段名96創建數據表[NOT]NULL建表示例1USEstuDB--將當前數據庫設置為stuDBGOCREATETABLEstuInfo/*-創建學員信息表-*/(stuNameVARCHAR(20)NOTNULL,--姓名,非空(必填)stuNoCHAR(6)NOTNULL,--學號,非空(必填)stuAgeINTNOTNULL,--年齡,INT類型默認為4個字節stuIDNUMERIC(18,0),--身份證號stuSeatSMALLINTIDENTITY(1,1),--座位號,自動編號stuAddressTEXT--住址,允許為空,即可選輸入)GONUMERIC(18,0)代表18位數字,小數位數為0演示:創建學員信息表stuInfoIDENTITY(起始值,遞增量)97建表示例1USEstuDB--將當前數據庫設置為s建表示例2CREATETABLEstuMarks(ExamNoCHAR(7)NOTNULL,--考號stuNoCHAR(6)NOTNULL,--學號writtenExamINTNOTNULL,--筆試成績LabExamINTNOTNULL--上機成績)GO演示:創建學員成績表stuMarks98建表示例2CREATETABLEstuMarks演示:刪除表如果當前數據庫中已存在stuInfo表,再次創建時系統將提示出錯。如何解決呢?99刪除表如果當前數據庫中已存在stuInfo表,再次創建時系統刪除表刪除表的語法:DROPTABLE
表名USEstuDB--將當前數據庫設置為stuDB,以便在stuDB數據庫中建表GOIFEXISTS(SELECT*FROMsysobjectsWHEREname=’stuInfo’)
DROPTABLEstuInfoCREATETABLEstuInfo/*-創建學員信息表-*/(…..)GO100刪除表刪除表的語法:DROPTABLE表名USEstu回顧SQLServer的約束約束的目的:確保表中數據的完整型常用的約束類型:主鍵約束(PrimaryKeyConstraint):要求主鍵列數據唯一,并且不允許為空唯一約束(UniqueConstraint):要求該列唯一,允許為空,但只能出現一個空值。檢查約束(CheckConstraint):某列取值范圍限制、格式限制等,如有關年齡的約束默認約束(DefaultConstraint):某列的默認值,如我們的男性學員較多,性別默認為“男”外鍵約束(ForeignKeyConstraint):用于兩表間建立關系,需要指定引用主表的那列101回顧SQLServer的約束約束的目的:確保表中數據的完整添加約束添加約束的語法:ALTERTABLE表名
ADDCONSTRAINT約束名約束類型具體的約束說明約束名的取名規則推薦采用:約束類型_約束字段主鍵(PrimaryKey)約束:如PK_stuNo唯一(UniqueKey)約束:如UQ_stuID默認(DefaultKey)約束:如DF_stuAddress檢查(CheckKey)約束:如CK_stuAge外鍵(ForeignKey)約束:如FK_stuNo102添加約束添加約束的語法:ALTERTABLE表名約添加約束示例ALTERTABLEstuInfo
ADDCONSTRAINTPK_stuNoPRIMARYKEY(stuNo)ALTERTABLEstuInfo
ADDCONSTRAINTUQ_st
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 聚氨酯管材及管件購銷合同協議
- 二手家具購買合同協議
- 股權回購合同法律效力分析
- 權益合同協議書模板
- 林州建筑職業技術學院《第二外語英語》2023-2024學年第二學期期末試卷
- 供應鏈合作協議書
- 南京醫科大學《康復醫學基礎》2023-2024學年第二學期期末試卷
- 天津市達標名校2025屆初三下學期第三次(4月)月考數學試題含解析
- 燕京理工學院《現代推銷學實驗》2023-2024學年第一學期期末試卷
- 防火安全產品供貨合同格式
- 街道優生優育進萬家活動實施方案
- 關于助航燈光回路絕緣下降原因分析
- 《音樂療法》教學課件
- 小區室外雨、污水排水管道施工方案
- 工廠5S檢查評分評價基準表(全)
- 江水源熱泵應用杭州奧體主體育場案例分析
- 部編版三年級語文下冊期中檢測卷課件
- (完整版)供應商審核表
- 說專業(市場營銷專業)課件
- 火電廠工藝流程圖
- 以“政府績效與公眾信任”為主題撰寫一篇小論文6篇
評論
0/150
提交評論