《MySQL數(shù)據(jù)庫原理與應用案例教程》 課件 項目4 創(chuàng)建與管理數(shù)據(jù)表_第1頁
《MySQL數(shù)據(jù)庫原理與應用案例教程》 課件 項目4 創(chuàng)建與管理數(shù)據(jù)表_第2頁
《MySQL數(shù)據(jù)庫原理與應用案例教程》 課件 項目4 創(chuàng)建與管理數(shù)據(jù)表_第3頁
《MySQL數(shù)據(jù)庫原理與應用案例教程》 課件 項目4 創(chuàng)建與管理數(shù)據(jù)表_第4頁
《MySQL數(shù)據(jù)庫原理與應用案例教程》 課件 項目4 創(chuàng)建與管理數(shù)據(jù)表_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《MySQL數(shù)據(jù)庫項目化教程》項目4創(chuàng)建與管理數(shù)據(jù)表數(shù)據(jù)表是數(shù)據(jù)庫的重要組成部分,每一個數(shù)據(jù)庫主要由若干個數(shù)據(jù)表組成的。本項目通過典型任務了解常用的數(shù)據(jù)類型,會使用完整性約束條件保證數(shù)據(jù)完整性,學習如何創(chuàng)建數(shù)據(jù)表,查看數(shù)據(jù)表,以及對數(shù)據(jù)表的管理,包括對數(shù)據(jù)表進行更名,修改數(shù)據(jù)表結構和刪除數(shù)據(jù)表等操作。前言了解常用的數(shù)據(jù)類型。了解數(shù)據(jù)表的完整性約束條件。掌握數(shù)據(jù)表的創(chuàng)建、查看、修改與刪除操作。掌握如何為數(shù)據(jù)表添加外鍵約束和刪除外鍵約束。學習目標知識重點數(shù)據(jù)表的創(chuàng)建與查看。數(shù)據(jù)表的修改與刪除。知識難點數(shù)據(jù)表的完整性約束條件。知識重點與難點創(chuàng)建數(shù)據(jù)表和約束任務1任務2維護數(shù)據(jù)表學習任務外鍵約束任務3創(chuàng)建數(shù)據(jù)表和約束任務1任務描述任務目標任務分析任務實施123知識鏈接45

按要求在數(shù)據(jù)庫chjgl_db中創(chuàng)建tb_course(課程表)、tb_student(學生表)和tb_grade(成績表)三個數(shù)據(jù)表。數(shù)據(jù)表結構如表4-1至表4-3所示。任務描述任務描述任務描述(1)了解常用的數(shù)據(jù)類型。(2)會創(chuàng)建數(shù)據(jù)表。(3)會查看數(shù)據(jù)表。(4)會使用完整性約束條件保證數(shù)據(jù)完整性。(5)幫助學生養(yǎng)成冷靜而有條不紊地完成工作的習慣。任務目標了解數(shù)據(jù)類型、數(shù)據(jù)完整性約束,依據(jù)創(chuàng)建數(shù)據(jù)表、查看數(shù)據(jù)表的基本語法格式,選擇相應的可選參數(shù)項,完成各個數(shù)據(jù)表的創(chuàng)建與查看。任務分析數(shù)據(jù)類型數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表SQL語句的注釋方法任務實施查看數(shù)據(jù)表結構步驟1創(chuàng)建tb_course數(shù)據(jù)表并查看表結構(1)創(chuàng)建數(shù)據(jù)表:tb_course數(shù)據(jù)表mysql>#指定當前數(shù)據(jù)庫為chjgl_dbmysql>usechjgl_db;mysql>/*多行注釋案例/*>以下為創(chuàng)建數(shù)據(jù)表tb_course的語句*/mysql>createtabletb_course->(idintprimarykeyauto_increment,--id字段為主鍵->cnovarchar(20)uniquenotnull,->cnamevarchar(20)notnull->);任務實施結果信息顯示“QueryOK,0rowsaffected(1.79sec)”表示數(shù)據(jù)表創(chuàng)建成功。執(zhí)行結果顯示如圖所示。任務實施小貼士:(1)在創(chuàng)建數(shù)據(jù)表以及對數(shù)據(jù)表進行操作前,需要使用use語句先指定當前的數(shù)據(jù)庫。(2)任何語言都會有注釋,代碼量越多,注釋的重要性也就越明顯。(2)查看tb_course數(shù)據(jù)表結構mysql>desctb_course;執(zhí)行結果顯示如所示。執(zhí)行結果以表格的形式來展示數(shù)據(jù)表的字段信息,包括字段名(Field)、字段數(shù)據(jù)類型(Type)、是否為空(Null)、是否為主鍵(key)、是否有默認值(Default)、獲取到的與給定字段相關的附加信息(Extra)任務實施步驟2創(chuàng)建tb_student數(shù)據(jù)表并查看表結構(1)創(chuàng)建數(shù)據(jù)表:tb_student表mysql>createtabletb_student->(->idintprimarykeyauto_increment,->snovarchar(20)uniquenotnull,->snamevarchar(20)notnull,->spasswordvarchar(10)default'000000',->ssexchar(4)notnulldefault'男',->sspecialtyvarchar(20),->sbirthdaydate,任務實施->shomevarchar(50),->semailvarchar(20),->stelenovarchar(20),->smobnovarchar(20),->smemovarchar(50)->);執(zhí)行結果顯示如圖所示。任務實施(2)查看tb_student數(shù)據(jù)表結構mysql>desctb_student;執(zhí)行結果顯示如圖所示。任務實施步驟3創(chuàng)建tb_grade數(shù)據(jù)表并查看數(shù)據(jù)表創(chuàng)建語句的SQL信息(1)創(chuàng)建數(shù)據(jù)表:tb_grade數(shù)據(jù)表mysql>createtabletb_grade->(->idintprimarykeyauto_increment,->snovarchar(20),->cnovarchar(20),->tnovarchar(20),->usualgradefloat,->check(usualgrade>=0andusualgrade<=100),->termgradefloat,

任務實施->check(termgrade>=0andtermgrade<=100),->totalgradefloat,->check(totalgrade>=0andtotalgrade<=100)->);執(zhí)行結果顯示如圖所示。任務實施(2)查看tb_grade數(shù)據(jù)表創(chuàng)建語句的SQL信息,SQL語句為:mysql>showcreatetabletb_grade\G;任務實施執(zhí)行結果顯示如圖所示。結果顯示,tb_grade數(shù)據(jù)表的定義信息顯示了出來,參數(shù)“\G”使顯示結果整齊美觀注釋在SQL語句中用來標識說明或者注意事項的部分,對SQL的執(zhí)行沒有任何影響。注釋內容中無論是英文字母還是漢字都可以隨意使用。MySQL注釋分為單行注釋和多行注釋。(1)單行注釋單行注釋可以使用“#”注釋符,“#”注釋符后直接加注釋內容。mysql>#指定當前數(shù)據(jù)庫為mysqlmysql>usemysql;單行注釋也可以使用“--”注釋符,“--”注釋符后需要加一個空格,再加注釋內容。mysql>--指定當前數(shù)據(jù)庫為sysmysql>usesys;知識鏈接——SQL語句的注釋方法(2)多行注釋多行注釋使用“/**/”注釋符?!?*”用于注釋內容的開頭,“*/”用于注釋內容的結尾。mysql>/*多行注釋案例/*>指定當前數(shù)據(jù)庫為mysql*/mysql>usemysql;知識鏈接——SQL語句的注釋方法數(shù)據(jù)類型(data_type)是指系統(tǒng)中所允許的數(shù)據(jù)的類型。MySQL數(shù)據(jù)類型定義了字段中可以存儲什么數(shù)據(jù)以及該數(shù)據(jù)怎樣存儲的規(guī)則。數(shù)據(jù)庫中的每個字段都應該有適當?shù)臄?shù)據(jù)類型,用于限制或允許該字段中存儲的數(shù)據(jù)。例如,列中存儲的為數(shù)字,則相應的數(shù)據(jù)類型應該為數(shù)值類型。MySQL常用的數(shù)據(jù)類型分為三類,分別是數(shù)字類型、日期/時間類型、字符串類型。1.數(shù)字類型在MySQL中,數(shù)字類型分為整數(shù)類型和小數(shù)類型。(1)整數(shù)類型在MySQL中,整數(shù)類型包括tinyint、smallint、mediumint、int、bigint,每種整數(shù)類型所需的存儲和范圍見表4-4所示。知識鏈接——數(shù)據(jù)類型知識鏈接——數(shù)據(jù)類型(2)小數(shù)類型小數(shù)類型分為浮點數(shù)類型和定點數(shù)類型,浮點數(shù)類型包括float(單精度浮點數(shù))和double(雙精度浮點數(shù))。代表近似數(shù)字數(shù)據(jù)值。MySQL對于float使用四個字節(jié),對于double使用八個字節(jié)。定點數(shù)類型decimal和numeric,用于存儲精確的數(shù)值數(shù)據(jù)。在保持精確精度很重要時使用這些類型,例如使用貨幣數(shù)據(jù)。在MySQL中,numeric等同于decimal。在decimal聲明中,通常指定精度和小數(shù)位數(shù)。聲明格式為:DECIMAL(M,D)其中,M是精度,表示值存儲的有效位數(shù),D是標度,表示小數(shù)點后小數(shù)的位數(shù)。如果不指定精度,默認為DECIMAL(10,0)。例如:DECIMAL(5,2)。知識鏈接——數(shù)據(jù)類型對于float,MySQL允許在關鍵字float后面的括號中的位中選擇性地指定精度,MySQL還支持此可選的精度,但精度值僅用于確定存儲大小,精度在0~23之間會產(chǎn)生一個4字節(jié)的單精度float列;在24~53之間的精度產(chǎn)生8字節(jié)雙精度double列。MySQL還支持非標準語法:FLOAT(M,D),M值是用于指定所有的位數(shù),D值用于指定小數(shù)點后的位數(shù)。知識鏈接——數(shù)據(jù)類型2.日期/時間類型日期/時間類型主要用于表示日期和時間,MySQL中的日期/時間類型包括year、time、date、datetime和timestamp。每一種類型都有其合法的取值范圍,當指定為不合法的值時,系統(tǒng)將以“0”值替換。日期/時間類型的介紹見表4-5所示,其中,yyyy表示年,mm表示月,dd表示日,hh表示小時,mm表示分鐘,ss表示秒。知識鏈接——數(shù)據(jù)類型3.字符串類型字符串類型用來存儲普通文本、圖像和聲音等的二進制數(shù)據(jù)。MySQL中的字符串類型包括char、varchar、binary、varbinary、blob、text、enum和set等。表4-6中列出了MySQL中的字符串類型,括號中的M表示可以為其指定長度。知識鏈接——數(shù)據(jù)類型知識鏈接——數(shù)據(jù)表數(shù)據(jù)表是數(shù)據(jù)庫的重要組成部分,每一個數(shù)據(jù)庫都是由若干個數(shù)據(jù)表組成的。一個數(shù)據(jù)表包含若干個字段或記錄。創(chuàng)建數(shù)據(jù)表,指的是在已經(jīng)創(chuàng)建的數(shù)據(jù)庫中建立新數(shù)據(jù)表。創(chuàng)建數(shù)據(jù)表的過程是規(guī)定數(shù)據(jù)表中字段的屬性過程,同時也是實施數(shù)據(jù)完整性約束的過程。創(chuàng)建數(shù)據(jù)表的命令語法比較多,其主要是由表創(chuàng)建定義(create-definition)、表選項(table-options)和分區(qū)選項(partition-options)所組成的。創(chuàng)建數(shù)據(jù)表的基本語法格式為:知識鏈接——創(chuàng)建數(shù)據(jù)表語法分析:CREATETABLE:創(chuàng)建數(shù)據(jù)表的命令。tbl_name:必選項,指定要創(chuàng)建的數(shù)據(jù)表的名稱。TEMPORARY:可選項,表示創(chuàng)建一個臨時表。IFNOTEXISTS:可選項,在創(chuàng)建數(shù)據(jù)表前,對即將要創(chuàng)建的數(shù)據(jù)表名是否已經(jīng)存在進行判斷,在沒有給出此條語句時,如果存在同名數(shù)據(jù)表,則會報錯。create_definition,...:對表中的每一字段進行定義,基本語法格式如下:知識鏈接——創(chuàng)建數(shù)據(jù)表語法分析:col_name:必選項,數(shù)據(jù)表字段的名稱。column_definition:由字段的數(shù)據(jù)類型,以及可能的空值說明、完整性約束或數(shù)據(jù)表索引組成,基本語法格式為:語法分析:data_type:字段的數(shù)據(jù)類型。NOTNULL|NULL:非空約束,指定該字段是否允許空值,如果不允許空值必須使用NOTNULL,如果省略該項,默認值為NULL,表示允許空值。非空約束用來約束數(shù)據(jù)表中的字段不能為空。例如,在學生信息表中,如果不添加學生姓名,那么這條記錄是沒有用的。DEFAULT{literal|(expr)}:默認值約束,設置字段的默認值。默認值約束用來約束當數(shù)據(jù)表中某個字段不輸入值時,自動為其添加一個已經(jīng)設置好的值。知識鏈接——創(chuàng)建數(shù)據(jù)表DEFAULT{literal|(expr)}:默認值約束,設置字段的默認值。默認值約束用來約束當數(shù)據(jù)表中某個字段不輸入值時,自動為其添加一個已經(jīng)設置好的值。例如,在注冊學生信息時,如果不輸入學生的性別,那么會默認設置一個性別或者輸入一個“未知”。默認值約束通常用在已經(jīng)設置了非空約束的列,這樣能夠防止數(shù)據(jù)表在錄入數(shù)據(jù)時出現(xiàn)錯誤。AUTO_INCREMENT:自增長約束,當主鍵定義為自增長后,這個主鍵的值就不再需要用戶輸入數(shù)據(jù)了,而由數(shù)據(jù)庫系統(tǒng)根據(jù)定義自動賦值。每增加一條記錄,主鍵會自動以相同的步長進行增長。知識鏈接——創(chuàng)建數(shù)據(jù)表UNIQUE[KEY]:唯一約束,與主鍵約束有一個相似的地方,就是它們都能夠確保列的唯一性。與主鍵約束不同的是,唯一約束在一個表中可以有多個,并且設置唯一約束的列是允許有空值的,雖然只能有一個空值。例如,在用戶信息表中,要避免表中的用戶名重名,就可以把用戶名列設置為唯一約束。唯一約束可以在創(chuàng)建表時直接設置,通常設置在除了主鍵以外的其它列上。在定義完列之后直接使用UNIQUE關鍵字指定唯一約束。[PRIMARY]KEY:主鍵約束,是使用最頻繁的約束。在設計數(shù)據(jù)表時,一般情況下,都會要求數(shù)據(jù)表中設置一個主鍵。知識鏈接——創(chuàng)建數(shù)據(jù)表主鍵是數(shù)據(jù)表的一個特殊字段,該字段能唯一標識該數(shù)據(jù)表中的每條信息。例如,學生信息表中的學號是唯一的。check_constraint_definition:檢查約束,是用來檢查數(shù)據(jù)表中,字段值是否有效的一個手段。例如,學生信息表中的年齡字段是沒有負數(shù)的,并且數(shù)值也是有限制的。如果是大學生,年齡一般應該在18~30歲之間。在設置字段的檢查約束時要根據(jù)實際情況進行設置,這樣能夠減少無效數(shù)據(jù)的輸入。檢查約束使用CHECK關鍵字,具體的語法格式為CHECK<表達式>。知識鏈接——創(chuàng)建數(shù)據(jù)表小貼士:以上幾種數(shù)據(jù)表完整性約束中,一個數(shù)據(jù)表中只能有一個主鍵約束,其它約束可以有多個。查看數(shù)據(jù)表結構是指查看數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)表的定義。查看數(shù)據(jù)表結構的語句包括“describe”語句和“showcreatetable”語句。1.查看數(shù)據(jù)表的基本結構語句MySQL中,“describe”語句可以查看數(shù)據(jù)表的基本結構,具體包括字段名稱(Field)、字段類型(Type)、字段是否為null、字段是否為主鍵(key)、字段的默認值(default)和Extra。基本語法格式為:語法分析:DESCRIBE:查看數(shù)據(jù)表基本結構的命令,DESCRIBE命令的簡寫形式是DESC。tbl_name:必選項,指定要查看的數(shù)據(jù)表的名稱。知識鏈接——查看數(shù)據(jù)表結構2.查看數(shù)據(jù)表創(chuàng)建語句的SQL信息“showcreatetable”是以SQL語句的形式來顯示數(shù)據(jù)表的信息。和“describe”語句相比,“showcreatetable”顯示的內容更加豐富,它可以查看數(shù)據(jù)表的存儲引擎和字符編碼;另外,還可以通過\G參數(shù)來控制展示格式。查看數(shù)據(jù)表創(chuàng)建語句的SQL信息的基本語法格式為:知識鏈接——查看數(shù)據(jù)表結構語法分析:SHOWCREATETABLE:查看數(shù)據(jù)表創(chuàng)建語句的SQL信息的命令。tbl_name:必選項,指定要查看的數(shù)據(jù)表的名稱。\G:使顯示結果格式化,如果不使用\G,顯示的結果會比較混亂。維護數(shù)據(jù)表任務2任務描述任務目標任務分析任務實施123知識鏈接45

實際工作中,在創(chuàng)建好數(shù)據(jù)表以后,經(jīng)常需要對其進行維護。主要包括修改數(shù)據(jù)表和刪除數(shù)據(jù)表。修改數(shù)據(jù)表指的是修改數(shù)據(jù)庫中已經(jīng)存在的數(shù)據(jù)表的結構,包括對數(shù)據(jù)表的名稱、字段、字段類型等的修改,以及對字段進行添加和刪除、修改字段的順序,以及修改數(shù)據(jù)表的字符集和排序規(guī)則等,依據(jù)需求完成數(shù)據(jù)表的修改與刪除。任務描述(1)會修改數(shù)據(jù)表的名稱、字段和字段類型。(2)會修改數(shù)據(jù)表的字符集和排序規(guī)則。(3)會添加和刪除字段。(4)會修改字段的順序。(5)培養(yǎng)學生理論聯(lián)系實際、實事求是的工作作風。任務目標學習修改數(shù)據(jù)表、刪除數(shù)據(jù)表的基本語法格式,選擇相應的可選參數(shù)項,完成數(shù)據(jù)表的的維護。任務分析刪除數(shù)據(jù)表任務實施修改數(shù)據(jù)表步驟1修改數(shù)據(jù)表名將數(shù)據(jù)表tb_course改名為tb_course_info,SQL語句為:mysql>altertabletb_courserenametotb_course_info;結果信息顯示“QueryOK,0rowsaffected(0.98sec)”表示數(shù)據(jù)表更名成功。執(zhí)行結果顯示如圖所示。任務實施也可以用“showtables”語句查看更名后的結果,結果顯示,數(shù)據(jù)表名稱已經(jīng)修改,如圖所示。任務實施步驟2修改字符集和排序規(guī)則將數(shù)據(jù)表tb_course_info的字符集修改為gb2312,排序規(guī)則修改為gb2312_chinese_ci,SQL語句為:mysql>altertabletb_course_infocharactersetgb2312defaultcollategb2312_chinese_ci;步驟3添加字段(1)在數(shù)據(jù)表tb_course_info的末尾添加一個varchar(50)類型的字段cmemo,SQL語句為:mysql>altertabletb_course_infoaddcmemovarchar(50);任務實施(2)在數(shù)據(jù)表tb_course_info的第一列添加一個int(4)類型的字段cid,SQL語句為:mysql>altertabletb_course_infoaddcidint(4)first;(3)在數(shù)據(jù)表tb_course_info中添加一個varchar(10)類型的字段ctype,ctype字段位于cname字段的后面,SQL語句為:mysql>altertabletb_course_infoaddctypevarchar(10)aftercname;任務實施(4)查看修改后的數(shù)據(jù)表tb_course_info的表結構,SQL語句為:mysql>desctb_course_info;步驟4修改字段名稱及字段類型修改數(shù)據(jù)表tb_course_info的結構,將ctype字段名稱改為c_type,同時將數(shù)據(jù)類型修改為char(30),并查看修改結果,SQL語句為:mysql>altertabletb_course_infochangectypec_typechar(30);mysql>desctb_course_info;任務實施步驟5修改字段數(shù)據(jù)類型修改數(shù)據(jù)表tb_course_info的結構,將cmemo字段的數(shù)據(jù)類型修改為text,并查看修改結果,SQL語句為:mysql>altertabletb_course_infomodifycmemotext;mysql>desctb_course_info;任務實施步驟6更改字段的順序(1)將數(shù)據(jù)表tb_course_info中的id字段放到第一列,SQL語句為:mysql>altertabletb_course_infomodifyidintfirst;任務實施任務實施(2)將數(shù)據(jù)表tb_course_info中的cmemo字段放到字段cname之后,并查看修改后的結果,SQL語句為:mysql>altertabletb_course_infomodifycmemotextaftercname;mysql>desctb_course_info;步驟7刪除字段刪除數(shù)據(jù)表tb_course_info中的cid字段、c_type字段和cmemo字段,并查看刪除后的結果,SQL語句為:mysql>altertabletb_course_infodropcid;mysql>altertabletb_course_infodropc_type;mysql>altertabletb_course_infodropcmemo;mysql>desctb_course_info;任務實施步驟8刪除數(shù)據(jù)表(1)創(chuàng)建一個數(shù)據(jù)表tb_tmp,并列出當前數(shù)據(jù)庫下的所有數(shù)據(jù)表,SQL語句為:mysql>createtabletb_tmp(tmp1char(10));mysql>showtables;任務實施(2)刪除數(shù)據(jù)表tb_tmp,并列出當前數(shù)據(jù)庫下的所有數(shù)據(jù)表,SQL語句為:mysql>droptableifexiststb_tmp;mysql>showtables;任務實施小貼士:數(shù)據(jù)表被刪除后,數(shù)據(jù)表的結構和表中的數(shù)據(jù)都會被刪除。在刪除數(shù)據(jù)表時需要特別謹慎。語法分析:ALTERTABLE:修改數(shù)據(jù)表結構的命令。知識鏈接——修改數(shù)據(jù)表的基本語法tbl_name:指定要修改的數(shù)據(jù)表的名稱。alter_specification:修改選項,是對表要進行的具體修改。ADD[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]:添加字段,其中FIRST是指在數(shù)據(jù)表的第一列添加一個字段,AFTER是指在某一個字段后添加一個字段,col_name是字段名,column_definition是字段的定義。ADD[COLUMN](col_namecolumn_definition,...):在數(shù)據(jù)表的末尾添加字段。CHANGE[COLUMN]old_col_namenew_col_namecolumn_definition[FIRST|AFTERcol_name]:修改字段名及字段類型,更改字段的順序。[DEFAULT]CHARACTERSET[=]charset_name[COLLATE[=]collation_name]:修改數(shù)據(jù)表的字符集和排序規(guī)則。知識鏈接——修改數(shù)據(jù)表的基本語法DROP[COLUMN]col_name:刪除字段。MODIFY[COLUMN]col_namecolumn_definition[FIRST|AFTERcol_name]:修改字段數(shù)據(jù)類型,更改字段的順序。RENAME[TO|AS]new_tbl_name:修改表名。知識鏈接——修改數(shù)據(jù)表的基本語法DROPTABLE:刪除數(shù)據(jù)表關鍵字。IFEXISTS:可選項,用于防止刪除數(shù)據(jù)表時,在數(shù)據(jù)表不存在的情況下發(fā)生錯誤。tbl_name:必選項,指定要刪除的數(shù)據(jù)表的名稱。知識鏈接——刪除數(shù)據(jù)表的基本語法外鍵約束任務3任務描述任務目標任務分析任務實施123知識鏈接45

外鍵是數(shù)據(jù)表的一個特殊字段。主要用來建立主表與從表的關聯(lián)關系,為兩個數(shù)據(jù)表建立連接,約束兩個數(shù)據(jù)表中數(shù)據(jù)的一致性和完整性。根據(jù)需求,完成在數(shù)據(jù)表上創(chuàng)建外鍵約束、刪除外鍵約束操作。任務描述(1)會在創(chuàng)建數(shù)據(jù)表時設置外鍵約束。(2)會修改數(shù)據(jù)表時添加外鍵約束。(3)會刪除外鍵約束。(4)通過學習外鍵約束,讓學生樹立規(guī)范意識。任務目標學習創(chuàng)建外鍵約束、刪除外鍵約束的語句,理解外鍵約束的作用,根據(jù)具體的需求完成添加外鍵約束,查看外鍵名稱以及刪除外鍵約束。任務分析在創(chuàng)建數(shù)據(jù)表時設置外鍵約束在修改數(shù)據(jù)表時添加外鍵約束刪除外鍵約束外鍵任務實施步驟1在創(chuàng)建數(shù)據(jù)表時設置外鍵約束(1)在數(shù)據(jù)庫chjgl_db中創(chuàng)建數(shù)據(jù)表tb_department(系部),數(shù)據(jù)表結構如表4-7。任務實施mysql>usechjgl_db;mysql>createtabletb_department->(idintprimarykeyauto_increment,->d_novarchar(20)uniquenotnull,->d_namevarchar(20)notnull);(2)在數(shù)據(jù)庫chjgl_db中創(chuàng)建數(shù)據(jù)表tb_class(班級),數(shù)據(jù)表結構如表4-8。并創(chuàng)建外鍵約束,讓字段dno作為外鍵,關聯(lián)到數(shù)據(jù)表tb_department的字段d_no。。任務實施任務實施mysql>createtabletb_class->(idintprimarykeyauto_increment,->c_novarchar(20)uniquenotnull,->c_namevarchar(20)notnull,->dnovarchar(20),->constraintfk_dep_idforeignkey(dno)referencestb_department(d_no));步驟2查看外鍵約束名稱mysql>showcreatetabletb_class\G;執(zhí)行結果顯示如圖所示。結果顯示,數(shù)據(jù)表tb_class的外鍵約束名稱為“fk_dep_id”。任務實施步驟3刪除外鍵約束刪除數(shù)據(jù)表tb_class中的外鍵約束fk_dep_id。mysql>altertabletb_classdropforeignkeyfk_dep_id;任務實施步驟4在修改數(shù)據(jù)表時添加外鍵約束修改數(shù)據(jù)表tb_class,將字段dno設置為外鍵,與數(shù)據(jù)表tb_department的字段d_no進行關聯(lián),在數(shù)據(jù)表tb_department上刪除記錄時,同步刪除數(shù)據(jù)表tb_class的匹配記錄;在數(shù)

溫馨提示

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

評論

0/150

提交評論