創(chuàng)建數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)原理.ppt
《創(chuàng)建數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)原理.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《創(chuàng)建數(shù)據(jù)庫(kù)表數(shù)據(jù)庫(kù)原理.ppt(110頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
數(shù)據(jù)庫(kù)原理與應(yīng)用第10章數(shù)據(jù)庫(kù)表 學(xué)習(xí)目的 掌握利用企業(yè)管理器 EnterpriseManager 創(chuàng)建表 掌握利用Transact SQL語(yǔ)句中的create命令創(chuàng)建表 重點(diǎn) 難點(diǎn) 重點(diǎn)利用Transact SQL語(yǔ)句中的create命令創(chuàng)建表難點(diǎn)無(wú) 第10章數(shù)據(jù)庫(kù)表 數(shù)據(jù)庫(kù)最重要的功能之一是存儲(chǔ)數(shù)據(jù) 關(guān)系型數(shù)據(jù)庫(kù)中 數(shù)據(jù)保存在表中 數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)后 得到了一系列的關(guān)系模式 進(jìn)入數(shù)據(jù)庫(kù)實(shí)施階段 將把關(guān)系模式轉(zhuǎn)換為DBMS的數(shù)據(jù)庫(kù)表 數(shù)據(jù)庫(kù)表是數(shù)據(jù)的最基本構(gòu)成元素 對(duì)數(shù)據(jù)庫(kù)的操作大多基于數(shù)據(jù)庫(kù)表 第10章數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表10 2修改數(shù)據(jù)庫(kù)表10 3使用約束10 4建立索引10 5刪除數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 創(chuàng)建表創(chuàng)建表 就是將邏輯設(shè)計(jì)階段得到的關(guān)系模式用DBMS所支持的形式表達(dá)出來(lái) 每一個(gè)關(guān)系模式就是一張數(shù)據(jù) 庫(kù) 表 可看作定義這張表的 表頭 如何命名每一列及每一列的屬性特點(diǎn)是什么 在SQLServer2000中 每個(gè)數(shù)據(jù)庫(kù)中最多可以創(chuàng)建200萬(wàn)個(gè)表 用戶創(chuàng)建數(shù)據(jù)庫(kù)表時(shí) 最多可以定義1024列 也就是可以定義1024個(gè)字段 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 SQLServer2000提供了兩種方法創(chuàng)建數(shù)據(jù)庫(kù)表利用企業(yè)管理器 EnterpriseManager 創(chuàng)建表利用Transact SQL語(yǔ)句中的create命令創(chuàng)建表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 利用企業(yè)管理器 EnterpriseManager 創(chuàng)建表步驟如下 1 在樹(shù)形目錄中找到要建表的數(shù)據(jù)庫(kù) 展開(kāi)該數(shù)據(jù)庫(kù) 2 選擇表 單擊鼠標(biāo)右鍵 在彈出的快捷菜單中選擇 新建表 命令 表設(shè)計(jì)器如圖所示 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 利用企業(yè)管理器 EnterpriseManager 創(chuàng)建表步驟如下 1 在樹(shù)形目錄中找到要建表的數(shù)據(jù)庫(kù) 展開(kāi)該數(shù)據(jù)庫(kù) 2 選擇表 單擊鼠標(biāo)右鍵 在彈出的快捷菜單中選擇 新建表 命令 表設(shè)計(jì)器如圖所示 3 表設(shè)計(jì)器的上半部分有一個(gè)表格 在這個(gè)表格中輸入列的屬性 表格的每一行對(duì)應(yīng)一列 對(duì)每一列都需要進(jìn)行以下設(shè)置 其中前三項(xiàng)是必須在建表時(shí)給出的 它們是 列名 即字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)類(lèi)型是一個(gè)下拉列表框 其中包括了所有的系統(tǒng)數(shù)據(jù)類(lèi)型長(zhǎng)度 如果選擇的數(shù)據(jù)類(lèi)型需要長(zhǎng)度 則指定長(zhǎng)度 允許空 單擊鼠標(biāo) 可以切換是否允許為空值的狀態(tài) 勾選說(shuō)明允許為空值 空白說(shuō)明不允許為空值 默認(rèn)狀態(tài)下是允許為空值的 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 利用企業(yè)管理器 EnterpriseManager 創(chuàng)建表步驟如下 3 表設(shè)計(jì)器的上半部分有一個(gè)表格 在這個(gè)表格中輸入列的屬性 表格的每一行對(duì)應(yīng)一列 對(duì)每一列都需要進(jìn)行以下設(shè)置 其中前三項(xiàng)必須在建表時(shí)給出 它們是 列名 即字段名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)類(lèi)型是一個(gè)下拉列表框 其中包括了所有的系統(tǒng)數(shù)據(jù)類(lèi)型長(zhǎng)度 如果選擇的數(shù)據(jù)類(lèi)型需要長(zhǎng)度 則指定長(zhǎng)度 允許空 單擊鼠標(biāo) 可以切換是否允許為空值的狀態(tài) 勾選說(shuō)明允許為空值 空白說(shuō)明不允許為空值 默認(rèn)狀態(tài)下是允許為空值的 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 利用企業(yè)管理器 EnterpriseManager 創(chuàng)建表步驟如下 3 表設(shè)計(jì)器的上半部分有一個(gè)表格 在這個(gè)表格中輸入列的屬性 表格的每一行對(duì)應(yīng)一列 表設(shè)計(jì)器的下半部分是特定列的詳細(xì)屬性 包括是否是標(biāo)識(shí)列 是否使用默認(rèn)值等 4 定義好所有列后 單擊工具欄上的保存按扭 表就創(chuàng)建完成了 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 利用Transact SQL語(yǔ)句中的create命令創(chuàng)建表其語(yǔ)法形式如下 CREATETABLE表名 列名1數(shù)據(jù)類(lèi)型 identity notnull null 列名2數(shù)據(jù)類(lèi)型 identity notnull null 注意 在創(chuàng)建表之前 要先使用use命令打開(kāi)需要?jiǎng)?chuàng)建表的數(shù)據(jù)庫(kù) 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 三個(gè)參數(shù)的含義 null 表示該列的值可以為空值 即沒(méi)有存儲(chǔ)任何數(shù)據(jù) 此為默認(rèn)參數(shù) 不能將空值理解為該列的值是0或空字符串等值 notnull 表示該列的值不能為空 identify 計(jì)數(shù)器 表示該列的值是一組遞增的整數(shù)數(shù)據(jù) 初始值默認(rèn)為1 增長(zhǎng)步長(zhǎng)默認(rèn)為1 也可自己指定初始值和增長(zhǎng)步長(zhǎng) 課本表10 1 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例 在Company數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)雇員信息表該表記錄了雇員的號(hào)碼 姓名 性別 出生日期 雇傭日期 職工種類(lèi) 工資信息 其中 職工號(hào)碼 整型 不能為空姓名 可變長(zhǎng)度字符型 允許為空出生日期 日期型 允許為空雇傭日期 日期型 不能為空職工種類(lèi) 可變長(zhǎng)度字符型 允許為空工資 貨幣型 允許為空 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 其SQL語(yǔ)句的程序清單如下 useCompanygoCREATETABLEemployee numberintnotnull namevarchar 10 NULL birthdaydatetimenull hire datedatetimeNOTNULL professional titlevarchar 10 null salarymoneynull 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 表名在同一數(shù)據(jù)庫(kù)內(nèi) 數(shù)據(jù)庫(kù)表的名稱是惟一的可以使用中文 也可以使用西文符號(hào)最多64個(gè)字符 一個(gè)漢字占兩個(gè)字符 建立臨時(shí)表臨時(shí)表的表名必須以 打頭仍然使用CREATETABLE命令例 Createtable demotable user idnumeric 10 0 identity Namevarchar 30 notNULL 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 1確定期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表的表名 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 列名表中的每一列也稱為字段 所以列名也叫字段名字段名的命名方式基本同數(shù)據(jù)表名的命名字段名在數(shù)據(jù)表中要求是惟一的 但在整個(gè)數(shù)據(jù)庫(kù)中可以重名 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型定義數(shù)據(jù)表中的每一個(gè)字段必須聲明其數(shù)據(jù)類(lèi)型 DBMS才能實(shí)現(xiàn)對(duì)數(shù)據(jù)的存儲(chǔ)管理 為每一個(gè)字段選擇合適的數(shù)據(jù)類(lèi)型和數(shù)據(jù)長(zhǎng)度將直接影響著數(shù)據(jù)庫(kù)系統(tǒng)存儲(chǔ)空間的利用和系統(tǒng)的性能 在建立數(shù)據(jù)庫(kù)表時(shí) 要慎重決定每個(gè)字段的數(shù)據(jù)類(lèi)型 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型T SQL中支持的 常用的數(shù)據(jù)類(lèi)型字符型日期時(shí)間類(lèi)型數(shù)值類(lèi)型二進(jìn)制型位型文本型圖像型時(shí)間戳型 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 1 字符型字符型變量應(yīng)定義長(zhǎng)度允許定義的最大長(zhǎng)度是255有兩種固定長(zhǎng)度的char 類(lèi)型可變長(zhǎng)度的varchar 類(lèi)型輸入字符型數(shù)據(jù)時(shí)必須用單引號(hào)將數(shù)據(jù)括起來(lái) 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 2 日期時(shí)間型datetime和smalldatetime是用來(lái)存儲(chǔ)日期和時(shí)間數(shù)據(jù) 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 3 整數(shù)類(lèi)型多用于處理數(shù)值類(lèi)型數(shù)據(jù) 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 4 浮點(diǎn)數(shù)類(lèi)型多用于處理取值范圍很大的數(shù)字量 使用時(shí)有一定的精確度 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 5 精確數(shù)類(lèi)型精確數(shù)類(lèi)型有兩種形式DecimalNumeric與浮點(diǎn)類(lèi)型數(shù)據(jù)的區(qū)別可自定義精度的位數(shù)例num col 5 2 可以表示的最大值是999 99 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 6 貨幣型 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 7 位數(shù)據(jù)類(lèi)型位數(shù)據(jù)類(lèi)型bit是一種邏輯數(shù)據(jù)類(lèi)型只有1和0兩種數(shù)值一般常用作true false使用定義bit列時(shí) 不允許為NULL 也不能建立索引多個(gè)bit列可占用一個(gè)字節(jié) 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 8 文本型和圖像型文本類(lèi)型text圖像類(lèi)型image每行可以存儲(chǔ)2GB的二進(jìn)制大型對(duì)象 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 數(shù)據(jù)類(lèi)型 9 時(shí)間戳型時(shí)間戳型表示Timestamp由系統(tǒng)自動(dòng)賦值的一個(gè)計(jì)數(shù)器數(shù)據(jù)記錄了數(shù)據(jù)行的操作順序時(shí)間戳列的數(shù)據(jù)保持惟一 它可以惟一標(biāo)識(shí)表中的列時(shí)間戳列的值實(shí)際來(lái)自于事務(wù)日志 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 2確定期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表中字段的字段名和數(shù)據(jù)類(lèi)型 數(shù)據(jù)表Mag dept 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 2確定期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表中字段的字段名和數(shù)據(jù)類(lèi)型 數(shù)據(jù)表mag emp 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 2確定期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表中字段的字段名和數(shù)據(jù)類(lèi)型 數(shù)據(jù)表Mag info 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 2確定期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表中字段的字段名和數(shù)據(jù)類(lèi)型 數(shù)據(jù)表mag doc 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 3建立期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表 創(chuàng)建mag dept表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 3建立期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表 創(chuàng)建mag emp表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 3建立期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表 創(chuàng)建mag info表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 例10 3建立期刊采編系統(tǒng)數(shù)據(jù)庫(kù)中各數(shù)據(jù)表 創(chuàng)建mag doc表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 用T SQL語(yǔ)句查看表定義1 使用系統(tǒng)存儲(chǔ)過(guò)程sp help可以查看表的定義 在查詢分析器中輸入sp helpemployee命令 可以查看剛剛創(chuàng)建的employee表的結(jié)構(gòu) 補(bǔ)充 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 2 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpdb格式如下 sp helpdb 數(shù)據(jù)庫(kù)名 1 不給出參數(shù) 將顯示服務(wù)器中所有數(shù)據(jù)庫(kù)的信息 如圖所示 補(bǔ)充 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpdb 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpdb 給出某個(gè)數(shù)據(jù)庫(kù)名時(shí) 只顯示這個(gè)數(shù)據(jù)庫(kù)的信息 如圖 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 3 使用系統(tǒng)存儲(chǔ)過(guò)程sp databases格式如下 sp databases顯示服務(wù)器中所有可以使用的數(shù)據(jù)庫(kù)的信息 如圖所示 注意 sp helpdb也是顯示服務(wù)器中所有數(shù)據(jù)庫(kù)的信息 兩者之間的差別在哪 補(bǔ)充 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 4 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpfile格式如下 sp helpfile 文件名 查看數(shù)據(jù)庫(kù)中文件的信息 注意 要先使用use命令打開(kāi)所要查看的數(shù)據(jù)庫(kù) 補(bǔ)充 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 4 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpfile 1 不加文件名 顯示數(shù)據(jù)庫(kù)中所有文件的信息 如圖所示 補(bǔ)充 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 4 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpfile 2 加文件名 顯示數(shù)據(jù)庫(kù)中某一文件的信息 補(bǔ)充 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表 5 使用系統(tǒng)存儲(chǔ)過(guò)程sp helpfilegroup格式如下 sp helpfilegroup 文件組名 不加文件組名 顯示數(shù)據(jù)庫(kù)中所有文件組的信息 用法同sp helpfile 補(bǔ)充 第10章數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表10 2修改數(shù)據(jù)庫(kù)表10 3使用約束10 4建立索引10 5刪除數(shù)據(jù)庫(kù)表 10 2修改數(shù)據(jù)庫(kù)表 添加或刪除列修改列的屬性更改列名和表名 10 2修改數(shù)據(jù)庫(kù)表 利用企業(yè)管理器增加 刪除和修改字段 在企業(yè)管理器中 打開(kāi)指定的服務(wù)器中要修改表的數(shù)據(jù)庫(kù) 用右鍵單擊要進(jìn)行修改的表 從彈出的快捷菜單中選擇設(shè)計(jì)表選項(xiàng) 則會(huì)出現(xiàn)設(shè)計(jì)表對(duì)話框 在該對(duì)話框中 可以利用圖形化工具完成增加 刪除和修改字段的操作 利用Transact SQL語(yǔ)言中的altertable命令增加 刪除和修改字段 10 2修改數(shù)據(jù)庫(kù)表 增加列語(yǔ)句格式 ALTERTABLE表名ADD列名列的描述例如 向Company數(shù)據(jù)庫(kù)的employee表中添加性別 sex 列 useCompanygoaltertableemployeeaddsexchar 4 null 10 2修改數(shù)據(jù)庫(kù)表 增加列例10 4向數(shù)據(jù)表mag emp中添加一新屬性ID 身份證號(hào)碼 數(shù)據(jù)類(lèi)型為字符型 固定長(zhǎng)度18 10 2修改數(shù)據(jù)庫(kù)表 刪除列語(yǔ)句格式 ALTERTABLE表名DROPCOLUMN列名例如 刪除employee表的sex列 useCompanygoaltertableemployeedropcolumnsex 10 2修改數(shù)據(jù)庫(kù)表 刪除列例10 5刪除數(shù)據(jù)表mag emp中屬性ID 10 2修改數(shù)據(jù)庫(kù)表 修改列定義表中的每一列都有其定義 包括列名 數(shù)據(jù)類(lèi)型 數(shù)據(jù)長(zhǎng)度以及是否允許為空值等 這些值都可以在表創(chuàng)建好以后修改 修改列定義的語(yǔ)句格式為 ALTERTABLE表名ALTERCOLUMN列名數(shù)據(jù)類(lèi)型列的描述 10 2修改數(shù)據(jù)庫(kù)表 修改列定義例如 將employee表的name列改為最大長(zhǎng)度為20的varchar型數(shù)據(jù) 且不允許空值 useCompanygoaltertableemployeealtercolumnnamevarchar 20 notnull默認(rèn)狀態(tài)下 列是被設(shè)置為允許空值的 將一個(gè)原來(lái)允許空值的列改為不允許空值 必須在以下兩個(gè)條件滿足時(shí)才能成功 1 列中沒(méi)有存放是空值的記錄 2 在列上沒(méi)有創(chuàng)建索引 10 2修改數(shù)據(jù)庫(kù)表 修改列定義例10 6將數(shù)據(jù)表mag info中PubDate的數(shù)據(jù)類(lèi)型更改為smalldatetime 10 2修改數(shù)據(jù)庫(kù)表 更改列名和表名更改列名sp rename 表名 列名 新列名更改表名sp rename原表名 新表名 10 2修改數(shù)據(jù)庫(kù)表 更改列名和表名例10 7數(shù)據(jù)庫(kù)usedb1中建有數(shù)據(jù)表test 包含number stu name和class三個(gè)字段 請(qǐng)將class更名為class no 10 2修改數(shù)據(jù)庫(kù)表 更改列名和表名例10 8將數(shù)據(jù)庫(kù)usedb1中數(shù)據(jù)表test更名為student 第10章數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表10 2修改數(shù)據(jù)庫(kù)表10 3使用約束10 4建立索引10 5刪除數(shù)據(jù)庫(kù)表 10 3使用約束 約束的作用實(shí)現(xiàn)數(shù)據(jù)的完整性實(shí)體完整性參照完整性用戶自定義完整性 10 3使用約束 約束的類(lèi)型 10 3使用約束 建立約束定義約束時(shí)使用Createtable語(yǔ)句或使用Altertable語(yǔ)句即可以在定義數(shù)據(jù)表的數(shù)據(jù)列時(shí)直接定義約束 也可以對(duì)已定義的數(shù)據(jù)表添加約束 10 3使用約束 建立約束使用Createtable語(yǔ)句格式 Createtable表名 列名1數(shù)據(jù)類(lèi)型 identity NOTNULL NULL Constraint約束名 約束定義 列名2數(shù)據(jù)類(lèi)型 identity NOTNULL NULL Constraint約束名 約束定義 Constraint約束名 約束定義 建立約束時(shí)看隨數(shù)據(jù)定義或者單獨(dú)定義 10 3使用約束 建立約束使用Altertable語(yǔ)句格式 Altertable表名Add Constraint約束名 約束定義約束名是一個(gè)可選項(xiàng) 如果用戶自己不定義約束名 則系統(tǒng)將按照一定規(guī)則命名該約束 不命名約束名時(shí) 關(guān)鍵字constraint也要省略 10 3使用約束 1 primarykey主鍵的添加 刪除和修改操作方法有兩種 1 企業(yè)管理器操作法 在企業(yè)管理器中 用右鍵單擊要操作的數(shù)據(jù)庫(kù)表 從彈出的快捷菜單中選擇設(shè)計(jì)表選項(xiàng) 然后根據(jù)提示操作 如圖 10 3使用約束 10 3使用約束 1 primarykey主鍵的添加 刪除和修改操作方法有兩種 2 Transact SQL語(yǔ)句操作法其語(yǔ)法形式如下 CONSTRAINTconstraint name PRIMARYKEY 列名1 列名2 當(dāng)主鍵由多個(gè)列構(gòu)成時(shí) 則將列名依次寫(xiě)在括號(hào)中 10 3使用約束 1 primarykey主鍵的添加 刪除和修改操作方法有兩種 2 Transact SQL語(yǔ)句操作法例10 9向數(shù)據(jù)表map dept中添加主鍵約束 10 3使用約束 注意 此例沒(méi)有定義約束名 則系統(tǒng)會(huì)按照一定規(guī)則命名該約束 查看約束名方法 如圖 10 3使用約束 1 primarykey使用createtable建立主鍵約束時(shí)兩種寫(xiě)法 1 定義列名和數(shù)據(jù)類(lèi)型后 直接寫(xiě)上關(guān)鍵字primarykey 2 定義完所有列名和數(shù)據(jù)類(lèi)型后 單獨(dú)寫(xiě)明primarykey 列名1 列名2 當(dāng)主鍵有兩個(gè)或兩個(gè)以上屬性共同構(gòu)成時(shí) 必須用第二種方法 即單獨(dú)定義 而不能隨列的定義而定義 10 3使用約束 1 定義列名和數(shù)據(jù)類(lèi)型后 直接寫(xiě)上關(guān)鍵字primarykey例10 10在數(shù)據(jù)庫(kù)usedb2中建立數(shù)據(jù)表map dept 同時(shí)定義主鍵約束 10 3使用約束 2 定義完所有列名和數(shù)據(jù)類(lèi)型后 單獨(dú)寫(xiě)明primarykey 列名1 列名2 例10 11在數(shù)據(jù)庫(kù)usedb1中建立數(shù)據(jù)表grade 表中包括學(xué)號(hào)sno char 課程號(hào)cno char 成績(jī)gmark numeric 屬性 主鍵由學(xué)號(hào)和課程號(hào)構(gòu)成 10 3使用約束 2 unique唯一性約束用于指定一個(gè)或者多個(gè)列的組合的值具有唯一性 以防止在列中輸入重復(fù)的值 當(dāng)使用唯一性約束時(shí) 需要考慮以下幾個(gè)因素 主鍵自動(dòng)具有unique的特性 一個(gè)表中可以允許有多個(gè)唯一性約束 可以把唯一性約束定義在多個(gè)字段上 唯一性約束用于強(qiáng)制在指定字段上創(chuàng)建一個(gè)唯一性索引 10 3使用約束 2 unique 1 企業(yè)管理器操作法 10 3使用約束 2 unique 2 Transact SQL語(yǔ)句操作法 CONSTRAINT約束名 UNIQUE 列名1 n 基本用法同主鍵約束 10 3使用約束 2 unique例10 12向數(shù)據(jù)庫(kù)usedb2中數(shù)據(jù)表mag dept屬性DepManager增加UNIQUE約束 10 3使用約束 3 foreignkey外部鍵約束用于強(qiáng)制參照完整性 提供單個(gè)字段或者多個(gè)字段的參照完整性 基本格式為 constraint約束名 foreignkey 列名1 列名2 references表名 列名1 列名2 10 3使用約束 3 foreignkey注意 1 使用createtable命令建表時(shí) 若隨著列的定義一同定義外鍵 則可以省略關(guān)鍵字foreignkey及列名 但使用altertable命令增加外部鍵時(shí)不行 2 定義外部鍵時(shí)要保證被定義為外鍵的屬性在參照表中已經(jīng)被定義為主鍵 10 3使用約束 3 foreignkey例10 13向數(shù)據(jù)庫(kù)MagDb中數(shù)據(jù)表mag emp的屬性DepId添加外鍵約束 10 3使用約束 3 foreignkey例10 14在數(shù)據(jù)庫(kù)usedb2中建立數(shù)據(jù)表mag emp 同時(shí)定義主鍵和外鍵 10 3使用約束 4 check一個(gè)列級(jí)檢查約束只能與限制的字段有關(guān) 一個(gè)表級(jí)檢查約束只能與限制的表中字段有關(guān) 一個(gè)表中可以定義多個(gè)檢查約束 每個(gè)CREATETABLE語(yǔ)句中每個(gè)字段只能定義一個(gè)檢查約束 在多個(gè)字段上定義檢查約束 則必須將檢查約束定義為表級(jí)約束 當(dāng)執(zhí)行INSERT語(yǔ)句或者UPDATE語(yǔ)句時(shí) 檢查約束將驗(yàn)證數(shù)據(jù) 10 3使用約束 4 check 1 企業(yè)管理器操作法 10 3使用約束 4 check 2 Transact SQL語(yǔ)句操作法 其語(yǔ)法形式如下 CONSTRAINT約束名 CHECK 邏輯表達(dá)式 10 3使用約束 4 check例10 15將數(shù)據(jù)庫(kù)MagDb中數(shù)據(jù)表mag emp的屬性EmpAge取值范圍限定在1 100之間 含1和100 并將此約束命名為ck age 10 3使用約束 4 check例子 創(chuàng)建一個(gè)學(xué)生信息表 其中輸入性別字段值時(shí) 只能接受 F 或者 M 并且為phonenum字段創(chuàng)建檢查約束 限制只能輸入類(lèi)似80798654之類(lèi)的數(shù)據(jù) 而不能隨意輸入其他數(shù)據(jù) createtablestudent idchar 8 namechar 8 sexchar 2 phonenumint constraintchk sexcheck sexin F M constraintchk phonenumcheck phonenumlike 0 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 10 3使用約束 5 default用于指定某個(gè)屬性的默認(rèn)值 當(dāng)數(shù)據(jù)表中的某一列具有大量相同數(shù)據(jù)時(shí) 為了減少數(shù)據(jù)錄入的工作量 可以指定默認(rèn)值 則該屬性自動(dòng)具有了數(shù)據(jù) 1 企業(yè)管理器中 10 3使用約束 5 default 2 T SQL語(yǔ)句定義default約束基本格式 constraint約束名 default常量表達(dá)式for字段名 10 3使用約束 5 default例10 16將數(shù)據(jù)庫(kù)MagDb中數(shù)據(jù)表mag emp的屬性EmpRole的默認(rèn)值指定為 編輯 10 3使用約束 5 default使用缺省約束時(shí) 應(yīng)該注意以下幾點(diǎn) 每個(gè)字段只能定義一個(gè)缺省約束 如果定義的缺省值長(zhǎng)于其對(duì)應(yīng)字段的允許長(zhǎng)度 那么輸入到表中的缺省值將被截?cái)?不能加入到帶有IDENTITY屬性的字段上 10 3使用約束 刪除約束語(yǔ)句格式 altertable表名dropconstraint約束名注意 定義約束的時(shí)候若省略了約束名 則要先查出系統(tǒng)自動(dòng)命名的約束名然后進(jìn)行刪除 10 3使用約束 刪除約束例10 17刪除數(shù)據(jù)庫(kù)usedb2中數(shù)據(jù)表mag dept屬性DepManager的UNIQUE約束 第10章數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表10 2修改數(shù)據(jù)庫(kù)表10 3使用約束10 4建立索引10 5刪除數(shù)據(jù)庫(kù)表 10 4建立索引 數(shù)據(jù)庫(kù)中的索引與書(shū)籍中的索引類(lèi)似 在一本書(shū)中 利用索引可以快速查找所需信息 無(wú)須閱讀整本書(shū) 在數(shù)據(jù)庫(kù)中 索引使數(shù)據(jù)庫(kù)程序無(wú)須對(duì)整個(gè)表進(jìn)行掃描 就可以在其中找到所需數(shù)據(jù) 書(shū)中的索引是一個(gè)詞語(yǔ)列表 其中注明了包含各個(gè)詞的頁(yè)碼 而數(shù)據(jù)庫(kù)中的索引是某個(gè)表中一列或者若干列值的集合和相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁(yè)的邏輯指針清單 10 4建立索引 索引的作用通過(guò)創(chuàng)建唯一索引 可以保證數(shù)據(jù)記錄的唯一性 可以大大加快數(shù)據(jù)檢索速度 可以加速表與表之間的連接 這一點(diǎn)在實(shí)現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義 10 4建立索引 索引的類(lèi)型聚集索引 clustered 是一種物理存儲(chǔ)方式一個(gè)數(shù)據(jù)表只能建立一個(gè)聚集索引非聚集索引 nonclustered 是一種邏輯存儲(chǔ)方式索引的次序并不影響數(shù)據(jù)的物理存儲(chǔ)順序一個(gè)數(shù)據(jù)表最多可以建立249個(gè)非聚集索引 10 4建立索引 創(chuàng)建索引的方法SQLServer2000創(chuàng)建索引的方法 1 用企業(yè)管理器直接創(chuàng)建索引 2 利用Transact SQL語(yǔ)句中的CREATEINDEX命令創(chuàng)建索引 10 4建立索引 用企業(yè)管理器直接創(chuàng)建索引 具體步驟如下 在企業(yè)管理器中 展開(kāi)指定的服務(wù)器和數(shù)據(jù)庫(kù) 選擇要?jiǎng)?chuàng)建索引的表 用右鍵單擊該表 從彈出的快捷菜單中選擇所有任務(wù)項(xiàng)的管理索引選項(xiàng) 10 4建立索引 用企業(yè)管理器直接創(chuàng)建索引 具體步驟如下 出現(xiàn)管理索引對(duì)話框 如圖所示 在該對(duì)話框中 可以選擇要處理的數(shù)據(jù)庫(kù)和表 管理索引對(duì)話框 10 4建立索引 用企業(yè)管理器直接創(chuàng)建索引 具體步驟如下 單擊 新建 按鈕 則出現(xiàn)新建索引對(duì)話框 如圖所示 3 選擇完成后單擊 確定 按鈕 即可生成新的索引 單擊 取消 按鈕 則取消新建索引的操作 10 4建立索引 利用Transact SQL語(yǔ)句中的CREATEINDEX命令創(chuàng)建索引 建立索引的語(yǔ)法為 create unique clustered nonclustered index索引名on表名 列名1 列名2 unique 惟一索引默認(rèn)情況下 創(chuàng)建的索引是非惟一的非聚集索引 必須先建立聚集索引 再建立非聚集索引 10 4建立索引 例10 18對(duì)數(shù)據(jù)表mag emp屬性EmpAge建立非惟一的非聚集索引age index 注意 1 當(dāng)數(shù)據(jù)表建立主鍵后 就自動(dòng)建立惟一聚集索引 2 數(shù)據(jù)表使用unique約束后 可自動(dòng)產(chǎn)生一個(gè)非聚集索引 10 4建立索引 創(chuàng)建索引時(shí)一般應(yīng)遵循以下原則經(jīng)常要查找的列經(jīng)常要按順序檢索的列經(jīng)常用于多個(gè)數(shù)據(jù)表連接的列經(jīng)常用于進(jìn)行統(tǒng)計(jì)計(jì)算 如求極值 求和等 的列 在查詢條件中頻繁使用的列如果一個(gè)列中只有幾個(gè)不同的數(shù)據(jù)值 或者被索引的列多于20個(gè)字節(jié)時(shí) 通常不應(yīng)該建立索引 10 4建立索引 刪除索引的語(yǔ)法Dropindex表名 索引名注意使用primarykey約束和unique約束建立的索引不能刪除 例10 19刪除索引age index 第10章數(shù)據(jù)庫(kù)表 10 1創(chuàng)建數(shù)據(jù)庫(kù)表10 2修改數(shù)據(jù)庫(kù)表10 3使用約束10 4建立索引10 5刪除數(shù)據(jù)庫(kù)表 10 5刪除數(shù)據(jù)庫(kù)表 刪除數(shù)據(jù)表的語(yǔ)法Droptable表名 例10 20刪除usedb2中數(shù)據(jù)表mag dept- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 創(chuàng)建 數(shù)據(jù)庫(kù) 原理
鏈接地址:http://zhongcaozhi.com.cn/p-5336750.html