版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Cocktail學(xué)學(xué) 習(xí)習(xí) 目目 標(biāo)標(biāo) 1、了解、了解SQL Server 2005中的常用數(shù)據(jù)類型。中的常用數(shù)據(jù)類型。2、掌握表的創(chuàng)建,表定義的修改方法。、掌握表的創(chuàng)建,表定義的修改方法。3、掌握表數(shù)據(jù)的插入、刪除和修改。、掌握表數(shù)據(jù)的插入、刪除和修改。4、掌握各類數(shù)據(jù)完整性約束的實(shí)現(xiàn)方法。、掌握各類數(shù)據(jù)完整性約束的實(shí)現(xiàn)方法。5、學(xué)會使用、學(xué)會使用SQL Server 2005向?qū)Чぞ邔?dǎo)入導(dǎo)出數(shù)據(jù)向?qū)Чぞ邔?dǎo)入導(dǎo)出數(shù)據(jù)。6、解決任務(wù)引入中提出的問題,通過實(shí)訓(xùn)項(xiàng)目鞏固知、解決任務(wù)引入中提出的問題,通過實(shí)訓(xùn)項(xiàng)目鞏固知識。識。 表的創(chuàng)建和管理都可以使用表的創(chuàng)建和管理都可以使用Management S
2、tudio和和Transact-SQL語句兩種方法實(shí)現(xiàn)語句兩種方法實(shí)現(xiàn)知知 識識 框框 架架第第5章章 表表表的概念表的概念數(shù)據(jù)類型數(shù)據(jù)類型創(chuàng)建和管創(chuàng)建和管理表理表操作表數(shù)操作表數(shù)據(jù)據(jù)數(shù)據(jù)插入數(shù)據(jù)插入數(shù)據(jù)刪除數(shù)據(jù)刪除數(shù)據(jù)修改數(shù)據(jù)修改導(dǎo)入導(dǎo)出導(dǎo)入導(dǎo)出操作表數(shù)操作表數(shù)據(jù)據(jù)主鍵約束主鍵約束唯一性約束唯一性約束檢查約束檢查約束默認(rèn)約束默認(rèn)約束外鍵約束外鍵約束任務(wù)引入 在上一章中我們學(xué)會了建立數(shù)據(jù)庫,那在上一章中我們學(xué)會了建立數(shù)據(jù)庫,那么數(shù)據(jù)庫相當(dāng)于一個(gè)容器,我們要向中間填么數(shù)據(jù)庫相當(dāng)于一個(gè)容器,我們要向中間填塞數(shù)據(jù),這些數(shù)據(jù)以什么樣的形式存在呢,塞數(shù)據(jù),這些數(shù)據(jù)以什么樣的形式存在呢,答案是答案是“表表
3、”,那么怎樣向表中填塞數(shù)據(jù)呢?,那么怎樣向表中填塞數(shù)據(jù)呢?表保存的數(shù)據(jù)之間有什么關(guān)系嗎?有關(guān)系的表保存的數(shù)據(jù)之間有什么關(guān)系嗎?有關(guān)系的話,這些關(guān)系如何在數(shù)據(jù)庫中實(shí)現(xiàn)才不至于話,這些關(guān)系如何在數(shù)據(jù)庫中實(shí)現(xiàn)才不至于產(chǎn)生亂七八糟的數(shù)據(jù)或者一些無用的數(shù)據(jù)?產(chǎn)生亂七八糟的數(shù)據(jù)或者一些無用的數(shù)據(jù)?5.1 表表 5.1.1 表的基本概念表的基本概念 表是數(shù)據(jù)庫基本的邏輯存儲單位,在關(guān)系表是數(shù)據(jù)庫基本的邏輯存儲單位,在關(guān)系數(shù)據(jù)庫中都表現(xiàn)為二維表,由行和列組成,數(shù)據(jù)庫中都表現(xiàn)為二維表,由行和列組成,如下表所示。如下表所示。 在數(shù)據(jù)庫中實(shí)際建表之前在數(shù)據(jù)庫中實(shí)際建表之前 ,要要充分考慮到以充分考慮到以下幾點(diǎn)下幾點(diǎn)
4、 :(1)數(shù)據(jù)庫中應(yīng)該有哪些基本表)數(shù)據(jù)庫中應(yīng)該有哪些基本表 (2)表中有哪些列,列的名字,每列的數(shù)據(jù)類)表中有哪些列,列的名字,每列的數(shù)據(jù)類型和長度,該列能否為空等型和長度,該列能否為空等 .(3)表中哪些列)表中哪些列 需要約束等需要約束等(4)表中的哪些列的數(shù)據(jù)有效范圍需要限定)表中的哪些列的數(shù)據(jù)有效范圍需要限定 5.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 SQL Server 2005提供了一系列系統(tǒng)定提供了一系列系統(tǒng)定義的數(shù)據(jù)類型,它是數(shù)據(jù)庫對象的一個(gè)屬義的數(shù)據(jù)類型,它是數(shù)據(jù)庫對象的一個(gè)屬性,選擇正確的數(shù)據(jù)類型,是篩選進(jìn)入表性,選擇正確的數(shù)據(jù)類型,是篩選進(jìn)入表中的數(shù)據(jù)的第一層約束。中的數(shù)據(jù)的第一層
5、約束。數(shù)據(jù)類型主要有下面幾部分構(gòu)成。數(shù)據(jù)類型主要有下面幾部分構(gòu)成。1、數(shù)據(jù)類別,例如字符類型,數(shù)據(jù)類型或、數(shù)據(jù)類別,例如字符類型,數(shù)據(jù)類型或二進(jìn)制類型二進(jìn)制類型2、數(shù)據(jù)值的寬度和長度大小,如允許輸入、數(shù)據(jù)值的寬度和長度大小,如允許輸入的字符最大值為的字符最大值為20個(gè)字符個(gè)字符3、數(shù)值的精度,比如商品價(jià)格一般小數(shù)部、數(shù)值的精度,比如商品價(jià)格一般小數(shù)部分是分是2或或3位,整數(shù)部分幾位由具體情況而位,整數(shù)部分幾位由具體情況而定。定。 5.1 表表 SQL Server 2005的常用數(shù)據(jù)類型的常用數(shù)據(jù)類型 見表見表1 留意下邊的留意下邊的【注意注意】! 1.decimal和和numeric帶固定精
6、度和小數(shù)位帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類型。數(shù)的數(shù)值數(shù)據(jù)類型。 2. 近似數(shù)字?jǐn)?shù)據(jù)類型用于表示浮點(diǎn)數(shù)值數(shù)近似數(shù)字?jǐn)?shù)據(jù)類型用于表示浮點(diǎn)數(shù)值數(shù)據(jù)的大致數(shù)值數(shù)據(jù)類型。據(jù)的大致數(shù)值數(shù)據(jù)類型。 3.使用數(shù)值日期格式時(shí),可在字符串中使使用數(shù)值日期格式時(shí),可在字符串中使用斜杠用斜杠 (/)、連字符、連字符 (-) 或句點(diǎn)或句點(diǎn) (.) 作為分隔符作為分隔符指定月、日和年。指定月、日和年。 4. 如果列數(shù)據(jù)項(xiàng)的大小一致,則使用如果列數(shù)據(jù)項(xiàng)的大小一致,則使用 binary。 5.1.3 創(chuàng)建表創(chuàng)建表 學(xué)生成績管理系統(tǒng)是針對學(xué)生選課學(xué)生成績管理系統(tǒng)是針對學(xué)生選課和成績管理設(shè)計(jì)的,依據(jù)第二章的關(guān)系和成績管理設(shè)計(jì)的
7、,依據(jù)第二章的關(guān)系模型我們可以得到該數(shù)據(jù)庫至少包含學(xué)模型我們可以得到該數(shù)據(jù)庫至少包含學(xué)生表生表Student、學(xué)校的課程表、學(xué)校的課程表Course、成績登記表成績登記表Score和班級信息表和班級信息表Class。 創(chuàng)建表的創(chuàng)建表的方法主要有兩種方法主要有兩種,使用,使用Management Studio創(chuàng)建和使用創(chuàng)建和使用Transact-SQL語句創(chuàng)建,下面分別來語句創(chuàng)建,下面分別來介紹這兩種方法介紹這兩種方法表表 5-1 學(xué)生表學(xué)生表Student字段字段類型類型長度長度是否能為是否能為空空約束約束學(xué)號學(xué)號StuNonvarchar10否否主鍵主鍵姓名姓名StuNamenvarchar
8、50否否惟一惟一性別性別Sexchar2否否值在值在“男男”,“女女”中選中選班級名班級名稱稱ClaNamenvarchar20是是外鍵,對應(yīng)班級表外鍵,對應(yīng)班級表中列中列籍貫籍貫Citynvarchar20是是備注備注Notesnvarchar200是是所有列都添加好后結(jié)果如圖所有列都添加好后結(jié)果如圖5-3 2使用使用T-SQL語句創(chuàng)建表語句創(chuàng)建表創(chuàng)建表的基本語法格式如下:創(chuàng)建表的基本語法格式如下:CREATE TABLE table_name ( Column name col_propertiesColumn name col_properties ,)說明:說明:table_name:
9、定義表名:定義表名Column name:列名:列名col_properties 列屬性,包括列的數(shù)據(jù)類列屬性,包括列的數(shù)據(jù)類型,是否為空,約束等等型,是否為空,約束等等【例例5.3】用用T-SQL語句創(chuàng)建班級語句創(chuàng)建班級表表Class。字段字段類型類型長度長度是否能是否能為空為空約束約束班級編號班級編號ClaNo Smallint IDENTITY否否從從“001”開始自開始自動生成動生成班級名班級名ClaNamenvarchar20否否主鍵主鍵所在系部所在系部Departmentnvarchar20否否班級人數(shù)班級人數(shù)Numbersmallint大于或等于大于或等于0編輯編輯SQL語句完成
10、建表;語句完成建表; Use CJGLGo -創(chuàng)建班級表創(chuàng)建班級表Class-Create Table Class( ClaNo smallint IDENTITY(001,1) NOT NULL, -班級編號從班級編號從“001”開始自動生成開始自動生成 ClaName nvarchar (20) NOT NULL,Department nvarchar (20) NULL,Number smallint NULL )IDENTITY標(biāo)識列標(biāo)識列【注意注意】IDENTITY屬性的一般語法格式如下屬性的一般語法格式如下IDENTITY (seed , increment) 參數(shù)參數(shù)seed 裝
11、載到表中的第一個(gè)行使用的值。裝載到表中的第一個(gè)行使用的值。increment 與前一個(gè)加載的行的標(biāo)識值相加的與前一個(gè)加載的行的標(biāo)識值相加的增量值。增量值。必須同時(shí)指定種子和增量,或者二者都不指定。必須同時(shí)指定種子和增量,或者二者都不指定。如果二者都未指定,則取默認(rèn)值如果二者都未指定,則取默認(rèn)值 (1,1)。【思考練習(xí)思考練習(xí)】以下給出選課表以下給出選課表Score的邏輯模型的邏輯模型如下表如下表5-4所示。讀者試著自己給出相應(yīng)的所示。讀者試著自己給出相應(yīng)的T-SQL腳本語句。腳本語句。字段字段類型類型長度長度是否能為是否能為空空約束約束學(xué)號學(xué)號StuNonvarchar10否否外鍵外鍵主鍵主鍵
12、課程號課程號CouNonvarchar10否否外鍵外鍵分?jǐn)?shù)分?jǐn)?shù)Grade smallint取值大于取值大于0管理表管理表ALTER TABLE table -修改的表名稱修改的表名稱 ALTER COLUMN column_name -修改已有的列名修改已有的列名 new_data_type ( precision , scale ) -新新的數(shù)據(jù)類型的數(shù)據(jù)類型 | ADD -添加新列添加新列 -添加列的定添加列的定義義 | DROP -刪除列刪除列 COLUMN column ,.n -要?jiǎng)h除列的列要?jiǎng)h除列的列名名 5.2表數(shù)據(jù)操作表數(shù)據(jù)操作1.向表中插入數(shù)據(jù)向表中插入數(shù)據(jù) a. 使用使用I
13、NSERT INTO語句插入數(shù)據(jù)語句插入數(shù)據(jù) INSERT INTO ( column_list ) /表名(列表名(列1,列,列2,列,列3,) VALUES ( DEFAULT | NULL | expression ,.n ) b.使用使用INSERTSELECT語句輸入數(shù)據(jù)語句輸入數(shù)據(jù) 【例5.9】 c.使用使用SELECT INTO子句插入數(shù)據(jù)到臨時(shí)表子句插入數(shù)據(jù)到臨時(shí)表 SELECT column 1,column 2, INTO new table FROM table name WHERE 2.修改表中數(shù)據(jù)修改數(shù)據(jù)的修改數(shù)據(jù)的T-SQL語句的一般語法格式如下:語句的一般語法格式
14、如下: UPDATE table_name SET column_name = expression | DEFAULT | NULL -修改原來的值為新值、默修改原來的值為新值、默認(rèn)值或空值認(rèn)值或空值 FROM ,.n WHERE -選擇選擇部分滿足條件的記錄部分滿足條件的記錄 【例例5.11】 【例5.12】 3.刪除表中數(shù)據(jù)刪除表中數(shù)據(jù)DELETE語句的簡單語法格式如下: DELETE table WHERE 【例5.13】 使用使用TRUNCATE語句刪除數(shù)據(jù)語句刪除數(shù)據(jù) TRUNCATE TABLE Name【比較】TRUNCATE與DELETE 語句比較5.3 表數(shù)據(jù)完整性的實(shí)現(xiàn)表
15、數(shù)據(jù)完整性的實(shí)現(xiàn) 約束主要有五種類型,包括主鍵約束、約束主要有五種類型,包括主鍵約束、唯一性約束、檢查約束、默認(rèn)約束和外鍵約唯一性約束、檢查約束、默認(rèn)約束和外鍵約束(參照性約束)。束(參照性約束)。 5.3.2 主鍵約束主鍵約束(PRIMARY KEY) 【例例5.17】 ALTER TABLE Score ADD CONSTRAINT PK_Score PRIMARY KEY (StuNo, CouNo) 5.3 表數(shù)據(jù)完整性的實(shí)現(xiàn)表數(shù)據(jù)完整性的實(shí)現(xiàn)CREATE TABLE Score ( StuNo nvarchar(10) NOT NULL,CouNo nvarchar(10) NOT
16、NULL,Grade smallint NULL, CONSTRAINT PK_Score PRIMARY KEY (StuNo, CouNo)【思考思考】如果在定義列后直接寫上如果在定義列后直接寫上“PRIMARY KEY”(如(如5.3.1節(jié)綜合實(shí)例中)和上面兩種有何節(jié)綜合實(shí)例中)和上面兩種有何區(qū)別。區(qū)別。5.3.3 唯一性約束(UNIQUE)【例例5.18】 ALTER TABLE Course ADD CONSTRAINT UN_CouName UNIQUE(CouName);刪除該約束的語句刪除該約束的語句 ALTER TABLE Course DROP CONSTRAINT UN_
17、CouName ; 【思考思考】添加了唯一性約束的列,該列允許添加了唯一性約束的列,該列允許取空值嗎?如果可以,那么可以取多少個(gè)空值取空值嗎?如果可以,那么可以取多少個(gè)空值呢?呢?5.3.4 檢查約束檢查約束(CHECK)【例5.20】ALTER TABLE Student ADD CONSTRAINT CK_Sex CHECK (Sex =男男OR Sex=女女) ;【注意注意】CHECK關(guān)鍵字后的表達(dá)式一定要跟上小括號關(guān)鍵字后的表達(dá)式一定要跟上小括號,否則要出錯(cuò)。否則要出錯(cuò)。 ALTER TABLE Course ADD CONSTRAINT CK_Credit CHECK (Credit
18、=0 AND Credit=10 ) 自學(xué)自學(xué)【例例5.21】 5.3.5 默認(rèn)約束默認(rèn)約束(DEFAULT)DEFAULT(expression | null ) FOR column_name【例例5.23】ALTER TABLE Student ADD CONSTRAINT DE_Sex DEFAULT(男男) FOR Sex【例例5.24】ALTER TABLE Score ADD CONSTRAINT DE_Grade DEFAULT(NULL) FOR Grade5.3.6外鍵約束(外鍵約束(FOREIGN KEY)在彈出的窗口中設(shè)置主鍵和外鍵關(guān)系,重在彈出的窗口中設(shè)置主鍵和外鍵關(guān)系,重點(diǎn)是設(shè)置主鍵表和外鍵表點(diǎn)是設(shè)置主鍵表和外鍵表 5.3.6外鍵約束(外鍵約束(FOREIGN KEY)創(chuàng)建外鍵的一般語法格式如下:創(chuàng)建外鍵的一般語法格式如下: ALTER TABLE table1_name ADD CONSTRAINT constraint_name FOREIGN KEY (col 1_name) REFERENCES table2_name (c
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傭金 居間服務(wù)合同范例
- 房屋買實(shí)合同范例
- 2024年墻紙環(huán)保認(rèn)證與施工一體化服務(wù)合同3篇
- 服裝專賣轉(zhuǎn)讓合同范例
- 合同范例出錯(cuò)
- 2024年度石油鉆井項(xiàng)目工期延誤賠償合同3篇
- 2024年校園戒煙行動計(jì)劃協(xié)議
- 2024年電力工程設(shè)計(jì)施工總承包合同
- 陜西財(cái)經(jīng)職業(yè)技術(shù)學(xué)院《世界建筑裝飾風(fēng)格與流派》2023-2024學(xué)年第一學(xué)期期末試卷
- 陜西財(cái)經(jīng)職業(yè)技術(shù)學(xué)院《光電信息系統(tǒng)設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 【課件】供應(yīng)商現(xiàn)場與質(zhì)量管理
- 2024年立式碾米機(jī)項(xiàng)目可行性研究報(bào)告
- 統(tǒng)編版語文九年級上冊(2024)(含答案)
- 中華人民共和國保守國家秘密法實(shí)施條例培訓(xùn)課件
- 成都錦城學(xué)院《算法分析與設(shè)計(jì)》2022-2023學(xué)年期末試卷
- 可行性報(bào)告編制服務(wù)方案
- 牛頓法在圖像處理中的應(yīng)用
- 《贏利》精讀圖解
- 2024年一級造價(jià)工程師考試《建設(shè)工程造價(jià)管理》真題及解析
- 2025屆江蘇揚(yáng)州中學(xué)數(shù)學(xué)高一上期末考試試題含解析
- 2024年認(rèn)證行業(yè)法律法規(guī)及認(rèn)證基礎(chǔ)知識 CCAA年度確認(rèn) 試題與答案
評論
0/150
提交評論