MySQL數(shù)據(jù)庫 課件 2.1 數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)_第1頁
MySQL數(shù)據(jù)庫 課件 2.1 數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)_第2頁
MySQL數(shù)據(jù)庫 課件 2.1 數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)_第3頁
MySQL數(shù)據(jù)庫 課件 2.1 數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)_第4頁
MySQL數(shù)據(jù)庫 課件 2.1 數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

主講教師:姜云橋任務(wù)2.1數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)子項(xiàng)目2數(shù)據(jù)庫基礎(chǔ)開發(fā)任務(wù)背景學(xué)校要建立一個(gè)教學(xué)管理系統(tǒng)。根據(jù)需求分析,要求創(chuàng)建學(xué)生、課程、教師和系部等數(shù)據(jù)表來存儲(chǔ)數(shù)據(jù)。接下來,要建立數(shù)據(jù)庫,設(shè)計(jì)數(shù)據(jù)表的結(jié)構(gòu),并初始化相關(guān)表數(shù)據(jù)。任務(wù)目標(biāo)1.能創(chuàng)建和管理數(shù)據(jù)庫2.能創(chuàng)建和管理表知識(shí)目標(biāo)1.掌握創(chuàng)建數(shù)據(jù)庫方法2.掌握管理數(shù)據(jù)庫的方法3.掌握創(chuàng)建數(shù)據(jù)表的方法4.掌握管理數(shù)據(jù)表的方法能力目標(biāo)任務(wù)要求本任務(wù)將學(xué)習(xí)創(chuàng)建和管理數(shù)據(jù)庫、創(chuàng)建和管理表。在任務(wù)實(shí)施過程中,要特別注意表的規(guī)范化,要注意數(shù)據(jù)類型的正確選擇,還要注意數(shù)據(jù)庫和數(shù)據(jù)表字符集的統(tǒng)一問題。任務(wù)必備知識(shí)想一想MySQL創(chuàng)建數(shù)據(jù)庫的語句?任務(wù)必備知識(shí)2.1.1創(chuàng)建與管理數(shù)據(jù)庫使用CREATEDATABASE或CREATESCHEMA命令可以創(chuàng)建數(shù)據(jù)庫。其語法結(jié)構(gòu)如下:create{database|schema}[ifnotexists]db_name[charactersetcharset_name][collatecollation_name]任務(wù)必備知識(shí)2.1.1創(chuàng)建與管理數(shù)據(jù)庫CREATEDATABASE[IFNOTEXISTS]test1;CREATEDATABASEtest1;【任務(wù)2.1.1】創(chuàng)建數(shù)據(jù)庫test1任務(wù)必備知識(shí)mysql>createdatabasetest2->charactersetgb2312->collategb2312_chinese_ci;2.1.1創(chuàng)建與管理數(shù)據(jù)庫【任務(wù)2.1.2】創(chuàng)建數(shù)據(jù)庫test2庫,并指定字符集為gb2312任務(wù)必備知識(shí)(1)DEFAULTCHARACTERSET:指定數(shù)據(jù)庫的默認(rèn)字符集(Charset),charset_name為字符集名稱。COLLATE:指定字符集的校對(duì)規(guī)則,collation_name為校對(duì)規(guī)則名稱。(2)創(chuàng)建數(shù)據(jù)庫時(shí)最好指定字符集。(3)IFNOTEXISTS:如果已存在某個(gè)數(shù)據(jù)庫,再來創(chuàng)建一個(gè)同名的庫,這時(shí)會(huì)出現(xiàn)錯(cuò)誤信息。為避免錯(cuò)誤信息,可以在建庫前加上這一判斷,只有該庫目前尚不存在時(shí)才執(zhí)行CREATEDATABASE操作。分析與討論任務(wù)必備知識(shí)想一想MySQL中如何查看庫?任務(wù)必備知識(shí)2.1.2查看庫用SHOWDATABASES命令查看,輸出結(jié)果如圖所示。任務(wù)必備知識(shí)mysql>showdatabases;2.1.1創(chuàng)建與管理數(shù)據(jù)庫【任務(wù)2.1.3】查看MySQL中存在的所有數(shù)據(jù)庫任務(wù)必備知識(shí)mysql>showcreatedatabasetest2\G***************************1.row***************************Database:test2CreateDatabase:CREATEDATABASE`test2`/*!40100defaultCHARACTERsetgb2312*//*!80016defaultENCRYPTION='N'*/2.1.1創(chuàng)建與管理數(shù)據(jù)庫【任務(wù)2.1.4】查看數(shù)據(jù)庫test2的定義任務(wù)必備知識(shí)想一想如何選定并使用數(shù)據(jù)庫?任務(wù)必備知識(shí)2.1.3選定并使用數(shù)據(jù)庫創(chuàng)建完數(shù)據(jù)庫并不表示選定并使用它,必須明確地用命令指定,可通過use命令完成?!救蝿?wù)2.1.5】將當(dāng)前的數(shù)據(jù)庫切換為test2mysql>Usetest2;任務(wù)必備知識(shí)想一想如何修改庫字符集?任務(wù)必備知識(shí)2.1.4修改庫數(shù)據(jù)庫創(chuàng)建后,如果需要修改數(shù)據(jù)庫的參數(shù),可以使用ALTERDATABASE命令。語法格式如下:alterdatabasedb_namecharactersetcharset_namecollatecollation_name任務(wù)必備知識(shí)mysql>alterdatabasetest2->charactersetutf8mb4->collateutf8mb4_0900_ai_ci;【任務(wù)2.1.6】將test2庫修改字符集為utf8mb4,校對(duì)規(guī)則為utf8mb4_0900_ai_ci2.1.4修改庫任務(wù)必備知識(shí)想一想如何刪除數(shù)據(jù)庫?任務(wù)必備知識(shí)當(dāng)數(shù)據(jù)庫不再需要時(shí),我們可以使用dropdatabase命令刪除。語法格式如下:dropdatabase[ifexists]db_name2.1.5刪除庫任務(wù)必備知識(shí)mysql>dropdatabasetest1;刪除數(shù)據(jù)庫的時(shí)候,如果希望數(shù)據(jù)庫存在則刪除,不存在則忽略,需要添加ifexists:mysql>dropdatabaseifexiststest1;【任務(wù)2.1.7】刪除test1庫2.1.5刪除庫任務(wù)必備知識(shí)數(shù)據(jù)庫創(chuàng)建之后,數(shù)據(jù)庫是空的,是沒有表的,可以用SHOWTABLES命令查看。表決定了數(shù)據(jù)庫的結(jié)構(gòu),表是存放數(shù)據(jù)的地方,一個(gè)庫需要什么表,各數(shù)據(jù)庫表中有什么樣的列,是要合理設(shè)計(jì)的。任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表創(chuàng)建教師表teacher,結(jié)構(gòu)如表所示【任務(wù)2.1.8】創(chuàng)建教師表teacher任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表mysql>createtableifnotexiststeacher->(->t_no char(6)primarykeycomment'教師編號(hào)',->t_name varchar(20) comment'教師姓名',->d_no char(4) comment'院系編號(hào)'->);【任務(wù)2.1.8】創(chuàng)建教師表teacher任務(wù)必備知識(shí)(1)char和varchar都用來表示字符串類型,那這兩者有何區(qū)別,應(yīng)該如何選擇?(2)主鍵primarykey如何設(shè)置?分析與討論任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表創(chuàng)建院系表department,結(jié)構(gòu)如表所示【任務(wù)2.1.9】創(chuàng)建院系表department任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表mysql>createtableifnotexistsdepartment->(->d_no char(4)primarykey comment'院系編號(hào)',->d_name varchar(20)notnulluniquecomment'院系名稱'->);【任務(wù)2.1.9】創(chuàng)建院系表department任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表創(chuàng)建課程表course,結(jié)構(gòu)如表所示【任務(wù)2.1.10】創(chuàng)建課程表course任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表mysql>createtableifnotexistscourse->(->c_no char(4) primarykey comment'課程號(hào)',->c_name varchar(20) notnull comment'課程名',->c_periodtinyintunsignednotnull comment'學(xué)時(shí)',->c_credittinyintunsigned notnull comment'學(xué)分',->c_typeenum('必修課','選修課')default'必修課'comment'課程類型'->);【任務(wù)2.1.10】創(chuàng)建課程表course任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表創(chuàng)建表student,結(jié)構(gòu)如表所示【任務(wù)2.1.11】創(chuàng)建表student任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表mysql>createtableifnotexistsstudent->(->s_no char(6) primarykey comment'學(xué)號(hào)',->s_name varchar(20) notnull comment'姓名',->s_sex enum('男','女')notnulldefault'男' comment'性別',->s_birth date notnull comment'出生日期',->s_address varchar(50) notnull comment'家庭地址',->s_phone char(11) comment'聯(lián)系電話',->s_photo blob comment'照片',->d_no char(4) comment'系部編號(hào)',->foreignkey(d_no)referencesdepartment(d_no)->);【任務(wù)2.1.11】創(chuàng)建表student任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表創(chuàng)建成績表score,結(jié)構(gòu)如表所示【任務(wù)2.1.12】創(chuàng)建表score任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表mysql>createtableifnotexistsscore->(->s_no char(4) notnull comment'學(xué)號(hào)',->c_no char(4) notnull comment'課程號(hào)',->mark decimal(4,1) comment'成績',->->primarykey(s_no,c_no),->foreignkey(s_no)referencesstudent(s_no),->foreignkey(c_no)referencescourse(c_no)->);【任務(wù)2.1.12】創(chuàng)建表score任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表創(chuàng)建成績表teach,結(jié)構(gòu)如表所示【任務(wù)2.1.13】創(chuàng)建授課表teach任務(wù)必備知識(shí)2.1.6創(chuàng)建數(shù)據(jù)表mysql>createtableifnotexiststeach->(->id intunsignedprimarykeyauto_incrementcomment'標(biāo)識(shí)',->t_nochar(8) NOTnull comment'教師編號(hào)',->c_nochar(4) comment'課程編號(hào)'->);【任務(wù)2.1.13】創(chuàng)建授課表teach任務(wù)必備知識(shí)想一想如何查看表?表結(jié)構(gòu)?任務(wù)必備知識(shí)2.1.7查看表mysql>showtables;輸出結(jié)果如圖所示?!救蝿?wù)2.1.14】查詢已創(chuàng)建的表創(chuàng)建了數(shù)據(jù)表后,現(xiàn)在能用SHOWTABLES查詢已創(chuàng)建的表的情況。任務(wù)必備知識(shí)2.1.7查看表mysql>descteacher;【任務(wù)2.1.15】查看teacher表的結(jié)構(gòu)任務(wù)必備知識(shí)2.1.7查看表mysql>showcreatetableteacher\G***************************1.row***************************Table:teacherCreateTable:CREATETABLE`teacher`(`t_no`char(8)NOTnullCOMMENT'教師編號(hào)',`t_name`varchar(20)DEFAULTnullCOMMENT'教師姓名',`d_no`char(4)DEFAULTnullCOMMENT'院系編號(hào)',PRIMARYKEY(`t_no`))ENGINE=InnoDBDEFAULTCHARset=utf8mb4COLLATE=utf8mb4_0900_ai_ci【任務(wù)2.1.16】查看teacher的定義任務(wù)必備知識(shí)想一想如何修改表?(增加或刪減列、重新命名列或表,修改默認(rèn)字符集)?任務(wù)必備知識(shí)2.1.8修改表mysql>altertablestudentrenamestudent_new;altertable用于更改原有表的結(jié)構(gòu),包含重命名、增加、刪除、修改等?!救蝿?wù)2.1.17】將表student重名為student_new【任務(wù)2.1.18】將student表中的s_birth字段重命名為s_s_birthmysql>altertablestudentrenamecolumns_birthtos_s_birth;任務(wù)必備知識(shí)2.1.8修改表mysql>altertablestudent->add‘入學(xué)日期’datenotnulldefault'2014-9-1'afters_sex;【任務(wù)2.1.19】給student表的s_sex列后增加一列“入學(xué)日期”,并定義其默認(rèn)值為'2014-9-1'任務(wù)必備知識(shí)2.1.8修改表mysql>altertableteachaddforeignkey(t_no)referencesteacher(t_no);【任務(wù)2.1.20】為表teach的t_no字段添加外鍵,其參考表teacher的t_no字段任務(wù)必備知識(shí)2.1.8修改表mysql>altertablescoreaddcheck(markbetween0and100);【任務(wù)2.1.21】為score表中的mark字段添加檢查約束(mark大于等于0小于等于100)任務(wù)必備知識(shí)2.1.8修改表mysql>altertablestudent2dropcolumn‘入學(xué)日期’【任務(wù)2.1.22】刪除student表中的“入學(xué)日期”字段任務(wù)必備知識(shí)2.1.8修改表首先通過showcreatetable命令查看約束名稱:mysql>showcreatetablescore\G***************************1.row***************************Table:scoreCreateTable:CREATETABLE`score`(`s_no`char(4)NOTnullCOMMENT'學(xué)號(hào)',`c_no`char(4)NOTnullCOMMENT'課程號(hào)',`mark`decimal(4,1)DEFAULTnullCOMMENT'成績',PRIMARYKEY(`s_no`,`c_no`),【任務(wù)2.1.23】刪除score表中的check約束任務(wù)必備知識(shí)2.1.8修改表KEY`c_no`(`c_no`),CONSTRAINT`score_ibfk_1`FOREIGNKEY(`s_no`)REFERENCES`student`(`s_no`),CONSTRAINT`score_ibfk_2`FOREIGNKEY(`c_no`)REFERENCES`course`(`c_no`),CONSTRAINT`score_chk_1`CHECK((`mark`between0and100)))ENGINE=InnoDBDEFAULTCHARset=utf8mb4COLLATE=utf8mb4_0900_ai_ci查詢到約束的名稱為score_chk_1,通過該名稱刪除約束:mysql>altertablescoredropcheckscore_chk_1;【任務(wù)2.1.23】刪除score表中的check約束任務(wù)必備知識(shí)2.1.8修改表mysql>altertablestudentmodifys_sexenum('男','女')default'女';【任務(wù)2.1.24】修改表student的s_sex列的默認(rèn)值為女任務(wù)必備知識(shí)2.1.8修改表mysql>altertablestudent1modifys_nochar(8);【任務(wù)2.1.25】修改student表中字段s_no的數(shù)據(jù)類型為char(8)任務(wù)必備知識(shí)2.1.9復(fù)制表可以通過createtable命令復(fù)制表的結(jié)構(gòu)和數(shù)據(jù),語法格式:createtable[ifnotexists]tbl_name[likeold_tbl_name|asselect_statement];mysql>createtableteacher_newliketeacher;【任務(wù)2.1.26】基于teacher表創(chuàng)建teacher_new表,其結(jié)構(gòu)和teacher表相同任務(wù)必備知識(shí)mysql>createtableteacher_copyasselect*fromteacher;【任務(wù)

溫馨提示

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

評(píng)論

0/150

提交評(píng)論