




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
db3數(shù)據(jù)庫(kù)數(shù)據(jù)表創(chuàng)建管理第一頁(yè),共65頁(yè)。創(chuàng)建數(shù)據(jù)庫(kù)和數(shù)據(jù)表第二頁(yè),共65頁(yè)。SQL語(yǔ)句的書(shū)寫(xiě)規(guī)范在數(shù)據(jù)庫(kù)系統(tǒng)中,SQL語(yǔ)句不區(qū)分大小寫(xiě)(建議用大寫(xiě))。但字符串常量區(qū)分大小寫(xiě)。SQL語(yǔ)句可單行或多行書(shū)寫(xiě),以“;”結(jié)尾。關(guān)鍵詞不能跨多行或簡(jiǎn)寫(xiě)。用空格和縮進(jìn)來(lái)提高語(yǔ)句的可讀性。子句通常位于獨(dú)立行,便于編輯,提高可讀性。SELECT*FROMtb_table注釋?zhuān)篠QL標(biāo)準(zhǔn):/**/。多行注釋“--”單行注釋MySql注釋?zhuān)骸?”第三頁(yè),共65頁(yè)。創(chuàng)建數(shù)據(jù)庫(kù)建立數(shù)據(jù)庫(kù)操作:
語(yǔ)法:createdatabase數(shù)據(jù)庫(kù)名敘述:創(chuàng)建一個(gè)具有指定名稱(chēng)的數(shù)據(jù)庫(kù)。如果要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)已經(jīng)存在,或者沒(méi)有創(chuàng)建它的適當(dāng)權(quán)限,則此語(yǔ)句失敗。例:建立一個(gè)student庫(kù)。
mysql>createdatabasestudent;第四頁(yè),共65頁(yè)。查看數(shù)據(jù)庫(kù)命令:showdatabases;列出當(dāng)前數(shù)據(jù)庫(kù)服務(wù)器實(shí)例下所有的數(shù)據(jù)庫(kù)切換數(shù)據(jù)庫(kù):use數(shù)據(jù)庫(kù)的名字,例:usestudents;第五頁(yè),共65頁(yè)。SHOWDATABASES語(yǔ)法:SHOWDATABASES[LIKEwild];如果使用LIKEwild不符,wild字符串可以是一個(gè)使用SQL的”%”和”_”通配符的字符串。功能:列出在MySql服務(wù)器主機(jī)上的數(shù)據(jù)庫(kù)。MySql自帶數(shù)據(jù)庫(kù):Information_schema:主要存儲(chǔ)了系統(tǒng)中的一些數(shù)據(jù)庫(kù)對(duì)象信息:如用戶(hù)表信息、列信息、權(quán)限信息、字符集信息、分區(qū)信息等。(數(shù)據(jù)字典表)Mysql:存儲(chǔ)了系統(tǒng)的用戶(hù)權(quán)限信息及幫助信息。Test:系統(tǒng)自動(dòng)創(chuàng)建的測(cè)試數(shù)據(jù)庫(kù),任何用戶(hù)都可以使用。第六頁(yè),共65頁(yè)。使用USE選用數(shù)據(jù)庫(kù)語(yǔ)法:USE數(shù)據(jù)庫(kù)名;功能:把指定數(shù)據(jù)庫(kù)作為默認(rèn)(當(dāng)前)數(shù)據(jù)庫(kù)使用,用于后續(xù)語(yǔ)句。第七頁(yè),共65頁(yè)。修改數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù)信息:status;命令語(yǔ)句:alterdatabase數(shù)據(jù)庫(kù)名字charactersetgb2312修改字符集Defaultcollategb2312_Chinese_ci;修改排序規(guī)則
第八頁(yè),共65頁(yè)。數(shù)據(jù)庫(kù)對(duì)象第九頁(yè),共65頁(yè)。數(shù)據(jù)庫(kù)對(duì)象的命名規(guī)則必須以字母開(kāi)頭可包括數(shù)字和三個(gè)特殊字符(#_$)不要使用MySQL的保留字同一Schema下的對(duì)象不能同名第十頁(yè),共65頁(yè)。建立表操作:語(yǔ)法:createtable表名(列名1列類(lèi)型[<列的完整性約束>],列名2列類(lèi)型[<列的完整性約束>],......);敘述:在當(dāng)前數(shù)據(jù)庫(kù)下新創(chuàng)建一個(gè)數(shù)據(jù)表。列類(lèi)型:表示該列的數(shù)據(jù)類(lèi)型。例:建立一個(gè)表school,其由兩列組成,第一列屬性為非空,并做為主鍵,并自增createtableschool(school_idint(10)notnullauto_incrementprimarykey,school_namevarchar(20) );創(chuàng)建表第十一頁(yè),共65頁(yè)。常見(jiàn)完整性約束:PRIMARYKEY 主碼約束(主鍵)UNIQUE 唯一性約束NOTNULL 非空值約束 AUTO_INCREMENT 用于整數(shù)列默認(rèn)自增1UNSIGNED無(wú)符號(hào)整數(shù)DEFAULTdefault_value 默認(rèn)值約束DEFAULTcur_timestamp創(chuàng)建新記錄時(shí)默認(rèn)保存當(dāng)前時(shí)間(僅適用timestamp數(shù)據(jù)列)ONUPDATEcur_timestamp修改記錄時(shí)默認(rèn)保存當(dāng)前時(shí)間(僅適用timestamp數(shù)據(jù)列)CHARACTERSETname指定字符集(僅適用字符串)第十二頁(yè),共65頁(yè)。數(shù)據(jù)表類(lèi)型在創(chuàng)建一個(gè)新的MySQL數(shù)據(jù)表時(shí),可以為它設(shè)置一個(gè)類(lèi)型,其中最重要的3種類(lèi)型是MyISAM:成熟、穩(wěn)定和易于管理InnoDB:加入事務(wù)、數(shù)據(jù)行級(jí)鎖定機(jī)制、外鍵約束條件、崩潰恢復(fù)等新功能HEAP:只存在于內(nèi)存中,可做臨時(shí)表createtabletmp(…)ENGINE=MyISAM第十三頁(yè),共65頁(yè)。列類(lèi)型MySql支持多種列類(lèi)型:數(shù)值類(lèi)型日期/時(shí)間類(lèi)型字符串(字符)類(lèi)型第十四頁(yè),共65頁(yè)。數(shù)值數(shù)據(jù)類(lèi)型-整數(shù)第十五頁(yè),共65頁(yè)。數(shù)值數(shù)據(jù)類(lèi)型-浮點(diǎn)數(shù)第十六頁(yè),共65頁(yè)。日期/時(shí)間類(lèi)型第十七頁(yè),共65頁(yè)。字符串類(lèi)型第十八頁(yè),共65頁(yè)。思考電話號(hào)碼一般使用什么數(shù)據(jù)類(lèi)型存儲(chǔ)?性別一般使用什么數(shù)據(jù)類(lèi)型存儲(chǔ)?年齡信息一般使用什么數(shù)據(jù)類(lèi)型存儲(chǔ)?照片信息一般使用什么數(shù)據(jù)類(lèi)型存儲(chǔ)?薪水一般使用什么數(shù)據(jù)類(lèi)型存儲(chǔ)?第十九頁(yè),共65頁(yè)。關(guān)于識(shí)別符第二十頁(yè),共65頁(yè)。建表示例第二十一頁(yè),共65頁(yè)。建表示例第二十二頁(yè),共65頁(yè)。SHOW語(yǔ)法:SHOWTABLES[FROM數(shù)據(jù)庫(kù)名][LIKEwild];功能:顯示當(dāng)前數(shù)據(jù)庫(kù)中已有的數(shù)據(jù)表的信息第二十三頁(yè),共65頁(yè)。顯示表結(jié)構(gòu)操作語(yǔ)法:describe表名;
desc 表名;敘述:用于顯示表的創(chuàng)建結(jié)構(gòu)。第二十四頁(yè),共65頁(yè)。
刪除數(shù)據(jù)庫(kù)或表操作刪除表操作語(yǔ)法:droptable[ifexists]tab_name[,tab_name]...敘述:從數(shù)據(jù)庫(kù)中刪除給定的表。如果給出ifexists子句,則刪除不存在的表不會(huì)出錯(cuò)。刪除數(shù)據(jù)庫(kù)操作語(yǔ)法:dropdatabase[ifexists]db_name敘述:刪除給定的數(shù)據(jù)庫(kù)。在刪除一個(gè)數(shù)據(jù)庫(kù)后,它就永遠(yuǎn)沒(méi)有了,因此要特別小心。如果給出ifexists子句,則刪除不存在的數(shù)據(jù)庫(kù)不會(huì)出錯(cuò)。刪除命令要慎用第二十五頁(yè),共65頁(yè)。用ALTERTABLE語(yǔ)句修改表的結(jié)構(gòu)修改列類(lèi)型ALTERTABLE表名MODIFY列名列類(lèi)型;增加列ALTERTABLE表名ADD列名列類(lèi)型;刪除列ALTERTABLE表名DROP列名;列改名ALTERTABLE表名CHANGE舊列名新列名列類(lèi)型;更改表名ALTERTABLE表名RENAME新表名;RENAMETABLE表名TO新表名;第二十六頁(yè),共65頁(yè)。在表中增加字段使用ADD子句增加字段,新的字段只能被加到整個(gè)表的最后
–ALTERTABLEemployees –ADD(genderCHAR(1));第二十七頁(yè),共65頁(yè)。修改字段可修改列的數(shù)據(jù)類(lèi)型,大小和默認(rèn)值
–ALTERTABLEemployees –MODIFY(agenumber(1));不是任何情況都可以修改的,當(dāng)字段只包含空值時(shí),類(lèi)型、大小都可以修改,否則修改可能不能成功修改默認(rèn)值,只會(huì)對(duì)以后的插入有作用,對(duì)以前已經(jīng)存在的數(shù)據(jù)不會(huì)有影響第二十八頁(yè),共65頁(yè)。刪除字段可以從表中刪除列:
–ALTERTABLEemployees –DROPCOLUMNsex;從每行中刪除掉字段占據(jù)的長(zhǎng)度和數(shù)據(jù),釋放在數(shù)據(jù)塊中占用的空間.刪除大表中的字段將需要比較長(zhǎng)的時(shí)間,因?yàn)檫€需要回收空間第二十九頁(yè),共65頁(yè)。刪除表表中所有數(shù)據(jù)將被刪除沒(méi)有完成的事務(wù)被提交所有相關(guān)的索引被刪除不能回滾表結(jié)構(gòu)被刪除,表對(duì)象不再存在DROPTABLEtable_name;第三十頁(yè),共65頁(yè)。更改表名renametable...to...支持一次重命名多個(gè)表。RENAMETABLEold_table1TOtmp_table,new_tableTOold_table,tmp_tableTOnew_table;-完成表名交換。第三十一頁(yè),共65頁(yè)。MYSQL數(shù)據(jù)庫(kù)中的表用戶(hù)表: –被用戶(hù)創(chuàng)建和維護(hù)的一些表
–包括了用戶(hù)自己的信息數(shù)據(jù)字典表(視圖): –被數(shù)據(jù)庫(kù)系統(tǒng)創(chuàng)建和維護(hù)的一些表
–包括了數(shù)據(jù)庫(kù)的信息第三十二頁(yè),共65頁(yè)。MYSQL數(shù)據(jù)庫(kù)字典由information_schema數(shù)據(jù)庫(kù)負(fù)責(zé)維護(hù)tables-存放數(shù)據(jù)庫(kù)里所有的數(shù)據(jù)表、以及每個(gè)表所在數(shù)據(jù)庫(kù)。schema-存放數(shù)據(jù)庫(kù)里所有的數(shù)據(jù)庫(kù)信息views-存放數(shù)據(jù)庫(kù)里所有的視圖信息。columns-存放數(shù)據(jù)庫(kù)里所有的列信息。triggers-存放數(shù)據(jù)庫(kù)里所有的觸發(fā)器。routines-存放數(shù)據(jù)庫(kù)里所有存儲(chǔ)過(guò)程和函數(shù)。key_column_usage-存放數(shù)據(jù)庫(kù)所有的主外鍵table_constraints-存放數(shù)據(jù)庫(kù)全部約束。statistics-存放了數(shù)據(jù)表的索引。第三十三頁(yè),共65頁(yè)。什么是約束約束是在表上強(qiáng)制執(zhí)行的數(shù)據(jù)校驗(yàn)規(guī)則.約束主要用于保證數(shù)據(jù)庫(kù)的完整性。當(dāng)表中數(shù)據(jù)有相互依賴(lài)性時(shí),可以保護(hù)相關(guān)的數(shù)據(jù)不被刪除.大部分?jǐn)?shù)據(jù)庫(kù)支持下面五類(lèi)完整性約束:NOTNULL非空UNIQUEKey唯一鍵PRIMARYKEY主鍵FOREIGNKEY外鍵CHECK檢查第三十四頁(yè),共65頁(yè)。約束概述約束作為數(shù)據(jù)庫(kù)對(duì)象,存放在系統(tǒng)表中,也有自己的名字創(chuàng)建約束的時(shí)機(jī)在建表的同時(shí)創(chuàng)建建表后創(chuàng)建(修改表)可定義列級(jí)或表級(jí)約束有單列約束和多列約束第三十五頁(yè),共65頁(yè)。定義約束的語(yǔ)法第三十六頁(yè),共65頁(yè)。非空約束(NOTNULL)列級(jí)約束,只能使用列級(jí)約束語(yǔ)法定義。確保字段值不允許為空只能在字段級(jí)定義第三十七頁(yè),共65頁(yè)。NULL值所有數(shù)據(jù)類(lèi)型的值都可以是NULL??兆址坏扔贜ULL。0也不等于NULL。第三十八頁(yè),共65頁(yè)。非空約束(NOTNULL)CREATETABLEtb_student( idINTPRIMARYKEYAUTO_INCREMENT, NAMEVARCHAR(18)NOTNULL )第三十九頁(yè),共65頁(yè)。唯一約束唯一性約束條件確保所在的字段或者字段組合不出現(xiàn)重復(fù)值唯一性約束條件的字段允許出現(xiàn)多個(gè)NULL同一張表內(nèi)可建多個(gè)唯一約束唯一約束可由多列組合而成建唯一約束時(shí)MySQL會(huì)為之建立對(duì)應(yīng)的索引。如果不給唯一約束起名,該唯一約束默認(rèn)與列名相同。第四十頁(yè),共65頁(yè)。唯一約束CREATETABLEtb_student( idINTPRIMARYKEYAUTO_INCREMENT, NAMEVARCHAR(18)UNIQUENOTNULL)第四十一頁(yè),共65頁(yè)。主鍵約束主鍵從功能上看相當(dāng)于非空且唯一一個(gè)表中只允許一個(gè)主鍵主鍵是表中唯一確定一行數(shù)據(jù)的字段主鍵字段可以是單字段或者是多字段的組合當(dāng)建立主鍵約束時(shí),MySQL為主鍵創(chuàng)建對(duì)應(yīng)的索引主鍵約束名總為PRIMARY。第四十二頁(yè),共65頁(yè)。外鍵約束外鍵是構(gòu)建于一個(gè)表的兩個(gè)字段或者兩個(gè)表的兩個(gè)字段之間的關(guān)系外鍵確保了相關(guān)的兩個(gè)字段的兩個(gè)關(guān)系:子(從)表外鍵列的值必須在主表參照列值的范圍內(nèi),或者為空(也可以加非空約束,強(qiáng)制不允許為空)。當(dāng)主表的記錄被子表參照時(shí),主表記錄不允許被刪除。外鍵參照的只能是主表主鍵或者唯一鍵,保證子表記錄可以準(zhǔn)確定位到被參照的記錄。格式FOREIGNKEY(外鍵列名)REFERENCES主表(參照列)第四十三頁(yè),共65頁(yè)。主鍵與外鍵數(shù)據(jù)表之間的關(guān)聯(lián)/引用關(guān)系是依靠具體的主鍵(primarykey)和外鍵(foreignkey)建立起來(lái)的。主鍵:幫助MySQL以最快的速度把一條特點(diǎn)的數(shù)據(jù)記錄的位置確定下來(lái)。主鍵必須是唯一的主鍵應(yīng)該是緊湊的,因此整數(shù)類(lèi)型比較適合外鍵:引用另外一個(gè)數(shù)據(jù)表的某條記錄。外鍵列類(lèi)型盡可能與主鍵列類(lèi)型保持一致外鍵列應(yīng)該加上NOTNULL第四十四頁(yè),共65頁(yè)。主鍵createtablestudent( sidintnotnullauto_increment, namevarchar(20)notnull,
primarykey(sid));外鍵(自動(dòng)檢查外鍵是否匹配,僅適用InnoDB)createtablescore( cidintnotnullauto_incrementprimarykey, scoreint, sidint,
foreignkey(sid)referencesstudent(sid));第四十五頁(yè),共65頁(yè)。主表和從表1、當(dāng)主表中沒(méi)有對(duì)應(yīng)的記錄時(shí),不能將記錄添加到子表
——成績(jī)表中不能出現(xiàn)在學(xué)員信息表中不存在的學(xué)號(hào);2、不能更改主表中的值而導(dǎo)致子表中的記錄孤立
——把學(xué)員信息表中的學(xué)號(hào)改變了,學(xué)員成績(jī)表中的學(xué)號(hào)也應(yīng)當(dāng)隨之改變;3、子表存在與主表對(duì)應(yīng)的記錄,不能從主表中刪除該行
——不能把有成績(jī)的學(xué)員刪除了4、刪除主表前,先刪子表
——先刪學(xué)員成績(jī)表、后刪除學(xué)員信息表第四十六頁(yè),共65頁(yè)。選擇主鍵的原則最少性盡量選擇單個(gè)鍵作為主鍵穩(wěn)定性盡量選擇數(shù)值更新少的列作為主鍵第四十七頁(yè),共65頁(yè)。主鍵約束CREATETABLEtb_student( idINTPRIMARYKEYAUTO_INCREMENT, NAMEVARCHAR(18))第四十八頁(yè),共65頁(yè)。外鍵約束CREATETABLEtb_dept( dept_idINTPRIMARYKEY, NAMEVARCHAR(18), descriptionVARCHAR(255) );CREATETABLEtb_employee( employee_idINTPRIMARYKEY, NAMEVARCHAR(18), genderVARCHAR(10), dept_idINTREFERENCEStb_dept(dept_id), addressVARCHAR(255));第四十九頁(yè),共65頁(yè)。外鍵約束CREATETABLEtb_dept( dept_idINTPRIMARYKEY, NAMEVARCHAR(18), descriptionVARCHAR(255) );CREATETABLEtb_employee( employee_idINTPRIMARYKEY, NAMEVARCHAR(18), genderVARCHAR(10), dept_idINT, addressVARCHAR(255),
CONSTRAINTFOREIGNKEYtb_employee_fk(dept_id)REFERENCEStb_dept(dept_id));第五十頁(yè),共65頁(yè)。Check約束既可作為列級(jí)約束,也可作為表級(jí)約束定義在字段上的每一記錄都要滿(mǎn)足的條件在check中定義檢查的條件表達(dá)式,數(shù)據(jù)需要符合設(shè)置的條件條件表達(dá)式不允許使用–參照其他記錄的值
CREATETABLEtb_student( idINTPRIMARYKEYAUTO_INCREMENT, NAMEVARCHAR(18),
ageINTCHECK(age>18ANDage<60) )第五十一頁(yè),共65頁(yè)。建立表之間的關(guān)系第五十二頁(yè),共65頁(yè)。示例第五十三頁(yè),共65頁(yè)。列級(jí)約束與表級(jí)約束列級(jí)約束直接跟在列后定義,不再需要指定列名,與列定義之間用空格分開(kāi)表級(jí)約束通常放在所有的列定義之后定義,要顯式指定對(duì)哪些列建立列級(jí)約束。與列定義之間采用英語(yǔ)逗號(hào),隔開(kāi)。如果是對(duì)多列建聯(lián)合約束,只能使用表級(jí)約束語(yǔ)法。第五十四頁(yè),共65頁(yè)。增加約束可增加或刪除約束,但不能直接修改可使約束啟用和禁用非空約束必須使用MODIFY子句增加只要是可以使用列級(jí)約束語(yǔ)法來(lái)定義的約束,都可以通過(guò)modify來(lái)增加該約束。
–ALTERTABLEtable –ADD[CONSTRAINTconstraint]type(column);第五十五頁(yè),共65頁(yè)。增加約束加FOREIGNKEY約束到EMP表
–ALTERTABLEtb_employee ADDCONSTRAINTtb_employee_dept_id_fk FOREIGNKEY(dept_id) REFERENCEStb_dept(dept_id);第五十六頁(yè),共65
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥物市場(chǎng)區(qū)分策略分析試題及答案
- 藥劑考試重點(diǎn)試題及答案
- 電工應(yīng)聘面試題及答案
- 研究文化產(chǎn)業(yè)管理重點(diǎn)試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師考試交互題目及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師高效工作方式探索試題及答案
- 穩(wěn)步推進(jìn)2025年臨床執(zhí)業(yè)醫(yī)師考試試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師備考策略的靈活運(yùn)用與知識(shí)點(diǎn)復(fù)習(xí)試題及答案
- 系統(tǒng)架構(gòu)設(shè)計(jì)師考試設(shè)計(jì)思維題目及答案
- 西醫(yī)臨床考試中的思維導(dǎo)圖應(yīng)用與試題及答案
- 鋁合金門(mén)窗施工組織設(shè)計(jì)方案
- 高中生議論文寫(xiě)作有效教學(xué)的策略探討
- 循環(huán)流化床鍋爐床溫的檢修與維護(hù)
- 《易經(jīng)》養(yǎng)生的奧秘課件
- 10 奪取抗日戰(zhàn)爭(zhēng)和人民解放戰(zhàn)爭(zhēng)的勝利(說(shuō)課稿)-2022-2023學(xué)年道德與法治五年級(jí)下冊(cè)
- 房屋出租分割證明
- 定制制氮機(jī)維修方案范本
- 2023年高考新課標(biāo)Ⅰ卷語(yǔ)文試題分析及2024年高考語(yǔ)文備考策略 課件36張
- 河北省張承高速公路承德段施工標(biāo)準(zhǔn)化管理實(shí)施細(xì)則隧道篇
- 整合醫(yī)學(xué)模式中國(guó)臨床心身醫(yī)學(xué)發(fā)展醫(yī)療健康課件
- 辦公用品采購(gòu)清單2022
評(píng)論
0/150
提交評(píng)論