版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
目錄任務(wù)三創(chuàng)建和管理數(shù)據(jù)庫(kù)任務(wù)四數(shù)據(jù)庫(kù)設(shè)計(jì)任務(wù)五創(chuàng)建與管理數(shù)據(jù)庫(kù)表創(chuàng)建和管理數(shù)據(jù)庫(kù)任務(wù)實(shí)施任務(wù)準(zhǔn)備創(chuàng)建并查看數(shù)據(jù)庫(kù)管理數(shù)據(jù)庫(kù)0102
字符集以及字符序01
MySQL字符集的設(shè)置02MySQL存儲(chǔ)引擎03MySQL的常用命令04
SQL的簡(jiǎn)單介紹05任務(wù)三任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、字符集以及字符序1.字符集任務(wù)三(1)字符(Character)是人類(lèi)語(yǔ)言最小的表義符號(hào)(2)對(duì)每個(gè)字符賦予一個(gè)數(shù)值,用數(shù)值來(lái)代表對(duì)應(yīng)
的字符,這個(gè)數(shù)值就是字符的編碼(CharacterEncoding)。(3)給定一系列字符并賦予對(duì)應(yīng)的編碼后,所有這些“字符和編碼對(duì)”組成的集合就是字符集(CharacterSet)。每個(gè)國(guó)家的字符進(jìn)行編碼后就會(huì)形成相應(yīng)的字符集,一般用字符集的名稱(chēng)代表字符集。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、字符集以及字符序2.字符序任務(wù)三(1)字符序(Collation)是指在同一字符集內(nèi)字符之間的比較規(guī)則??捎米址虻拿Q(chēng)代表某字符序。(2)一個(gè)字符集包含多種字符序。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、字符集以及字符序3.MySQL的字符集與字符序任務(wù)三(1)MySQL由瑞典MySQLAB公司開(kāi)發(fā),默認(rèn)情況下MySQL使用的是latin1字符集。(2)MySQL支持四十多種字符集。(3)使用MySQL命令“SHOWCHARACTERSET;”即可查看當(dāng)前MySQL服務(wù)實(shí)例支持的字符集、字符集默認(rèn)的字符序以及字符集占用的最大字節(jié)長(zhǎng)度等信息。MySQL字符序命名規(guī)則:以字符序?qū)?yīng)的字符集名稱(chēng)開(kāi)頭,以國(guó)家名居中(或以general居中),以ci、cs或bin結(jié)尾。ci表示大小寫(xiě)不敏感,cs表示大小寫(xiě)敏感,bin表示按二進(jìn)制編碼值比較。(4)當(dāng)前MySQL服務(wù)實(shí)例使用的字符集主要是從七種場(chǎng)景對(duì)字符編碼進(jìn)行設(shè)定任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、MySQL字符集的設(shè)置1.改變字符集的方式任務(wù)三(1)通過(guò)修改my.ini配置文件,可修改MySQL默認(rèn)的字符集。(2)MySQL提供一些MySQL命令可以臨時(shí)修改MySQL當(dāng)前會(huì)話(huà)的字符集以及字符序。(3)使用MySQL命令“SETNAMESGBK;”可以臨時(shí)一次性地設(shè)置CHARACTER_SET_CLIENT、CHARACTER_SET_CONNECTION以及CHARACTER_SET_RESULTS的字符集。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲(chǔ)引擎1.存儲(chǔ)引擎的含義及作用任務(wù)三數(shù)據(jù)庫(kù)存儲(chǔ)引擎是數(shù)據(jù)庫(kù)底層軟件組件,數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)使用存儲(chǔ)引擎進(jìn)行創(chuàng)建、查詢(xún)、更新和刪除數(shù)據(jù)的操作。2.不同存儲(chǔ)引擎的差異不同的存儲(chǔ)引擎通過(guò)選擇合適的數(shù)據(jù)結(jié)構(gòu)、提供不同的存儲(chǔ)機(jī)制、索引技巧等,在實(shí)際應(yīng)用中表現(xiàn)出不同的數(shù)據(jù)處理效能。使用不同的存儲(chǔ)引擎,除了可以獲得常用數(shù)據(jù)操作功能外,還可以獲得某些特定功能。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲(chǔ)引擎4.MySQL存儲(chǔ)引擎的選擇任務(wù)三InnoDB:支持事務(wù)處理,支持外鍵,支持崩潰修復(fù)能力和并發(fā)控制。如果需要對(duì)事務(wù)的完整性要求比較高(比如銀行),要求實(shí)現(xiàn)并發(fā)控制(比如售票),那選擇InnoDB有很大的優(yōu)勢(shì)。如果需要頻繁的更新、刪除操作的數(shù)據(jù)庫(kù),也可以選擇InnoDB,因?yàn)橹С质聞?wù)的提交(Commit)和回滾(Rollback)。MyISAM:插入數(shù)據(jù)快,空間和內(nèi)存使用比較低。如果表主要是用于插入新記錄和讀出記錄,那么選擇MyISAM能實(shí)現(xiàn)處理高效率。如果應(yīng)用的完整性、并發(fā)性要求比較低,也可以使用。注意:同一個(gè)數(shù)據(jù)庫(kù)也可以使用多種存儲(chǔ)引擎的表。如果-一個(gè)表要求比較高的事務(wù)處理,可以選擇InnoDB。在這個(gè)數(shù)據(jù)庫(kù)中可以將查詢(xún)要求比較高的表選擇MyISAM存儲(chǔ)。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲(chǔ)引擎3.MySQL常用存儲(chǔ)引擎任務(wù)三(1)InnoDB存儲(chǔ)引擎InnoDB給MySQL提供了具有提交、回滾和崩潰恢復(fù)能力的事務(wù)安全(ACID兼容)存儲(chǔ)引擎InnoDB是為處理巨大數(shù)據(jù)量的最大性能設(shè)計(jì)InnoDB存儲(chǔ)引擎完全與MySQL服務(wù)器整合InnoDB支持外鍵完整性約束(FOREIGNKEY)InnoDB被用在眾多需要高性能的大型數(shù)據(jù)庫(kù)站點(diǎn)上InnoDB是事務(wù)型數(shù)據(jù)庫(kù)的首選引擎,既支持事務(wù)安全表(ACID),也支持行鎖定和外鍵。MySQL5.5.5之后,InnoDB作為默認(rèn)存儲(chǔ)引擎。
InnoDB存儲(chǔ)引擎有如下特點(diǎn):任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、MySQL存儲(chǔ)引擎3.MySQL常用存儲(chǔ)引擎任務(wù)三(2)MyISAM存儲(chǔ)引擎每個(gè)MylSAM表最大索引數(shù)是64,這可以通過(guò)重新編譯來(lái)改變。最大的鍵長(zhǎng)度是1000B,這也可以通過(guò)編譯來(lái)改變。BLOB和TEXT列可以被索引每表一個(gè)AUTOJNCREMENT列的內(nèi)部處理可以把數(shù)據(jù)文件和索引文件放在不同目錄每個(gè)字符列可以有不同的字符集MyISAM基于ISAM的存儲(chǔ)引擎,并對(duì)其進(jìn)行擴(kuò)展。它是在Web、數(shù)據(jù)存儲(chǔ)和其他應(yīng)用環(huán)境下最常使用的存儲(chǔ)引擎之一。MyISAM擁有較高的插入、查詢(xún)速度,但不支持事務(wù)。在MySQL5.5.5之前的版本中,MyISAM是默認(rèn)存儲(chǔ)引擎。MyISAM主要特性有:任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、MySQL的常用命令任務(wù)三表3-1MySQL常用命令命令簡(jiǎn)寫(xiě)具體含義?\?顯示幫助信息clear\c清除當(dāng)前輸入語(yǔ)句connect\r連接到服務(wù)器,有可選參數(shù)delimiter\d設(shè)置語(yǔ)句分隔符exit\q退出MySQLgo\g發(fā)送命令到MySQL服務(wù)器help\h顯示幫助信息prompt\R改變MySQL服務(wù)器quit\q退出MySQLstatus\a從服務(wù)器獲取MySQL的狀態(tài)信息use\u切換當(dāng)前數(shù)據(jù)庫(kù)charset\C切換到另一個(gè)字符集任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、SQL的簡(jiǎn)單介紹任務(wù)三SQL全稱(chēng)是結(jié)構(gòu)化查詢(xún)語(yǔ)言,即StructuredQueryLanguage,是一種特殊的編程語(yǔ)言,是一種數(shù)據(jù)庫(kù)查詢(xún)和程序設(shè)計(jì)語(yǔ)言,用于存取數(shù)據(jù)以及查詢(xún)、更新和管理關(guān)系數(shù)據(jù)庫(kù)系統(tǒng),同時(shí)也是數(shù)據(jù)庫(kù)腳本文件的擴(kuò)展名。(1)數(shù)據(jù)查詢(xún)語(yǔ)言(DQL:DataQueryLanguage)保留字SELECT是DQL(也是所有SQL)用得最多的動(dòng)詞,其他DQL常用的保留字有WHERE,ORDERBY,GROUPBY和HAVING。(2)數(shù)據(jù)操作語(yǔ)言(DML:DataManipulationLanguage)其語(yǔ)句包括動(dòng)詞INSERT,UPDATE和DELETE。也稱(chēng)為動(dòng)作查詢(xún)語(yǔ)言。(3)數(shù)據(jù)控制語(yǔ)言(DCL)包括GRANT或REVOKE語(yǔ)句,它們分別授予或收回單個(gè)用戶(hù)和用戶(hù)組對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)權(quán)限。(4)數(shù)據(jù)定義語(yǔ)言(DDL)其語(yǔ)句包括動(dòng)詞CREATE和DROP。在數(shù)據(jù)庫(kù)中創(chuàng)建新表或刪除表;為表加入索引等。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建并查看數(shù)據(jù)庫(kù)任務(wù)三1.前導(dǎo)知識(shí)(1)在命令行中使用命令語(yǔ)句創(chuàng)建MySQL數(shù)據(jù)庫(kù)的命令的語(yǔ)法格式是:CREATE<DATABASE|SCHEMA>[IFNOTEXISTS]<數(shù)據(jù)庫(kù)名稱(chēng)>[CREATE_SPECIFICATION,...];(2)修改數(shù)據(jù)庫(kù)命令語(yǔ)句的語(yǔ)法格式是:ALTER<DATABASE|SCHEMA><數(shù)據(jù)庫(kù)名稱(chēng)>[CREATE_SPECIFICATION,...];(3)刪除數(shù)據(jù)庫(kù)命令語(yǔ)句的語(yǔ)法格式為:DROP<DATABASE|SCHEMA>[IFNOTEXISTS]<數(shù)據(jù)庫(kù)名稱(chēng)>;任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建并查看數(shù)據(jù)庫(kù)任務(wù)三2.任務(wù)內(nèi)容(1)創(chuàng)建一個(gè)名稱(chēng)為”tsgl”的數(shù)據(jù)庫(kù),并指定它的默認(rèn)字符集為gbk,排序規(guī)則設(shè)為gbk_chinese_ci。(2)查看數(shù)據(jù)庫(kù)創(chuàng)建是否成功。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建并查看數(shù)據(jù)庫(kù)任務(wù)三3.完成任務(wù)(1)啟動(dòng)MySQL服務(wù)器并登錄;(2)在MySQL命令提示符后輸入以下命令語(yǔ)句并按”Enter”鍵執(zhí)行:createdatabaseifnotexiststsgldefaultcharsetgbkcollategbk_chinese_ci;(3)查看命令執(zhí)行的結(jié)果。上述命令執(zhí)行后,除了屏幕反饋的結(jié)果外,我們還可以通過(guò)輸入命令“SHOWDATABASES;”查看執(zhí)行結(jié)果。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫(kù)任務(wù)三1.前導(dǎo)知識(shí)在命令行中使用命令語(yǔ)句選擇當(dāng)前數(shù)據(jù)庫(kù)的語(yǔ)法格式是:USE數(shù)據(jù)庫(kù)名稱(chēng);USE命令語(yǔ)句在MySQL中用于指定某數(shù)據(jù)庫(kù)為當(dāng)前默認(rèn)數(shù)據(jù)庫(kù),使后面的所有命令語(yǔ)句在選擇另外數(shù)據(jù)庫(kù)前都應(yīng)用與當(dāng)前默認(rèn)數(shù)據(jù)庫(kù)的操作,直到退出數(shù)據(jù)庫(kù)操作,如果再次進(jìn)入數(shù)據(jù)庫(kù)則又要重新選擇當(dāng)前默認(rèn)數(shù)據(jù)庫(kù)。USE命令語(yǔ)句也可以用作從一個(gè)數(shù)據(jù)庫(kù)切換到另一個(gè)數(shù)據(jù)庫(kù)。為了方便對(duì)某數(shù)據(jù)庫(kù)進(jìn)行操作,最好使該數(shù)據(jù)庫(kù)變?yōu)楫?dāng)前數(shù)據(jù)庫(kù),此時(shí)可以使用USE命令。(1)改變當(dāng)前數(shù)據(jù)庫(kù)任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫(kù)任務(wù)三1.前導(dǎo)知識(shí)使用DOS命令在提示符狀態(tài)下進(jìn)行。其命令語(yǔ)句的語(yǔ)法格式如下所示:MYSQLDUMP–uusername–ppassword–databases<databaselist>
>備份文件名說(shuō)明:-uusername:用戶(hù)名;-ppassword:密碼;-databases<databaselist>:需備份的數(shù)據(jù)庫(kù)名列表,數(shù)據(jù)庫(kù)名之間用空格分隔;如果只備份一個(gè)數(shù)據(jù)庫(kù),可省略“-databases”,直接寫(xiě)數(shù)據(jù)庫(kù)名即可,此時(shí)跟在數(shù)據(jù)庫(kù)名后的其他信息一般為表名。>備份文件名:此為管道輸出,將數(shù)據(jù)轉(zhuǎn)儲(chǔ)到備份文件中,完成備份。備份文件的擴(kuò)展名為sql。(2)備份數(shù)據(jù)庫(kù)任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫(kù)任務(wù)三2.任務(wù)內(nèi)容(1)修改數(shù)據(jù)庫(kù)tsgl的默認(rèn)字符集為“utf8”,排序規(guī)則為“utf8_general_ci”;(2)創(chuàng)建一個(gè)名為“xsgl”的數(shù)據(jù)庫(kù)并刪除;(3)備份數(shù)據(jù)庫(kù)”tsgl”。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫(kù)任務(wù)三3.完成任務(wù)(1)啟動(dòng)MySQL服務(wù)器并登錄;(2)在MySQL命令提示符后輸入以下語(yǔ)句:USETSGL;SHOWCREATEDATABASETSGL;(3)在MySQL命令提示符后輸入以下命令語(yǔ)句,修改當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)字符集并再
次查看當(dāng)前數(shù)據(jù)庫(kù)的建庫(kù)信息。ALTERDATABASETSGLDEFAULTCHARSETUTF8COLLATEUTF8_GENERAL_CI;SHOWCREATEDATABASETSGL;任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)庫(kù)任務(wù)三3.完成任務(wù)(4)創(chuàng)建并刪除數(shù)據(jù)庫(kù)XSGL。在MySQL命令提示符后輸入以下命令語(yǔ)句,即可刪除數(shù)據(jù)庫(kù)“xsgl”。DROPDATABASEXSGL;(5)備份數(shù)據(jù)庫(kù)tsgl。備份數(shù)據(jù)庫(kù)tsgl只需在DOS命令提示符后輸入以下命令語(yǔ)句并按”Enter”執(zhí)行即可:MYSQLDUMP–uroot–pmydatatsgl>tsgl20210815.sql說(shuō)明:此命令語(yǔ)句是外部命令,如果當(dāng)前路徑不是此命令文件所在文件夾,則需要配置運(yùn)行參數(shù)PATH;備份文件存放的位置默認(rèn)為當(dāng)前路徑。④更改文字內(nèi)容小結(jié)任務(wù)三任務(wù)三創(chuàng)建與管理數(shù)據(jù)庫(kù)1、MySQL字符集2、MySQL存儲(chǔ)引擎3、MySQL常用命令4、SQL基礎(chǔ)5、創(chuàng)建與管理數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)設(shè)計(jì)任務(wù)實(shí)施任務(wù)準(zhǔn)備需求分析繪制E-R圖確定數(shù)據(jù)模式010203
數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)01
數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述02
數(shù)據(jù)庫(kù)設(shè)計(jì)步驟03
實(shí)體-聯(lián)系圖04
規(guī)范化05任務(wù)四任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、數(shù)據(jù)庫(kù)設(shè)計(jì)的特點(diǎn)任務(wù)四數(shù)據(jù)庫(kù)設(shè)計(jì)和用戶(hù)的業(yè)務(wù)需求緊密相關(guān),是一項(xiàng)綜合性技術(shù)?!叭旨夹g(shù),七分管理,十二分基礎(chǔ)數(shù)據(jù)”是數(shù)據(jù)庫(kù)建設(shè)的基本理念。數(shù)據(jù)庫(kù)設(shè)計(jì)有如下特點(diǎn):(1)計(jì)算機(jī)的硬件、軟件和管理界面的結(jié)合。(2)數(shù)據(jù)庫(kù)設(shè)計(jì)和應(yīng)用設(shè)計(jì)要相結(jié)合。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、數(shù)據(jù)庫(kù)設(shè)計(jì)方法簡(jiǎn)述任務(wù)四數(shù)據(jù)庫(kù)設(shè)計(jì)方法中,比較著名的有新奧爾良方法,該方法將數(shù)據(jù)庫(kù)設(shè)計(jì)分為4個(gè)階段進(jìn)行:需求分析(分析用戶(hù)需求)、概念結(jié)構(gòu)設(shè)計(jì)(信息分析和定義)、邏輯結(jié)構(gòu)設(shè)計(jì)(數(shù)據(jù)模式確定)和物理結(jié)構(gòu)設(shè)計(jì)(物理數(shù)據(jù)庫(kù)設(shè)計(jì),包括存儲(chǔ)模式等)。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備三、數(shù)據(jù)庫(kù)設(shè)計(jì)步驟任務(wù)四(1)需求分析階段本階段的主要工作是:通過(guò)需求收集和分析,得到數(shù)據(jù)字典描述的數(shù)據(jù)需求,即要實(shí)現(xiàn)系統(tǒng)功能所需的數(shù)據(jù)支撐。因?yàn)楣δ艿膶?shí)現(xiàn)都是以數(shù)據(jù)為基礎(chǔ)的,沒(méi)有數(shù)據(jù)作為支撐,就無(wú)法實(shí)現(xiàn)相應(yīng)的功能。(2)概念結(jié)構(gòu)設(shè)計(jì)階段通過(guò)對(duì)用戶(hù)需求進(jìn)行綜合、歸納與抽象,形成一個(gè)獨(dú)立于DBMS的概念模型,一般用E-R圖描述。(3)邏輯結(jié)構(gòu)設(shè)計(jì)階段將概念結(jié)構(gòu)轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型(例如關(guān)系模型),并對(duì)其進(jìn)行優(yōu)化。數(shù)據(jù)庫(kù)設(shè)計(jì)的三個(gè)關(guān)鍵步驟任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、實(shí)體-聯(lián)系圖任務(wù)四實(shí)體-聯(lián)系圖即E-R圖。其中實(shí)體往往是對(duì)客觀世界中靜態(tài)事物的抽象,例如在圖書(shū)管理系統(tǒng)中,圖書(shū)、借閱者等可以抽象為實(shí)體。在計(jì)算機(jī)世界中,通過(guò)收集實(shí)體的屬性對(duì)實(shí)體進(jìn)行描述。屬性是描述對(duì)象特征的數(shù)據(jù)項(xiàng),如用于描述圖書(shū)的圖書(shū)編號(hào)、圖書(shū)名稱(chēng)、封面圖片等數(shù)據(jù)項(xiàng)就是用于描述圖書(shū)的屬性。1.實(shí)體2.聯(lián)系聯(lián)系則是在某些業(yè)務(wù)辦理過(guò)程中,實(shí)體與實(shí)體之間產(chǎn)生的關(guān)聯(lián)。在圖書(shū)管理系統(tǒng)中,當(dāng)借閱者到圖書(shū)館辦理借書(shū)手續(xù)時(shí),圖書(shū)與借閱者之間便產(chǎn)生了關(guān)聯(lián)。這種關(guān)聯(lián)也可以通過(guò)某些形式進(jìn)行描述,如用關(guān)系模式描述借閱者與圖書(shū)之間的關(guān)聯(lián)。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備四、實(shí)體-聯(lián)系圖任務(wù)四3.實(shí)體-聯(lián)系圖在E-R圖中一般用矩形框表示實(shí)體,橢圓框表示屬性,菱形表示聯(lián)系,線(xiàn)上書(shū)寫(xiě)的符號(hào)1、n、m表示聯(lián)系類(lèi)型。聯(lián)系類(lèi)型有三種:一對(duì)一(1:N)、一對(duì)多(1:N)、多對(duì)多(N:M)。Borrowers與books的聯(lián)系任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、規(guī)范化任務(wù)四規(guī)范化有許多層次,對(duì)關(guān)系最基本的要求是每個(gè)屬性值必須是不可分割的數(shù)據(jù)單元,即表中不能再包含表。滿(mǎn)足一定條件的關(guān)系模式,稱(chēng)為范式(NormalForm)。范式就是某一種級(jí)別的關(guān)系模式的集合,稱(chēng)某一關(guān)系模式R為第n范式,就表示該關(guān)系的級(jí)別。一個(gè)低級(jí)范式的關(guān)系模式,通過(guò)分解(投影)方法可轉(zhuǎn)換成多個(gè)高一級(jí)范式的關(guān)系模式的集合,這種過(guò)程稱(chēng)為規(guī)范化。1.規(guī)范化的含義任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、規(guī)范化任務(wù)四2.三種級(jí)別的范式(1)第一范式(1NF)定義如果一個(gè)關(guān)系R的每一個(gè)屬性都是不可分的數(shù)據(jù)項(xiàng),則稱(chēng)R是符合第一范式的,記做R∈1NF。(2)第二范式(2NF)定義設(shè)關(guān)系R∈1NF,且它的每一非主屬性完全依賴(lài)于主鍵,則稱(chēng)R是符合第二范式的,記作R∈2NF。(3)第三范式(3NF)定義設(shè)關(guān)系R∈2NF,且它的每一非主屬性不傳遞依賴(lài)于主鍵,則該關(guān)系是符合第三范式的,記作R∈3NF。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備五、規(guī)范化任務(wù)四3.第一范式到第三范式任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1需求分析任務(wù)四1.前導(dǎo)知識(shí)需求分析的任務(wù)簡(jiǎn)單地說(shuō)就是通過(guò)分析用戶(hù)的業(yè)務(wù)流程,得到系統(tǒng)功能需求以及實(shí)現(xiàn)這些功能的數(shù)據(jù)要求。需求分析的任務(wù)是通過(guò)詳細(xì)調(diào)查現(xiàn)實(shí)世界中要處理的對(duì)象(組織、部門(mén)或企業(yè)等),通過(guò)調(diào)查、分析用戶(hù)活動(dòng),充分了解原系統(tǒng)(手工系統(tǒng)或計(jì)算機(jī)系統(tǒng))工作概況,明確用戶(hù)的各種需求,然后在此基礎(chǔ)上確定新系統(tǒng)的功能。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1需求分析任務(wù)四2.任務(wù)內(nèi)容對(duì)圖書(shū)管理系統(tǒng)進(jìn)行需求分析任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1需求分析任務(wù)四3.完成任務(wù)通過(guò)與圖書(shū)管理人員進(jìn)行溝通,我們了解到圖書(shū)管理系統(tǒng)至少應(yīng)該實(shí)現(xiàn)圖書(shū)的借閱和歸還等基本功能,進(jìn)一步進(jìn)行分析并按照分類(lèi)、聚集、概括等數(shù)據(jù)抽象過(guò)程,明確系統(tǒng)中應(yīng)該收集的數(shù)據(jù)項(xiàng)、相關(guān)實(shí)體以實(shí)體聯(lián)系等,為繪制E-R圖做準(zhǔn)備。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2繪制E-R圖任務(wù)四1.前導(dǎo)知識(shí)(1)數(shù)據(jù)抽象過(guò)程分類(lèi)分類(lèi)就是定義某一類(lèi)概念模型為現(xiàn)實(shí)世界中一組對(duì)象的抽象,這些對(duì)象具有某些相同的特征和行為。在E-R圖中,實(shí)體集就是通過(guò)這樣的抽象得來(lái)的。如將學(xué)校中的“張三”、“李四”、“王五”等具有學(xué)生共同特征的人定義為一-類(lèi),并將這些對(duì)象抽象為學(xué)生實(shí)體。聚集聚集就是定義某實(shí)體(也稱(chēng)對(duì)象)的組成部分,它抽象了對(duì)象內(nèi)部結(jié)構(gòu)和對(duì)象內(nèi)部組成部分等語(yǔ)義。若干屬性組成了實(shí)體型。如把“學(xué)生"實(shí)體集中的學(xué)號(hào)、姓名、年齡和系別等屬性聚集為實(shí)體型學(xué)生。概括概括定義了實(shí)體之間的一種子集聯(lián)系,它抽象了類(lèi)型之間的所屬的語(yǔ)義。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2繪制E-R圖任務(wù)四2.任務(wù)內(nèi)容繪制部分E-R圖3.完成任務(wù)任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3確定數(shù)據(jù)模式任務(wù)四1.前導(dǎo)知識(shí)確定數(shù)據(jù)模式是以E-R圖為基礎(chǔ)的,將E-R圖轉(zhuǎn)換為數(shù)據(jù)模型(一般為關(guān)系模型)就完成了數(shù)據(jù)庫(kù)邏輯結(jié)構(gòu)設(shè)計(jì)的任務(wù),為創(chuàng)建數(shù)據(jù)表做好準(zhǔn)備。關(guān)系模型的邏輯結(jié)構(gòu)是一組關(guān)系模式的集合,而E-R圖則是由實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系3個(gè)要素組成的,所以將E-R圖轉(zhuǎn)換為關(guān)系模型實(shí)際上就是要將實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。這種轉(zhuǎn)換一般遵循一些原則。(1)數(shù)據(jù)模式的基礎(chǔ)任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3確定數(shù)據(jù)模式任務(wù)四1.前導(dǎo)知識(shí)一個(gè)實(shí)體型轉(zhuǎn)換為一個(gè)關(guān)系模式。實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的鍵就是關(guān)系的鍵。一個(gè)m:n聯(lián)系轉(zhuǎn)換為一個(gè)關(guān)系模式。與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的鍵為各實(shí)體鍵的組合。例如在例子中,“選修”聯(lián)系是一個(gè)m:n聯(lián)系,可以將它轉(zhuǎn)換為如下關(guān)系模式,其中學(xué)號(hào)與課程號(hào)為關(guān)系的組合鍵。選修(學(xué)號(hào),課程號(hào),成績(jī))(2)E-Rl圖轉(zhuǎn)換為數(shù)據(jù)模式任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3確定數(shù)據(jù)模式任務(wù)四1.前導(dǎo)知識(shí)一個(gè)1:n聯(lián)系可以轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,也可以與n端對(duì)應(yīng)的關(guān)系模式合并。如果轉(zhuǎn)換為一個(gè)獨(dú)立的關(guān)系模式,則與該聯(lián)系相連的各實(shí)體的鍵以及聯(lián)系本身的屬性均轉(zhuǎn)換為關(guān)系的屬性,而關(guān)系的鍵為n端實(shí)體的鍵。另一種方法是將其關(guān)系模式合并,即將1端實(shí)體的鍵作為n端實(shí)體的一個(gè)屬性(一般可作為外鍵)。這種方法可以減少系統(tǒng)中的關(guān)系個(gè)數(shù),一般情況下更傾向于采用這種方法。(2)E-Rl圖轉(zhuǎn)換為數(shù)據(jù)模式任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3確定數(shù)據(jù)模式任務(wù)四2.任務(wù)內(nèi)容確定圖書(shū)管理系統(tǒng)的數(shù)據(jù)模式。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3確定數(shù)據(jù)模式任務(wù)四3.完成任務(wù)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空完整性約束說(shuō)明borr_idcharnotnullPK借閱證編號(hào)borr_namecharnotnull
借閱者姓名borr_sexcharnotnull
借閱者性別borr_ageintnotnull
借閱者年齡borr_provarcharnotnull
借閱者專(zhuān)業(yè)borr_predintnotnull/default=1
借閱者誠(chéng)信級(jí)表3-2borrowers表:存儲(chǔ)讀者信息根據(jù)概念結(jié)構(gòu)設(shè)計(jì)的結(jié)果,得到圖書(shū)管理系統(tǒng)的數(shù)據(jù)模式(關(guān)系模式),下面列出兩個(gè)關(guān)系模式,其結(jié)構(gòu)如下所示:任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3確定數(shù)據(jù)模式任務(wù)四3.完成任務(wù)字段名稱(chēng)數(shù)據(jù)類(lèi)型是否為空完整性約束說(shuō)明book_idcharnotnullPK書(shū)籍編號(hào)book_namevarcharnotnull
書(shū)籍名稱(chēng)book_pricefloatnotnull
書(shū)籍價(jià)格book_authorcharnotnull
書(shū)籍作者book_pubvarcharnotnull
書(shū)籍出版社book_numintnotnull
書(shū)籍?dāng)?shù)量sort_idcharnotnullForeignKey書(shū)籍分類(lèi)book_entrancedatatimenull
書(shū)籍登記日期表3-3books表:存儲(chǔ)書(shū)籍信息④更改文字內(nèi)容小結(jié)任務(wù)四任務(wù)四數(shù)據(jù)庫(kù)設(shè)計(jì)1、數(shù)據(jù)庫(kù)設(shè)計(jì)方法2、數(shù)據(jù)庫(kù)設(shè)計(jì)步驟3、實(shí)體-聯(lián)系圖4、規(guī)范化創(chuàng)建與管理數(shù)據(jù)庫(kù)表任務(wù)實(shí)施任務(wù)準(zhǔn)備創(chuàng)建數(shù)據(jù)表管理數(shù)據(jù)表修改數(shù)據(jù)表結(jié)構(gòu)010203
關(guān)系模式01
約束類(lèi)型02任務(wù)五任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、關(guān)系模式任務(wù)五1.關(guān)系關(guān)系是一種規(guī)范化的二維表,二維表的每一列都有一個(gè)名字,也稱(chēng)列標(biāo)簽、字段名,所有列標(biāo)簽、字段名形成的結(jié)構(gòu)也稱(chēng)為表結(jié)構(gòu);二維表的每一行數(shù)據(jù)用于描述一個(gè)對(duì)象,行也可稱(chēng)為記錄、元組。同一屬性(列)中的分量是相同類(lèi)型的數(shù)據(jù),即取自同一個(gè)域。屬性(列)的順序可以是任意的。元組(行)的順序可以是任意的。任意兩個(gè)元組(即兩行)不能完全相同。屬性必須有不同的名稱(chēng),但不同的屬性可以取自相同的域。所有屬性必須都是不可分解的,即表中不允許有子表。作為關(guān)系的二維表需滿(mǎn)足的條件任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備一、關(guān)系模式任務(wù)五2.關(guān)系模式(1)關(guān)系模式是對(duì)關(guān)系的描述,是一個(gè)關(guān)系的具體結(jié)構(gòu)。(2)在數(shù)據(jù)庫(kù)系統(tǒng)中定義一個(gè)關(guān)系模式時(shí),主要是給出關(guān)系名和所有屬性名,其他都是輔助特性。(3)一個(gè)關(guān)系模式可以簡(jiǎn)化表示為R(A1,A2,…An.),其中R為關(guān)系名,A1,A2,...,An為各屬性名。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、約束類(lèi)型任務(wù)五MySQL的約束是指對(duì)數(shù)據(jù)表中對(duì)數(shù)據(jù)的一種約束行為,約束主要完成對(duì)數(shù)據(jù)的合理性檢驗(yàn),保證數(shù)據(jù)的完整性、一致性等。約束類(lèi)型與完整性有一定的對(duì)應(yīng)關(guān)系。MySQL的約束主要包括主鍵約束、外鍵約束、唯一約束、非空約束和默認(rèn)值約束。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、約束類(lèi)型任務(wù)五(1)主鍵約束(PrimaryKey)關(guān)系數(shù)據(jù)庫(kù)有一個(gè)非常重要的運(yùn)行機(jī)制:為關(guān)系設(shè)置主鍵,它是數(shù)據(jù)庫(kù)物理模式的基石。主鍵是關(guān)系中每一行在其上的投影(也就是取值)均不同的某字段或某些字段的組合。主鍵在物理層面上只有兩個(gè)用途:惟一地標(biāo)識(shí)一行和作為一個(gè)可以被外鍵有效引用的對(duì)象。通過(guò)它可實(shí)現(xiàn)實(shí)體完整性,消除數(shù)據(jù)表的部分冗余數(shù)據(jù)。一個(gè)數(shù)據(jù)表只能有一個(gè)主鍵約束(可以是復(fù)合主鍵),并且主鍵約束中的字段不能接受空值。由于主鍵約束可保證數(shù)據(jù)的唯一性,因此經(jīng)常對(duì)標(biāo)識(shí)字段定義這種約束??梢栽趧?chuàng)建數(shù)據(jù)表時(shí)定義主鍵約束,也可以修改現(xiàn)有數(shù)據(jù)表的主鍵約束。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、約束類(lèi)型任務(wù)五(2)外鍵約束(ForeignKey)外鍵約束保證了數(shù)據(jù)庫(kù)中各個(gè)數(shù)據(jù)表中數(shù)據(jù)的一致性和正確性。將一個(gè)數(shù)據(jù)表的一個(gè)字段或字段組合與其他數(shù)據(jù)表的主鍵字段建立鏈接并設(shè)置相應(yīng)的操作規(guī)則,此時(shí),我們稱(chēng)這個(gè)字段或字段組合為外鍵。在兩表建立的這個(gè)鏈接基礎(chǔ)上,我們稱(chēng)設(shè)置為主鍵的一方為主約束表,簡(jiǎn)稱(chēng)為主表,設(shè)置為外鍵的表稱(chēng)為外鍵約束表,簡(jiǎn)稱(chēng)為從表??梢栽诙x數(shù)據(jù)表時(shí)直接創(chuàng)建外鍵約束,也可以對(duì)現(xiàn)有數(shù)據(jù)表中的某--個(gè)字段或字段組合添加外鍵約束。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、約束類(lèi)型任務(wù)五(3)唯一約束(Unique)一個(gè)數(shù)據(jù)表只能有一個(gè)主鍵,如果有多個(gè)字段或者多個(gè)字段組合需要實(shí)施數(shù)據(jù)唯一性,可以采用唯一約束。可以對(duì)一個(gè)數(shù)據(jù)表定義多個(gè)唯一約束,唯一約束允許為Null值,但每個(gè)唯一約束字段只允許存在一個(gè)Null值。(4)非空約束(NotNull)指定為NotNull的字段則不能輸入Null值,數(shù)據(jù)表中出現(xiàn)Null值通常表示值未知或未定義,Null值不同于零、空格或者長(zhǎng)度為零的字符串。在創(chuàng)建數(shù)據(jù)表時(shí),默認(rèn)情況下,如果在數(shù)據(jù)表中不指定非空約束,那么數(shù)據(jù)表中所有字段都可以為空的。由于主鍵約束字段必須保證字段是不為空的。因此要設(shè)置主鍵約束的字段一定要設(shè)置非空約束。任務(wù)實(shí)施③更改文字內(nèi)容④更改文字內(nèi)容任務(wù)準(zhǔn)備二、約束類(lèi)型任務(wù)五(5)默認(rèn)值約束(DEFAULT)默認(rèn)值約束是用來(lái)約束當(dāng)數(shù)據(jù)表中的某個(gè)字段不輸入值時(shí),自動(dòng)為其添加一個(gè)已經(jīng)設(shè)置好的值??梢詣?chuàng)建數(shù)據(jù)表時(shí)為字段指定默認(rèn)值,也可以在修改數(shù)據(jù)表時(shí)為字段指定默認(rèn)值。Default約束定義的默認(rèn)值僅在執(zhí)行Insert操作插入數(shù)據(jù)時(shí)生效,一個(gè)字段至多有一個(gè)默認(rèn)值,其中包括Null值。默認(rèn)值約束通常用在已經(jīng)設(shè)置了非空約束的字段,這樣能夠防止數(shù)據(jù)表在輸人數(shù)據(jù)時(shí)出現(xiàn)遺漏錯(cuò)誤。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)創(chuàng)建數(shù)據(jù)表需要用到CREATETABLE語(yǔ)句,其語(yǔ)法格式是:CREATETABLE<表名稱(chēng)>(<字段名1><數(shù)據(jù)類(lèi)型>[字段級(jí)約束][默認(rèn)值],<字段名2><數(shù)據(jù)類(lèi)型>[字段級(jí)約束][默認(rèn)值],……<字段名N><數(shù)據(jù)類(lèi)型>[字段級(jí)約束][默認(rèn)值][,表級(jí)約束]);要?jiǎng)?chuàng)建的表的名稱(chēng),不區(qū)分大小寫(xiě),不能使用SQL語(yǔ)言中的關(guān)鍵字,如DROP.ALTER、INSERT等。如果創(chuàng)建多個(gè)列,要用逗號(hào)隔開(kāi)。創(chuàng)建表還可以通過(guò)復(fù)制其他表的結(jié)構(gòu)完成.(1)創(chuàng)建數(shù)據(jù)表的命令語(yǔ)句任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)定義主鍵約束主鍵約束(PRIMARYKEYCONSTRAINT)要求主鍵列的數(shù)據(jù)(值)在此關(guān)系中是唯一的,并且不允許為空。主鍵分為兩種類(lèi)型:單字段主鍵和多字段聯(lián)合主鍵。在定義字段的同時(shí)指定一個(gè)字段為主鍵的語(yǔ)法格式是:<字段名><數(shù)據(jù)類(lèi)型>PRIMARYKEY[默認(rèn)值]在定義完所有字段之后指定一個(gè)字段為主鍵的語(yǔ)法格式是:[CONSTRAINT<主鍵約束名>]PRIMARYKEY<字段名>在定義完所有字段之后指定多個(gè)字段組合主鍵的語(yǔ)法是:[CONSTRAINT<主鍵約束名>]PRIMARYKEY(<字段名1>,...<字段名N>)當(dāng)主鍵為多字段聯(lián)合主鍵時(shí),不可以直接在相應(yīng)字段名后面聲明主鍵約束。(2)定義多種約束任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)定義唯一約束唯一約束與主鍵約束的主要區(qū)別:●一個(gè)數(shù)據(jù)表可以有多個(gè)唯一約束,可主鍵約束只能有一個(gè);●主鍵的字段不允許為空值(NULL),唯一約束的字段允許空值(NULL),但只能有一個(gè)空值?!裎ㄒ患s束通常設(shè)置在主鍵以外的字段上,一但創(chuàng)建后系統(tǒng)會(huì)默認(rèn)保存其在索引中。在定義完字段后直接指定唯一約束的語(yǔ)法格式是:<字段名><數(shù)據(jù)類(lèi)型>UNIQUE在定義完所有字段后再指定唯一約束的語(yǔ)法格式是:[CONSTRAINT<唯一約束名>]UNIQUE(<字段名1>,<字段名2>,--)唯一約束可以在一個(gè)數(shù)據(jù)表中設(shè)置多個(gè)字段,也可以類(lèi)似聯(lián)合主鍵一樣設(shè)置聯(lián)合唯一約束。(2)定義多種約束任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)定義非空約束對(duì)于使用了非空約束的字段,如果用戶(hù)在添加數(shù)據(jù)時(shí)沒(méi)有指定值,數(shù)據(jù)庫(kù)系統(tǒng)會(huì)報(bào)錯(cuò)。定義非空約束的語(yǔ)法格式是:<字段名><數(shù)據(jù)類(lèi)型>NOTNULL定義默認(rèn)值約束定義默認(rèn)值約束的語(yǔ)法格式是:<字段名><數(shù)據(jù)類(lèi)型>DEFAULT<默認(rèn)值>在定義默認(rèn)值約束時(shí)如果默認(rèn)值為字符類(lèi)型,則要用半角引號(hào)將字符括起來(lái)。(2)定義多種約束任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)定義外鍵約束外鍵用來(lái)在兩個(gè)表的數(shù)據(jù)之間建立鏈接,它可以是一列或者多列。一個(gè)表可以有一個(gè)或多個(gè)外鍵。表的外鍵與另外一張表的主鍵建立參照關(guān)系,所以外鍵對(duì)應(yīng)的是參照完整性。一個(gè)表的外鍵可以為空值,若不為空值,則每一個(gè)外鍵值必須等于另一個(gè)表中主鍵的某個(gè)值。主表(父表):對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中主鍵所在的那個(gè)表即是主表。從表(子表):對(duì)于兩個(gè)具有關(guān)聯(lián)關(guān)系的表而言,相關(guān)聯(lián)字段中外鍵所在的那個(gè)表即是從表。創(chuàng)建外鍵的要求:●外鍵字段的數(shù)據(jù)類(lèi)型、字符集等必須與父表中的主鍵一致●添加外鍵的數(shù)據(jù)表的存儲(chǔ)引擎必須是INNODB,否則外鍵添加成功,也不具備外鍵約束作用●一張表中不能出現(xiàn)同名外鍵●當(dāng)外鍵字段中有值后,再添加外鍵時(shí),已有的值必須在父表主鍵中有,否則無(wú)法創(chuàng)建成功(2)定義多種約束任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)定義外鍵約束定義外鍵約束的語(yǔ)法格式是:[CONSTRAINT<外鍵約束名>]FOREIGNKEY(字段名1[,字段名2,...])REFERENCES<主表名>(主鍵字段名1[,主鍵字段名2,...])(2)定義多種約束任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)定義字段值自增長(zhǎng)在數(shù)據(jù)庫(kù)應(yīng)用中,經(jīng)常希望在每次插入新記錄時(shí),系統(tǒng)自動(dòng)生成字段的主鍵值??梢酝ㄟ^(guò)為表主鍵添加AUTO_INCREMENT關(guān)鍵字來(lái)實(shí)現(xiàn)。默認(rèn)的,在MYSQL中AUTO_INCREMENT的初始值是1,每新增一條記錄,字段值自動(dòng)加1。一個(gè)表只能有一個(gè)字段使用AUTO_INCREMENT,且該字段必須為主鍵的一部分。AUTO_INCREMENT約束的字段可以是任何整數(shù)類(lèi)型(TINYTNT、SMALLIN、INT.BIGINT等)。定義字段值自增長(zhǎng)的語(yǔ)法格式是:<字段名><數(shù)據(jù)類(lèi)型>AUTO__INCREMENT(2)定義多種約束任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五2.任務(wù)內(nèi)容按照教材表3-2所列的結(jié)構(gòu),創(chuàng)建borrowers表。注意同時(shí)定義各種約束。注意當(dāng)前字符集和存儲(chǔ)引擎對(duì)定義約束的影響。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)1創(chuàng)建數(shù)據(jù)表任務(wù)五3.完成任務(wù)(1)啟動(dòng)MySQL服務(wù)器并登錄。(2)在MySQL命令提示符后輸入以下命令語(yǔ)句并執(zhí)行?!駝?chuàng)建borrowers表的命令CREATETABLEBORROWERS(borr_idchar(12)notnullprimarykey,borr_namechar(8)notnull,borr_sexchar(2)notnull,borr_ageintnotnull,borr_deptvarchar(20notnull,borr_predintnotnulldefault1);任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)(1)使用語(yǔ)句刪除數(shù)據(jù)表刪除數(shù)據(jù)表就是將數(shù)據(jù)庫(kù)中已經(jīng)存在的表從數(shù)據(jù)庫(kù)中刪除。注意,在刪除表的同時(shí),表的定義和表中所有的數(shù)據(jù)均會(huì)被刪除。因此,在進(jìn)行刪除操作前,最好對(duì)表中的數(shù)據(jù)做個(gè)備份,以免造成無(wú)法挽回的后果。使用DROPTABLE可以一次刪除一個(gè)或多個(gè)沒(méi)有被其他表關(guān)聯(lián)的數(shù)據(jù)表,其語(yǔ)法格式是:DROPTABLE[IFEXISTS]表1,表2,...,表n;可選參數(shù)“IFEXISTS"用于在刪除前判斷刪除的表是否存在,加上該參數(shù)后,再刪除表的時(shí)候,如果表不存在,SQL語(yǔ)句可以順利執(zhí)行,但是會(huì)發(fā)出警告(WARNING)。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)(2)數(shù)據(jù)插入使用基本的INSERT語(yǔ)句插入數(shù)據(jù)要求指定表名稱(chēng)和插入到新記錄中的值。其基本語(yǔ)法格式是:INSERTINTO<表名>[(字段1.字段2,字段N)]VALUES(數(shù)據(jù)1.數(shù)據(jù)2,數(shù)據(jù)N);注意,使用該語(yǔ)句時(shí)字段列和數(shù)據(jù)值的數(shù)量必須相同。如果數(shù)據(jù)是字符型,必須使用單引號(hào)或者雙引號(hào)將其引起來(lái)。INSERT語(yǔ)句還可以將SELECT語(yǔ)句查詢(xún)的結(jié)果插入到表中,其基本語(yǔ)法格式是:INSERTINTO目標(biāo)數(shù)據(jù)表名(輸入字段列表)SELECT(查詢(xún)字段列表)FROM查詢(xún)數(shù)據(jù)表名WHERE(條件);任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)(3)數(shù)據(jù)刪除從數(shù)據(jù)表中刪除數(shù)據(jù)使用DELETE語(yǔ)句,DELETE語(yǔ)句允許WHERE子句指定刪除條件。DELETE語(yǔ)句基本語(yǔ)法格式如下:DELETEFROM表名[WHERE條件];如果沒(méi)有指定WHERE子句,MYSQL表中的所有記錄將被刪除;可以在WHERE子句中指定任何條件;您可以在單個(gè)表中一次性刪除記錄。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五1.前導(dǎo)知識(shí)(4)數(shù)據(jù)更新表中有數(shù)據(jù)之后,接下來(lái)可以對(duì)數(shù)據(jù)進(jìn)行更新操作,MYSQL中使用UPDATE語(yǔ)句更新表中的記錄,可以更新特定的行或者同時(shí)更新所有的行?;菊Z(yǔ)法結(jié)構(gòu)是:UPDATE表名SET字段1=值1,字段2=值2,…,字段N=值N[WHERE
條件]可以同時(shí)更新一個(gè)或多個(gè)字段??梢栽赪HERE子句中指定任何條件。要保證UPDATE以WHERE子句結(jié)束,通過(guò)WHERE子句指定被更新的記錄所需要滿(mǎn)足的條件,如果忽略WHERE子句,MYSQL將更新表中所有的行。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五2.任務(wù)內(nèi)容(1)在數(shù)據(jù)庫(kù)tsgl中創(chuàng)建數(shù)據(jù)表bookstmp。(2)刪除數(shù)據(jù)表bookstmp。(3)向數(shù)據(jù)表borrows中插入數(shù)據(jù)。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五3.完成任務(wù)(1)在數(shù)據(jù)庫(kù)tsgl中創(chuàng)建數(shù)據(jù)表bookstmp。啟動(dòng)MySQL服務(wù)器并登錄,在MySQL命令提示符后依次輸入以下命令語(yǔ)句并執(zhí)行。執(zhí)行結(jié)果如圖3-16所示。createtablebookstmpselect*frombooks;showcreatetablebookstmp\G(2)刪除數(shù)據(jù)表bookstmp。在MySQL命令提示符后輸入以下命令語(yǔ)句并執(zhí)行。droptablebookstmp;任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)2管理數(shù)據(jù)表任務(wù)五3.完成任務(wù)(3)向數(shù)據(jù)表borrows中插入數(shù)據(jù)在MySQL命令提示符后依次輸入以下命令語(yǔ)句并執(zhí)行。insertintoborrowsvalues("202093080023","9787300035949",20200306,20200506);insertintoborrowsvalues("202093080023","9787302429159",20200306,20200506);insertintoborrowsvalues("129772007032","9787302429159",20200306,20200506);任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3修改數(shù)據(jù)表結(jié)構(gòu)任務(wù)五1.前導(dǎo)知識(shí)(1)修改表名修改表名的具體的語(yǔ)法格式是:ALTERTABLE<舊表名>RENAME[T0]<新表名>;其中TO為可選參數(shù),使用與否均不影響結(jié)果。常用的修改表的操作有:修改表名、修改字段數(shù)據(jù)類(lèi)型或字段名、增加和刪除字段、修改字段的排列位置、更改表的存儲(chǔ)引擎、刪除表的外鍵約束等。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3修改數(shù)據(jù)表結(jié)構(gòu)任務(wù)五1.前導(dǎo)知識(shí)(2)修改字段的數(shù)據(jù)類(lèi)型修改字段的數(shù)據(jù)類(lèi)型,就是把字段的數(shù)據(jù)類(lèi)型轉(zhuǎn)換成另一種數(shù)據(jù)類(lèi)型,其具體的語(yǔ)法格式是:ALTERTABLE<表名>MODIFY<字段名><數(shù)據(jù)類(lèi)型>其中“表名”指要修改數(shù)據(jù)類(lèi)型的字段所在表的名稱(chēng),“字段名”指需要修改的字段,“數(shù)據(jù)類(lèi)型”指修改后字段的新數(shù)據(jù)類(lèi)型。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3修改數(shù)據(jù)表結(jié)構(gòu)任務(wù)五1.前導(dǎo)知識(shí)(3)修改字段名修改字段名的具體的語(yǔ)法格式是:ALTERTABLE<表名>CHANGE<舊字段名><新字段名><新數(shù)據(jù)類(lèi)型>;其中,“舊字段名”指修改前的字段名;“新字段名”指修改后的字段名;“新數(shù)據(jù)類(lèi)型”指修改后的數(shù)據(jù)類(lèi)型,如果不需要修改字段的數(shù)據(jù)類(lèi)型,可以將新數(shù)據(jù)類(lèi)型設(shè)置成與原來(lái)一樣即可,但數(shù)據(jù)類(lèi)型不能為空。CHANGE也可以只修改數(shù)據(jù)類(lèi)型,實(shí)現(xiàn)和MODIFY同樣的效果,方法是將SQL語(yǔ)句中的“新字段名”和“舊字段名”設(shè)置為相同的名稱(chēng),只改變“數(shù)據(jù)類(lèi)型”。由于不同類(lèi)型的數(shù)據(jù)在機(jī)器中存儲(chǔ)的方式及長(zhǎng)度并不相同,修改數(shù)據(jù)類(lèi)型可能會(huì)影響到數(shù)據(jù)表中已有的數(shù)據(jù)記錄。因此,當(dāng)數(shù)據(jù)庫(kù)表中已經(jīng)有數(shù)據(jù)時(shí),不要輕易修改數(shù)據(jù)類(lèi)型。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3修改數(shù)據(jù)表結(jié)構(gòu)任務(wù)五1.前導(dǎo)知識(shí)(4)添加字段添加字段的具體的語(yǔ)法格式是:ALTERTABLE<表名>ADD(新字段名)(數(shù)據(jù)類(lèi)型)[約束條件][FIRST|AFTER已存在字段名];新字段名為需要添加的字段的名稱(chēng);“FIRST”為可選參數(shù),其作用是將新添加的字段設(shè)置為表的第一個(gè)字段;“AFTER"為可選參數(shù),其作用是將新添加的字段添加到指定的“已存在字段名”的后面?!癋IRST|AFTER已存在字段名”用于指定新增字段在表中的位置,如果語(yǔ)句中沒(méi)有這兩個(gè)參數(shù),則默認(rèn)將新添加的字段設(shè)置為數(shù)據(jù)表的最后列。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3修改數(shù)據(jù)表結(jié)構(gòu)任務(wù)五1.前導(dǎo)知識(shí)(5)刪除字段刪除字段是將數(shù)據(jù)表中的某個(gè)字段從表中移除,其語(yǔ)法格式是:ALTERTABLE<表名>DROP<字段名>;“字段名”指需要從表中刪除的字段的名稱(chēng)。任務(wù)實(shí)施④更改文字內(nèi)容任務(wù)準(zhǔn)備子任務(wù)3修改數(shù)據(jù)表結(jié)構(gòu)任務(wù)五
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)礦用潛水排污泵市場(chǎng)全面調(diào)研及行業(yè)投資潛力預(yù)測(cè)報(bào)告
- 企業(yè)質(zhì)量管理體系制度
- 企業(yè)薪酬管理制度
- 企業(yè)合同管理制度
- 臨時(shí)麻醉管理制度
- 2026湖北省定向中國(guó)政法大學(xué)選調(diào)生招錄備考題庫(kù)附答案
- 2026電科華錄校園招聘?jìng)淇碱}庫(kù)附答案
- 2026福建寧德市藍(lán)海旅游發(fā)展有限公司招聘參考題庫(kù)附答案
- 2026福建省面向上海財(cái)經(jīng)大學(xué)選調(diào)生選拔工作備考題庫(kù)附答案
- 2026福建福州市戰(zhàn)坂置業(yè)有限公司招聘4人備考題庫(kù)附答案
- 2025年版歷史新課標(biāo)歷史文化活動(dòng)總結(jié)范文
- 2025年技工學(xué)校行業(yè)市場(chǎng)現(xiàn)狀分析及未來(lái)三到五年發(fā)展趨勢(shì)報(bào)告
- 2024-2025學(xué)年粵教粵科版(2024)小學(xué)科學(xué)一年級(jí)下冊(cè)教學(xué)計(jì)劃及進(jìn)度表
- 光伏公司倉(cāng)庫(kù)管理制度
- 個(gè)人分紅保險(xiǎn)精算規(guī)定
- 2023-2029年中國(guó)檔案縮微產(chǎn)品行業(yè)市場(chǎng)全景評(píng)估及投資戰(zhàn)略研究報(bào)告
- 遼寧省大連西崗區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期期末質(zhì)量檢測(cè)物理試題(含答案)
- 四川省涼山彝族自治州2024-2025學(xué)年八年級(jí)上學(xué)期期末語(yǔ)文試題
- DB11∕T161-2024城市道路融雪技術(shù)規(guī)程
- 企業(yè)領(lǐng)導(dǎo)力與團(tuán)隊(duì)管理能力提升
- 《鈉離子電池產(chǎn)業(yè)發(fā)展白皮書(shū)》
評(píng)論
0/150
提交評(píng)論