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頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

教案首頁課程名稱MySQL數(shù)據(jù)庫開發(fā)本節(jié)課題任務(wù)2.1數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)授課方式理實一體化教學(xué)參考及教具姜云橋主編.MySQL數(shù)據(jù)庫開發(fā).臨科院:教務(wù)處,2023計算機MySQL數(shù)據(jù)庫軟件多媒體教學(xué)系統(tǒng)資料包教學(xué)目標(biāo)及基本要求掌握創(chuàng)建數(shù)據(jù)庫方法掌握管理數(shù)據(jù)庫的方法掌握創(chuàng)建數(shù)據(jù)表的方法掌握管理數(shù)據(jù)表的方法能創(chuàng)建和管理數(shù)據(jù)庫能創(chuàng)建和管理表培養(yǎng)學(xué)生表達能力教學(xué)重點教學(xué)難點創(chuàng)建數(shù)據(jù)庫、創(chuàng)建數(shù)據(jù)表、管理數(shù)據(jù)庫、管理數(shù)據(jù)表創(chuàng)建和管理表教學(xué)小結(jié)作業(yè)及要求按照任務(wù)書做好預(yù)習(xí)任務(wù)創(chuàng)建和管理表教后反思

教案用紙教學(xué)內(nèi)容、方法和過程附記任務(wù)2.1數(shù)據(jù)庫的創(chuàng)建與數(shù)據(jù)表的開發(fā)導(dǎo)入:學(xué)院的教學(xué)系統(tǒng),可以查到那些數(shù)據(jù)?我們根據(jù)需求分析,要求創(chuàng)建學(xué)生、課程、教師和系部等數(shù)據(jù)表來存儲數(shù)據(jù)?!救蝿?wù)背景】 S學(xué)校要建立一個教學(xué)管理系統(tǒng)。根據(jù)需求分析,要求創(chuàng)建學(xué)生、課程、教師和系部等數(shù)據(jù)表來存儲數(shù)據(jù)。接下來,要建立數(shù)據(jù)庫,設(shè)計數(shù)據(jù)表的結(jié)構(gòu),并初始化相關(guān)表數(shù)據(jù)?!救蝿?wù)要求】本任務(wù)將學(xué)習(xí)創(chuàng)建和管理數(shù)據(jù)庫、創(chuàng)建和管理表。在任務(wù)實施過程中,要特別注意表的規(guī)范化,要注意數(shù)據(jù)類型的正確選擇,還要注意數(shù)據(jù)庫和數(shù)據(jù)表字符集的統(tǒng)一問題。【任務(wù)必備知識】2.1.1創(chuàng)建數(shù)據(jù)庫的語句 使用CREATEDATABASE或CREATESCHEMA命令可以創(chuàng)建數(shù)據(jù)庫。 其語法結(jié)構(gòu)如下。CREATEDATABASE[IFNOTEXISTS]db_name;【任務(wù)2.1】創(chuàng)建數(shù)據(jù)庫test1。mysql>CREATEDATABASE[IFNOTEXISTS]test1;【任務(wù)2.2】創(chuàng)建數(shù)據(jù)庫test2庫,并指定字符集為gb2312。mysql>CREATEDATABASETEST2。 DEFAULTCHARACTERSETgb2312。 COLLATEgb2312_chinese_ci。分析與討論(1)DEFAULTCHARACTERSET:指定數(shù)據(jù)庫的默認(rèn)字符集(Charset),charset_name為字符集名稱。COLLATE:指定字符集的校對規(guī)則,collation_name為校對規(guī)則名稱。(2)創(chuàng)建數(shù)據(jù)庫時最好指定字符集。(3)IFNOTEXISTS:如果已存在某個數(shù)據(jù)庫,再來創(chuàng)建一個同名的庫,這時會出現(xiàn)錯誤信息。為避免錯誤信息,可以在建庫前加上這一判斷,只有該庫目前尚不存在時才執(zhí)行CREATEDATABASE操作。2.1.2查看庫用SHOWDATABASES命令查看,輸出結(jié)果如圖2.1所示。圖2.1運行結(jié)果創(chuàng)建數(shù)據(jù)庫并不表示選定并使用它,必須明確地操作。為了使test1成為當(dāng)前的數(shù)據(jù)庫,使用如下命令。 mysql>Usetest1;2.1.3修改庫數(shù)據(jù)庫創(chuàng)建后,如果需要修改數(shù)據(jù)庫的參數(shù),可以使用ALTERDATABASE命令?!救蝿?wù)2.3】將test1庫修改字符集為gb2312,校對原則為gb2312_chinese_cimysql>ALTER

DATABASE

test1

DEFAULT

CHARACTER

SET

gb2312

COLLATE

gb2312_chinese_cimysql>ALTER

DATABASE

jxgl

DEFAULT

CHARACTER

SET

gb2312

COLLATE

gb2312_chinese_ci2.1.4刪除庫已經(jīng)創(chuàng)建的數(shù)據(jù)庫,如果需要刪除,可使用DROPDATABASE命令。語法格式: DROPDATABASE[IFEXISTS]db_name【任務(wù)2.4】刪除test1庫。mysql>DROPDATABASEtest1;特別要注意,刪除了數(shù)據(jù)庫,數(shù)據(jù)庫里的所有表也同時被刪除。因此,最好先對數(shù)據(jù)庫做好備份,然后再執(zhí)行刪除操作。學(xué)習(xí)行動1創(chuàng)建數(shù)據(jù)庫JXGL設(shè)置庫字符集為gb2312校對原則為gb2312_chinese_ci查看mysql>CREATEDATABASEJXGL DEFAULTCHARACTERSETgb2312 COLLATEgb2312_chinese_ci2.2創(chuàng)建與管理表數(shù)據(jù)庫創(chuàng)建之后,數(shù)據(jù)庫是空的,是沒有表的,可以用SHOWTABLES命令查看。mysql>SHOWTABLES; Emptyset(0.00sec)2.2.1創(chuàng)建表表決定了數(shù)據(jù)庫的結(jié)構(gòu),表是存放數(shù)據(jù)的地方,一個庫需要什么表,各數(shù)據(jù)庫表中有什么樣的列,是要合理設(shè)計的。創(chuàng)建表的語法如下。教學(xué)示例數(shù)據(jù)庫為學(xué)生管理系統(tǒng)(JXGL),在這個庫中要設(shè)計6張表:STUDENTS(學(xué)生信息表)、course(課程表)、score(成績表)、departments(院系單位表)、teachers(教師表)和teach(講授表)?!救蝿?wù)2.5】創(chuàng)建表teachers。表2.5teachersmysql>createtableifnotexiststeacher->(->t_no char(6)primarykeycomment'教師編號',->t_name varchar(20) comment'教師姓名',->d_no char(4) comment'院系編號'->);分析與討論(1)關(guān)于設(shè)置主鍵。PRIMARYKEY表示設(shè)置該字段為主鍵。如在STUDENTS表中,PRIMARYKEY(s_no)表示將s_no字段定義為主鍵。(2)添加注釋。COMMENT'學(xué)號'表示對“s_no”字段增加注釋為“學(xué)號”。(3)如果沒有指定是NULL或是NOTNULL,則列在創(chuàng)建時假定為NULL。【任務(wù)2.6】創(chuàng)建表departments。mysql>CREATETABLEIFNOTEXISTSdepartments D_NOchar(8)NOTNULLCOMMENT'院系編號', D_NAMEchar(8)NOTNULLCOMMENT'院系名稱', PRIMARYKEY(D_NO) ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任務(wù)2.7】創(chuàng)建表STUDENTS。mysql>CREATETABLEIFNOTEXISTSSTUDENTS s_nochar(4)NOTNULLCOMMEN'學(xué)號', s_namechar(4)NOTNULLCOMMENT'姓名',sexENUM('男','女')DEFAULT'男'COMMENT'性別', birthdaydateNOTNULLCOMMENT'出生日期', d_novarchar(4)NOTNULLCOMMENT'所在系部',addressvarchar(20)NOTNULLCOMMENT'家庭地址', phonevarchar(12)NOTNULLCOMMENT'聯(lián)系電話', photoblobCOMMENT'照片', PRIMARYKEY(s_no)ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任務(wù)2.8】創(chuàng)建表course。mysql>CREATETABLEIFNOTEXISTScourse c_nochar(4)NOTNULL, c_namechar(10)NOTNULL, d_nochar(10)NOTNULL,hoursint(11)NOTNULL, creditint(11)NOTNULL, typeEMUN('必修課','選修課')DEFAULT'必修課', PRIMARYKEY(c_no) ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任務(wù)2.9】創(chuàng)建表score。mysql>CREATETABLEIFNOTEXISTSscore s_nochar(8)NOTNULL, c_nochar(4)NOTNULL, reportfloat(3,1)DEFAULT0, PRIMARYKEY(s_no,c_no)ENGINE=InnoDBDEFAULTCHARSET=gb2312;【任務(wù)2.10】創(chuàng)建表teach。mysql>CREATETABLEIFNOTEXISTSteach t_novarchar(8)NOTNULL, c_novarchar(8)NOTNULL, KEYt_no(t_no), KEYc_no(c_no)ENGINE=InnoDBDEFAULTCHARSET=gb2312;分析與討論(1)關(guān)于設(shè)置主鍵。PRIMARYKEY表示設(shè)置該字段為主鍵。如在STUDENTS表中,PRIMARYKEY(s_no)表示將s_no字段定義為主鍵。在score表中,PRIMARYKEY(s_no,c_no)表示把s_no、c_no兩個字段一起作為復(fù)合主鍵。(2)添加注釋。COMMENT'學(xué)號'表示對“s_no”字段增加注釋為“學(xué)號”。(3)字段類型的選擇。SEXENUM('男','女')表示sex字段的字段類型是ENUM,取值范圍為'男'和'女'。對于取值固定的字段可以設(shè)置數(shù)據(jù)類型為ENUM。例如,在course表的type字段表示的是課程的類型,一般是固定的幾種類型。因此,可以把該字段的定義寫成:typeENUM('必修課',‘選修課')DEFAULT'必修課'。(4)默認(rèn)值的設(shè)置。DEFAULT'男'表示默認(rèn)值為“男”。(5)設(shè)置精度。Score表中的reportfloat(5,1)表示精度為6,小數(shù)位1位。(6)“ENGINE=InnoDB”表示采用的存儲引擎是InnoDB,InnoDB是MySQL在Windows平臺默認(rèn)的存儲引擎,所以“ENGINE=InnoDB”可以省略。(7)DEFAULTCHARSET=gb2312表示表的字符集是gb2312。(8)如果沒有指定是NULL或是NOTNULL,則列在創(chuàng)建時假定為NULL。(9)設(shè)置自動增量。一個整數(shù)列可以擁有一個附加屬性AUTO_INCREMENT。AUTO_INCREMENT序列從一般1開始,也可以自定義開始值。這樣的列必須被定義為一種整數(shù)類型??梢酝ㄟ^AUTO_INCREMENT屬性為新的行產(chǎn)生唯一的標(biāo)識。2.2.2查看表創(chuàng)建了數(shù)據(jù)表后,現(xiàn)在再用SHOWTABLES查詢已創(chuàng)建的表的情況。mysql>SHOWTABLES; 輸出結(jié)果如圖2.2所示。圖2.2運行結(jié)果用命令查看teachers的結(jié)構(gòu)。 mysql>DESCteachers; 程序執(zhí)行結(jié)果如圖2.2.3修改表ALTERTABLE用于更改原有表的結(jié)構(gòu)。例如,可以增加或刪減列、重新命名列或表,還可以修改默認(rèn)字符集?!救蝿?wù)2.12】在STUDENTS表的photo列后面增加一列speciality。mysql>ALTER

TABLE

STUDENTS ADD

speciality

VARCHAR(5)

NOT

NULL

AFTER

photo;【任務(wù)2.13】給STUDENTS表的birthday列后增加一列“入學(xué)日期”,并定義其默認(rèn)值為'2015-9-11'。mysql>ALTERTABLESTUDENTS ADD`入學(xué)日期`dateNOTNULLDEFAULT'2015-9-11'AFTERbirthday;mysql>ALTERTABLESTUDENTSADD入學(xué)日期dateNOTNULLDEFAULT'2015-9-11'AFTERbirthday【任務(wù)2.14】修改表STUDENTS的sex列的默認(rèn)值為女。mysql>altertablestudentschangesex`性別`char(2)notnulldefault'女';altertablestudentschangesexsexchar(2)notnulldefault'女';altertablestudentschangesex`性別`char(2)notnulldefault'女';【任務(wù)2.15】刪除STUDENTS表的入學(xué)日期列的默認(rèn)值。ALTERTABLESTUDENTSALTER`入學(xué)日期`DROPDEFAULT;ALTERTABLESTUDENTSALTER`入學(xué)日期`DROPDEFAULT;【任務(wù)2.16】將表STUDENTS重名為學(xué)生表。mysql>ALTERTABLESTUDENTSrename‘學(xué)生表’;ALTERTABLESTUDENTSrename‘學(xué)生表’【任務(wù)2.17】修改course表的字符集為utf8。altertablecourseconverttocharactersetutf8collateutf8_general_cialtertablecourseconverttocharactersetutf8collateutf8_general_ci2.2.4復(fù)制表可以通過CREATETABLE命令復(fù)制表的結(jié)構(gòu)和數(shù)據(jù)。語法格式: CREATE[TEMPORARY]TABLE[IFNOTEXISTS]tbl_name [()LIKEold_tbl_name[]] |[AS(select_statement)] ;【任務(wù)2.18】創(chuàng)建一個表STUDENTS的附表STUDENTS1。mysql>CREATETABLESTUDENTS1LIKE學(xué)生表;CREATETABLESTUDENTS1LIKE學(xué)生表【任務(wù)2.19】用命令查看STUDENTS1的結(jié)構(gòu)。 mysql>DESCSTUDENTS1; 程序執(zhí)行結(jié)果如圖【任務(wù)2.20】復(fù)制表STUDENTS的結(jié)構(gòu)和數(shù)據(jù),

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論