




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
創(chuàng)建數(shù)據(jù)表及其約束創(chuàng)建數(shù)據(jù)表在數(shù)據(jù)庫中,數(shù)據(jù)表是最重要、最基本的操作對象,是數(shù)據(jù)存儲的基本單位。一個數(shù)據(jù)庫中可以包含一張或多張表,表是數(shù)據(jù)的集合,是用來存儲數(shù)據(jù)和操作數(shù)據(jù)的邏輯結(jié)構(gòu)。數(shù)據(jù)在表中是按照行和列的格式來組織排列的,每一行代表一條唯一的記錄,每一列代表記錄的一個屬性,稱為字段。在MySQL中,創(chuàng)建數(shù)據(jù)表的方法主要有兩種:1.在MySQL圖形化管理工具中實現(xiàn),如在Navicat中使用圖形界面化操作。2.在命令行管理工具中使用SQL語句實現(xiàn)。
本節(jié)內(nèi)容1.分析并設(shè)計數(shù)據(jù)表的結(jié)構(gòu)及約束2.使用圖形管理工具創(chuàng)建數(shù)據(jù)表3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表01任務(wù)3-1分析并設(shè)計數(shù)據(jù)表的結(jié)構(gòu)及約束1.分析并設(shè)計數(shù)據(jù)表的結(jié)構(gòu)及約束根據(jù)對學(xué)生成績管理數(shù)據(jù)庫studb功能的分析,在數(shù)據(jù)庫中設(shè)計了3張數(shù)據(jù)表,分別是學(xué)生表student、課程表course和成績表score,現(xiàn)要求為學(xué)生成績管理數(shù)據(jù)庫studb中的各個表設(shè)計邏輯結(jié)構(gòu)及約束?!救蝿?wù)分析】在創(chuàng)建表之前,應(yīng)該先確定各表的邏輯結(jié)構(gòu),也就是表中都有哪些字段,這些字段的名稱、數(shù)據(jù)類型及其長度,以及是否要使用約束或其他限制。
【任務(wù)描述】1.分析并設(shè)計數(shù)據(jù)表的結(jié)構(gòu)及約束1.分析學(xué)生成績管理數(shù)據(jù)庫studb中3張表(學(xué)生表student、課程表course和成績表score)中數(shù)據(jù)的特征,確定表中各字段的數(shù)據(jù)類型。
【任務(wù)實施】數(shù)據(jù)類型字段(列)名稱數(shù)值型整數(shù)學(xué)分(credit)、成績(grade)、學(xué)生所得學(xué)分(stu_credit)、序號(id)(自動遞增、無符號數(shù))字符型固定長度學(xué)號(sno)、課程編號(cno)可變長度姓名(sname)、系別(dept)、班級(class)、課程名稱(cname)、備注(remark)日期時間型出生日期(birthday) 枚舉型性別(sex)、考核類型(ctype)1.分析并設(shè)計數(shù)據(jù)表的結(jié)構(gòu)及約束2.設(shè)計表結(jié)構(gòu)及約束。根據(jù)分析好的數(shù)據(jù)類型,結(jié)合對數(shù)據(jù)完整性的要求,合理選擇主鍵、外鍵、唯一值、默認(rèn)值等約束,確定學(xué)生成績管理數(shù)據(jù)庫studb中3張表的邏輯結(jié)構(gòu)?!救蝿?wù)實施】字段名數(shù)據(jù)類型長度是否允許為空約束注釋snochar10否主鍵學(xué)號snamevarchar20否
姓名sexenum('男','女')
是默認(rèn)值為'男'性別birthdaydate
是
出生日期deptvarchar20是
系別classvarchar20是
班級學(xué)生表student的邏輯結(jié)構(gòu)1.分析并設(shè)計數(shù)據(jù)表的結(jié)構(gòu)及約束字段名數(shù)據(jù)類型長度是否允許為空約束注釋cnochar6否主鍵課程編號cnamevarchar20否
課程名稱ctypeenum('必修','選修')
是
考核類型credittinyint
是
學(xué)分remarkvarchar100是
備注字段名數(shù)據(jù)類型長度是否允許為空約束注釋idint(自動遞增、無符號數(shù))
否主鍵序號snochar10否外鍵(引用student表sno)學(xué)號cnochar6否外鍵(引用course表cno)課程編號gradetinyint
否
成績stu_credittinyint
是
學(xué)生該課程所獲學(xué)分課程表course的邏輯結(jié)構(gòu)成績表score的邏輯結(jié)構(gòu)02任務(wù)3-2使用圖形管理工具創(chuàng)建數(shù)據(jù)表2.使用圖形管理工具創(chuàng)建數(shù)據(jù)表根據(jù)任務(wù)3-1中學(xué)生表student表結(jié)構(gòu)的設(shè)計,使用圖形管理工具Navicat在studb數(shù)據(jù)庫中創(chuàng)建學(xué)生表student?!救蝿?wù)分析】數(shù)據(jù)庫創(chuàng)建以后,選定這個新創(chuàng)建的數(shù)據(jù)庫作為當(dāng)前默認(rèn)的數(shù)據(jù)庫,然后就可以在該數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表了。根據(jù)任務(wù)3-1中的分析和設(shè)計,學(xué)生表student中包括6個字段:學(xué)號字段sno,固定字符型,長度為10,主鍵,不允許為空值;姓名字段sname,可變長度字符型,長度為20,不允許為空值;性別字段sex,enum類型,值只能取“男”和“女”這兩個值之一,并且設(shè)置了默認(rèn)值為“男”;出生日期字段birthday,date類型,采用默認(rèn)長度;系別字段dept,可變長度字符型,長度為20;班級字段class,可變長度字符型,長度為20;在表設(shè)計窗口中可以分別設(shè)置各字段的參數(shù)并保存表結(jié)構(gòu)。
【任務(wù)描述】2.使用圖形管理工具創(chuàng)建數(shù)據(jù)表“新建表”——“添加字段”并設(shè)置參數(shù)——添加約束
【任務(wù)實施】2.使用圖形管理工具創(chuàng)建數(shù)據(jù)表【任務(wù)實施】操作演示03任務(wù)3-3使用CREATE
TABLE語句創(chuàng)建數(shù)據(jù)表3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表根據(jù)任務(wù)3-1中各表結(jié)構(gòu)的設(shè)計,使用CREAETABLE語句在studb數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)表。(1)在Navicat的命令列界面中,使用命令創(chuàng)建學(xué)生表student(sno,sname,sex,birthday,dept,class),設(shè)置學(xué)號字段sno為主鍵,學(xué)號字段sno、姓名字段sname不允許為空,性別字段sex為enum類型,默認(rèn)值為“男”。(2)在Navicat的查詢窗口中,使用命令創(chuàng)建課程表course(cno,cname,ctype,credit,remark),設(shè)置課程編號字段cno為主鍵,課程編號字段cno、課程名稱字段cname不允許為空,考核類型字段ctype為enum類型。(3)在Navicat的查詢窗口中,使用命令創(chuàng)建成績表score(id,sno,cno,grade,stu_credit),設(shè)置序號字段id為主鍵、自動增長、無符號數(shù),設(shè)置除stu_credit字段之外的所有字段都不允許為空。
【任務(wù)描述】3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表1.創(chuàng)建數(shù)據(jù)表使用CREATETABLE語句,其語法格式為:【任務(wù)分析】CREATETABLE[IFNOTEXISTS]<表名>(<字段名1>,<數(shù)據(jù)類型>[<列級別約束條件>][<默認(rèn)值>],<字段名2>,<數(shù)據(jù)類型>[<列級別約束條件>][<默認(rèn)值>][,<表級別約束條件>])[存儲引擎][表字符集];3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表語法說明:1)數(shù)據(jù)表的名稱不區(qū)分大小寫,必須符合MySQL標(biāo)識符的命名規(guī)則,不能使用SQL語言中的關(guān)鍵字。2)字段(列)定義包括指定名稱和數(shù)據(jù)類型,有的數(shù)據(jù)類型需要指定長度n,并用括號括起來。如果創(chuàng)建多個字段,要用半角逗號“,”分隔。3)IFNOTEXISTS:在創(chuàng)建數(shù)據(jù)表前加上一個判斷,則只有該表目前尚不存在時才執(zhí)行CREATETABLE命令,避免出現(xiàn)重復(fù)創(chuàng)建數(shù)據(jù)表的情況。4)列級別和表級別約束條件的約束效果相同,主要包括主鍵約束、外檢約束、非空約束、唯一約束和默認(rèn)值約束等。但是書寫位置不同,列級別約束直接跟在字段定義后面,而表級別約束是在所有字段定義結(jié)束后,用逗號與字段定義分開,作為獨立項定義的約束。5)存儲引擎、表字符集主要涉及表數(shù)據(jù)如何存儲,一般不必指定,采用默認(rèn)值即可?!救蝿?wù)分析】3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表2.創(chuàng)建數(shù)據(jù)表的同時定義約束:(1)定義主鍵約束1)在定義字段的同時指定一個字段為主鍵的語法格式為:2)在定義完所有字段之后指定一個字段為主鍵的語法格式為:3)在定義完所有字段之后指定多個字段組合主鍵的語法格式為:【任務(wù)分析】<字段名><數(shù)據(jù)類型>PRIMARYKEY[默認(rèn)值][CONSTRAINT<約束名>]PRIMARYKEY(<字段名>)[CONSTRAINT<主鍵約束名>]PRIMARYKEY(<字段名1>,<字段名2>,…<字段名N>)3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表(2)定義外鍵約束的語法格式為:(3)定義非空約束的語法格式為:(4)定義唯一約束在定義完字段之后直接指定唯一約束的語法格式為:在定義完所有字段之后指定唯一約束的語法格式為:【任務(wù)分析】[CONSTRAINT<外鍵約束名稱>]FOREIGNKEY(<字段名1>[,<字段名2>,…])REFERENCES<主表名>(<主鍵字段1>[,<主鍵字段2>,…])<字段名><數(shù)據(jù)類型>NOTNULL<字段名><數(shù)據(jù)類型>UNIQUE[CONSTRAINT<唯一約束名>]UNIQUE(<字段名>)3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表(5)定義默認(rèn)值約束的語法格式為:(6)定義字段值自動增長的語法格式為:【任務(wù)分析】<字段名><數(shù)據(jù)類型>DEFAULT<默認(rèn)值><字段名><數(shù)據(jù)類型>AUTO_INCREMENT3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表【任務(wù)實施】操作演示3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表1.在Navicat的命令列界面中,使用命令創(chuàng)建學(xué)生表student(sno,sname,sex,birthday,dept,class),設(shè)置學(xué)號字段sno為主鍵,學(xué)號字段sno、姓名字段sname不允許為空,性別字段sex為enum類型,默認(rèn)值為“男”。
【任務(wù)實施】①刪除任務(wù)3-2中創(chuàng)建的student數(shù)據(jù)表。②打開命令列界面,輸入并執(zhí)行如下命令語句創(chuàng)建學(xué)生表student。3.使用CREATETABLE語句創(chuàng)建數(shù)據(jù)表2.在Navicat的查詢窗口中,使用命令創(chuàng)建課程表course(cno,cname,ctype,credit,remark),設(shè)置課程編號字段cno為主鍵,課程編號字段cno、課程名稱字段cname不允許為空,考核類型字段ctype為enum類型。
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉庫庫存管理經(jīng)驗總結(jié)計劃
- 造價預(yù)算合同范本
- 充值優(yōu)惠合同范本
- 燒烤用工合同范本
- 13精衛(wèi)填海(教學(xué)設(shè)計)-2024-2025學(xué)年四年級上冊語文統(tǒng)編版
- 衢州高架百米樁施工方案
- 江西石雕噴水池施工方案
- 海南大學(xué)《虛擬制造與實踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 河北建材職業(yè)技術(shù)學(xué)院《高級臨床流行病學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025年幼兒園中班科學(xué)活動標(biāo)準(zhǔn)教案《動物之最》含反思
- 《離騷》PPT課堂大賽一等獎
- 潔凈廠房監(jiān)理實施細則
- 初三九年級下冊部編人教版歷史考試必背資料(2020最新版)
- 觀賞樹木的園林特性課件
- XX化工有限責(zé)任公司維保方案
- 冷作工工藝與技能訓(xùn)練(第三版)教學(xué)課件匯總整本書電子教案全套教學(xué)教程完整版電子教案(最新)
- 部編版六年級下冊語文課堂作業(yè)本答案
- 圖解2022年新制訂全面推進“大思政課”建設(shè)的工作方案學(xué)習(xí)解讀《全面推進“大思政課”建設(shè)的工作方案》課件
- 家譜樹形圖模板
- 文苑小學(xué)安全管理網(wǎng)絡(luò)圖0
- 2 遺傳圖繪制
評論
0/150
提交評論