版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MySQL數(shù)據(jù)庫技術(shù)MySQL Database TechnologyMySQL數(shù)據(jù)庫概述Introduction to MySQL1962年3月3日出生于芬蘭赫爾辛基。開源 MySQL數(shù)據(jù)庫的創(chuàng)始成員、MySQL AB公司的首席技術(shù)官、MySQL數(shù)據(jù)庫第一行代碼的作者、MySQL數(shù)據(jù)庫命名人、MariaDB創(chuàng)始人兼首席技術(shù)官;獨(dú)自完成撰寫MySQL數(shù)據(jù)庫服務(wù)器端95%的代碼。Monty有一個(gè)女兒,名叫My,因此他將自己開發(fā)的數(shù)據(jù)庫命名為MySQL。MySQL之父Michael Monty WideniusMySQL的發(fā)展歷史20002003200620092010推出MyISAM開放源代碼正
2、式集成InnoDB引擎SUN公司收購了MySQL公司Oracle公司收購SUNMySQL 5.5正式版發(fā)布1994第一版本現(xiàn)在MySQL 8.0正式版發(fā)布全球數(shù)據(jù)庫排行MySQL的特點(diǎn)01開源軟件02適用于OLTP場(chǎng)景03服務(wù)器數(shù)量大04主要應(yīng)用于互聯(lián)網(wǎng)行業(yè)國內(nèi)MySQL應(yīng)用 連接層完成連接處理、授權(quán)認(rèn)證、及相關(guān)的安全方案。處理層完成緩存的查詢,SQL的分析和優(yōu)化以及部分內(nèi)置函數(shù)的操作。引擎層負(fù)責(zé)數(shù)據(jù)的存儲(chǔ)和提取。存儲(chǔ)層將數(shù)據(jù)存儲(chǔ)在運(yùn)行于裸設(shè)備的文件系統(tǒng)之上,并完成與存儲(chǔ)引擎的交互。MySQL邏輯概念MySQL的COMMAND窗口在COMMAND窗口輸入簡單的SQL語句。在COMMAND窗口執(zhí)
3、行文件,如Source d:demo.sqlMySQL圖形管理工具-Workbench可視化數(shù)據(jù)庫管理;操作直觀、功能強(qiáng)大,實(shí)用工具豐富;數(shù)據(jù)庫遷移方便。MySQL圖形管理工具-Navicat可同時(shí)連接 MySQL和MariaDB;支持MySQL大部分最新功能,包括表、視圖、函數(shù)或過程、事件等;操作直觀、功能強(qiáng)大MySQL圖形管理工具-PhpMyAdminPhpMyAdmin是由PHP語言開發(fā),以WEB形式控制和操作。PhpMyAdmin是LAMP(Linux, apache, MySQL, PHP)軟件包集成的工具軟件。PhpMyAdmin是PHP開發(fā)最佳的數(shù)據(jù)庫管理工具,靈活方便,功能強(qiáng)大
4、。學(xué)習(xí)本門課的基礎(chǔ)C語言JavaPython課程整體概覽66個(gè)數(shù)據(jù)庫術(shù)語CREATEDATABASETABLEALTERAUTO_INCREMENTOLD SHOW SCHEMADESCRIBEMODIFYPRIMARY KEYNEWDROP IFFIRSTCHANGEFOREIGN KEYOUTEXISTSUSEAFTERRENAMEREFERENCESINOUTADDNOT NULLDEFAULTUNIQUECONSTRAINTTRANSACTIONDISTINCEASBETWEEN ANDINAVGPRIVILEGESSUMMAXMINCOUNTGROUP BYLOGHAVINGORDE
5、R BYINNER JOINLEFT JOINRIGHT JOINMYSQLDUMPDELETEALL ANYINSERTUPDATEGRANTCASEINDEXVIEWPROCEDUREVARIABLESREVOKEROLLBACKWHILEREPEATLOOPTRIGGERCOMMIT千里之行,始于足下!老子謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database TechnologyMySQL的安裝Install MySQLMySQL的版本社區(qū)版Community可以自由下載而且完全免費(fèi),但是官方不提供任何技術(shù)支持,適用于大多數(shù)普通
6、用戶;企業(yè)版Enterprise不僅不能自由下載而且還收費(fèi),但是該版本提供了更多的功能,可以享受完備的技術(shù)支持,適用于對(duì)數(shù)據(jù)庫的功能和可靠性要求比較高的企業(yè)客戶。操作演示卸載MySQLNO.1NO.2NO.3NO.4點(diǎn)擊控制面板卸載程序,卸載掉所有相關(guān)的MySQL軟件刪除安裝目錄下C:Program Files的 MySQL文件夾刪除目錄下C:ProgramData(是一個(gè)隱藏文件夾)的MySQL文件夾刪除注冊(cè)表HKEY_LOCAL_MACHINESYSTEMControlSet001ServicesEventLogApplication下的MySQL文件夾下載與安裝Navicat試一試謝謝聆
7、聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database TechnologyMySQL的配置Configurate MySQL弓調(diào)而后求勁焉,馬服而后求良焉!荀子哀公在“C: ProgramData MySQLMySQL Server 5.7data”目錄下。My.ini文件的位置My.ini重要的設(shè)置01port客戶端和服務(wù)端的端口號(hào)默認(rèn)的端口號(hào)為330603character-set-server服務(wù)器端字符集如果要在數(shù)據(jù)表中正確地顯示中文,必須將其設(shè)置為UTF8。02default-character-set客戶端字符集如果要在數(shù)據(jù)表中
8、正確地顯示中文,必須將其設(shè)置為UTF8。04default-storage-engine默認(rèn)的存儲(chǔ)引擎為InnoDB。存儲(chǔ)引擎其實(shí)就是對(duì)于數(shù)據(jù)庫文件的一種存取機(jī)制,如何實(shí)現(xiàn)存儲(chǔ)數(shù)據(jù),如何為存儲(chǔ)的數(shù)據(jù)建立索引以及如何更新,查詢數(shù)據(jù)等技術(shù)實(shí)現(xiàn)的方法。什么是存儲(chǔ)引擎?MySQL存儲(chǔ)引擎類型存儲(chǔ)特性MyISAMInnoDBMEMORY存儲(chǔ)限制有64TB有事務(wù)安全不支持支持不支持鎖機(jī)制表鎖行鎖表鎖B樹索引支持支持支持哈希索引不支持不支持支持全文索引支持不支持不支持集群索引不支持支持不支持支持支持支持支持?jǐn)?shù)據(jù)緩存支持支持索引緩存支持支持支持?jǐn)?shù)據(jù)可壓縮支持不支持不支持空間使用低高N/A內(nèi)存使用低高中等批量插
9、入的速度高低高支持外鍵不支持支持不支持SHOW VARIABLES LIKE %storage_engine%;查詢默認(rèn)存儲(chǔ)引擎修改默認(rèn)存儲(chǔ)引擎修改字符集修改my.ini的注意事項(xiàng)修改my.ini文件之前一定要停止MySQL服務(wù),修改之后重新啟動(dòng)MySQL服務(wù)。A修改my.ini文件之后只對(duì)新創(chuàng)建的數(shù)據(jù)庫有效。B操作演示在C:WINDOWSSystem32文件下以管理員身份運(yùn)行 “cmd”命令。在DOS窗口中,如果想查看 Windows系統(tǒng)已經(jīng)啟動(dòng)的服務(wù),可以通過如下命令來實(shí)現(xiàn):NET STARTDOS窗口啟動(dòng)和關(guān)閉MySQL服務(wù)如果MySQL軟件的服務(wù)已經(jīng)啟動(dòng),可以通過命令來關(guān)閉MySQL服
10、務(wù),具體命令內(nèi)容如下:NET STOP MySQL57關(guān)閉MySQL服務(wù)如果MySQL軟件的服務(wù)MySQL是處于關(guān)閉狀態(tài),可以通過命令來啟動(dòng)MySQL服務(wù),具體命令內(nèi)容如下:NET START MySQL57啟動(dòng)MySQL服務(wù)小結(jié)謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database TechnologyE-R模型E-R MODELE-R模型的構(gòu)成主鍵實(shí)體睡眠聯(lián)系屬性E-R模型區(qū)別于其他對(duì)象的“事件”或“物體”。能唯一區(qū)分這個(gè)實(shí)體的屬性。每個(gè)實(shí)體固有的特征。兩個(gè)實(shí)體之間的關(guān)系,有1:1,1:N , M:N三種。實(shí)體姓名性別手機(jī)號(hào)碼訂單編
11、號(hào)名稱編碼生產(chǎn)日期廠家顧客商品訂單訂單日期一對(duì)一聯(lián)系(1:1)一對(duì)多聯(lián)系(1:N)多對(duì)多聯(lián)系(M:N)圖書管理系統(tǒng)數(shù)據(jù)庫E-R模型關(guān)系模型:讀者讀者編號(hào)姓名性別出生日期借書總量101101肖華女1993-3-12101102王明峰男1987-5-100101103鐘漢生男1976-10-103101104秦飛飛男1967-12-110101105鄭琴女1994-7-10101106張楚楚女1983-4-232101107王漢男1972-1-122101108肖之瑜男1984-3-120字段名行:記錄小結(jié)謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQ
12、L Database Technology創(chuàng)建數(shù)據(jù)庫Create Database數(shù)據(jù)庫( Database,簡稱DB):是按照一定的數(shù)據(jù)結(jié)構(gòu)來組織、存放和管理數(shù)據(jù)的倉庫。什么是數(shù)據(jù)庫?數(shù)據(jù)庫的基本原理表1表2表3表4表5數(shù)據(jù)庫1數(shù)據(jù)庫2數(shù)據(jù)庫類型系統(tǒng)數(shù)據(jù)庫英文中文英文中文CREATE創(chuàng)建DATABASE數(shù)據(jù)庫SHOW 查看SCHEMA數(shù)據(jù)庫DROP 刪除IF假如EXISTS存在USE使用創(chuàng)建數(shù)據(jù)庫術(shù)語創(chuàng)建數(shù)據(jù)庫SQL語句如果程序讀寫優(yōu)盤嘗試:保存一個(gè)尺寸極小,甚至只有一項(xiàng)的文件。然后保存一個(gè)很大的剛好在優(yōu)盤容量限制之內(nèi)的文件。保存空文件。保存尺寸大于優(yōu)盤容量的文件。邊界條件:磁盤語法CREA
13、TE DATABASE|SCHEMA IF NOT EXISTS database_name;說明database_name:創(chuàng)建的數(shù)據(jù)庫名。IF NOT EXISTS:在創(chuàng)建數(shù)據(jù)庫前加上一個(gè)判斷,只有該數(shù)據(jù)庫目前尚不存在時(shí)才執(zhí)行CREATE DATABASE操作。失之毫厘,謬以千里。禮記.經(jīng)解查看數(shù)據(jù)庫語法SHOW DATABASES;選擇數(shù)據(jù)庫語法USE database_name;刪除數(shù)據(jù)庫語法DROP DATABASE database_name;創(chuàng)建圖書管理系統(tǒng)數(shù)據(jù)庫方法1:通過COMMAND命令窗口創(chuàng)建CREATE DATABASE db_library;創(chuàng)建圖書館數(shù)據(jù)庫db_li
14、brary打開MySQL Workbench在SCHEMAS欄內(nèi)單擊右鍵,選擇Create Schema輸入數(shù)據(jù)庫名db_library再點(diǎn)擊“Apply”“Finish”。方法2:通過MySQL Workbench創(chuàng)建操作演示小結(jié)你能用我們今天講到的方式創(chuàng)建一個(gè)學(xué)生數(shù)據(jù)庫(db_student)嗎?舉一反三謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology數(shù)據(jù)類型Data Type 數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,是決定存儲(chǔ)數(shù)據(jù)的存儲(chǔ)格式、有效范圍和相應(yīng)的限制。數(shù)據(jù)類型概述MySQL數(shù)據(jù)類型整數(shù)類型整數(shù)類型字節(jié)最小
15、值最大值備注TINYINT1有符號(hào)-128無符號(hào)0有符號(hào)127無符號(hào)255微整型SMALLINT2有符號(hào)-32768無符號(hào)0有符號(hào)32767無符號(hào)65535小整型MEDIMINT3有符號(hào)-8388608無符號(hào)0有符號(hào)8388607無符號(hào)1677215中整型INT或INTEGER4有符號(hào)-21448648無符號(hào)0有符號(hào)2147483647無符號(hào)4294967295整型BIGINT8有符號(hào)-92372036854775808無符號(hào)0有符號(hào)92372036854775807無符號(hào)18446744073709551615大整型整數(shù)類型舉例表:圖書復(fù)本量、庫存量小數(shù)類型浮點(diǎn)數(shù)類型字節(jié)最小值最大值備注FL
16、OAT41.7549435E-383.402823466E+38單精度浮點(diǎn)數(shù)DOUBLE82.2250738585072014E-3081.7976931348623157E+308雙精度浮點(diǎn)數(shù)定點(diǎn)數(shù)類型定義說明備注DEC(M,D)或DECIMAL(M,D)DECIMAL(length, precision)length決定小數(shù)的最大位數(shù)precision用于設(shè)置小數(shù)位數(shù)定點(diǎn)數(shù)小數(shù)類型舉例表:圖書圖書價(jià)格日期時(shí)間型日期和時(shí)間類型字節(jié)描述格式備注DATE41000-101-01YYYY-MM-DD日期型DATETIME81000-01-01 00:00:00YYYY-MM-DD HH:MM:SS
17、日期時(shí)間型TIMESTAMP419700101080001YYYY-MM-DD HH:MM:SS時(shí)間戳型TIME3-835:59:59HH:MM:SS時(shí)間型YEAR11901YYYY年日期時(shí)間型舉例表:讀者出生日期CHAR系列字符串類型字節(jié)描述備注CHAR(M)MM為0-255之間的整數(shù)定長字符串VARCHAR(M)MM為0-65 535之間的整數(shù)不定長字符串字符串類型:CHAR與VARCHAR備注:如果需要存儲(chǔ)少量字符串則可以選擇CHAR和VARCHAR類型,如果字符串長度經(jīng)常發(fā)生變化選擇VARCHAR類型。字符串類型:CHAR與VARCHAR舉例表:圖書書名、作者字符串類型:TEXTTEX
18、T系列字符串類型字節(jié)描述備注TINYTEXT0-255值的長度為+1個(gè)字節(jié)微文本TEXT0-65 535值的長度為+2個(gè)字節(jié)文本MDIUMTEXT0-167 772 150值的長度為+3個(gè)字節(jié)中文本LONGTEXT0-4 294 967 295值的長度為+4個(gè)字節(jié)長文本備注:如果需要存儲(chǔ)大量字符串則選擇TEXT類型。二進(jìn)制類型: BINARYBINARY系列類型大小備注BINARY (M)0-255字節(jié)定長二進(jìn)制VARBINARY (M)0-65535字節(jié)不定長二進(jìn)制備注:BINARY系列字符串系列可以存儲(chǔ)二進(jìn)制數(shù)據(jù),如圖片、音樂等文件。位類型大小備注BIT0-63字節(jié)位類型二進(jìn)制類型:BLO
19、BBLOB系列類型大小備注TINYBLOB0-255字節(jié)微二進(jìn)制BLOB0-65 535字節(jié)二進(jìn)制MDIUMBLOB0-167 772 15字節(jié)中二進(jìn)制LONGBLOB0-4 294 967 295字節(jié)長二進(jìn)制備注:如果需要存儲(chǔ)大量二進(jìn)制數(shù)據(jù),如電影等視頻文件,則選擇BLOB系列字符串類型。復(fù)合型類型大小備注Enum (“value1”, “value2”, ) 0-65535字節(jié)該類型的列只可以容納所列值之一或?yàn)镹ULLSet(“value1”, “value2”, )0-63字節(jié)該類型的列可以容納一組值或?yàn)镹ULL定義:Gender enum(男,女) Interest set(唱歌,游泳
20、,網(wǎng)球)在符合應(yīng)用要求(取值范圍、精度)的前提下,盡量在符合應(yīng)用要求的前提下,使用 “ 短 ” 數(shù)據(jù)類型。一些數(shù)字類型的字段,如學(xué)號(hào)、電話號(hào)碼,設(shè)置成字符串類型;如果需要設(shè)置成自增,則設(shè)置成整型,如ID。在MySQL中,日期型默認(rèn)寬度為8,日期時(shí)間型默認(rèn)為14,不需要自己去定義寬度。盡量采用精確小數(shù)類型(例如decimal),而不采用浮點(diǎn)數(shù)類型。選擇數(shù)據(jù)類型的注意事項(xiàng)小結(jié)謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology創(chuàng)建數(shù)據(jù)表Create Table創(chuàng)建數(shù)據(jù)表元素1.采用26個(gè)英文字母(區(qū)分大小寫)和0-9
21、的自然數(shù)(經(jīng)常不需要)加上下劃線_組成,命名簡潔明確,多個(gè)單詞用下劃線_分隔。2.一般采用小寫命名。3.禁止使用數(shù)據(jù)庫關(guān)鍵字,如:table, time, datetime, primary 等。4.字段名稱一般采用名詞或動(dòng)賓短語,如user_id,is_good。5.采用字段的名稱必須是易于理解,一般不超過三個(gè)英文單詞。字段命名規(guī)范英文中文CREATE創(chuàng)建SHOW 查看DROP 刪除TABLE數(shù)據(jù)表DESCRIBE描述創(chuàng)建數(shù)據(jù)表術(shù)語CREATE TABLE table_name ( col_name 1 data_type1, col _name 2 data_type 2, col_nam
22、e n data_type n)說明:table_name為創(chuàng)建的數(shù)據(jù)表的表名col_name為創(chuàng)建的字段名data_type為要?jiǎng)?chuàng)建的字段的數(shù)據(jù)類型。創(chuàng)建數(shù)據(jù)表SQL語句語法DESCRIBE table_name;查看表結(jié)構(gòu)語句語法例:DESCRIBE t_student; SHOW TABLES;查看所有數(shù)據(jù)表語法說明:如果是復(fù)制其他數(shù)據(jù)庫的表結(jié)構(gòu),在table_name2前加上數(shù)據(jù)庫的名稱:例:將數(shù)據(jù)庫db_library中的reader表結(jié)構(gòu)復(fù)制到當(dāng)前數(shù)據(jù)庫,命名為表結(jié)構(gòu)t_readerr;CREATE TABLE t_reader LIKE db_library.reader;復(fù)制表
23、結(jié)構(gòu)CREATE TABLE table_name1 LIKE table_name2; 語法db_name刪除表DROP TABLE table_name;語法例:刪除表t_studentDROP TABLE t_student;圖書管理系統(tǒng)數(shù)據(jù)庫E-R模型創(chuàng)建db_library的數(shù)據(jù)表讀者t_reader出版社t_press圖書t_book歸還記錄t_return_record借閱記錄t_borrow_record讀者:t_readerreader_id(讀者編號(hào))reader_name(讀者姓名)reader_sex(讀者性別)reader_birthday(讀者出生日期)reader
24、_borrowtotal(借書總量)字段名稱數(shù)據(jù)類型reader_idCHAR(6)reader_nameVARCHAR(50)reader_sexCHAR(2)reader_birthdayDATEreader_borrowtotalFLOAT圖書:t_bookISBN(書籍編號(hào))book_name(書籍名稱)book_author(作者)book_price(價(jià)格) press_id(出版社編號(hào))字段名稱數(shù)據(jù)類型ISBNCHAR(17)book_nameVARCHAR(50)book_authorVARCHAR(20)book_priceDEC(6.1)press_idCHAR(3)出版社
25、:t_presspress_id(出版社編號(hào)) press_name(出版社名稱)website(網(wǎng)址) postcode(郵編)press_telephone(出版社電話)press_email(郵箱)press_address(地址)字段名稱數(shù)據(jù)類型press_idCHAR(3)press_nameVARCHAR(50)websiteVARCHAR(50)postcodeCHAR(6)press_telephoneVARCHAR(20)press_emailVARCHAR(50)press_addressVARCHAR(100)借閱記錄:t_borrow_recordborrow_id(借
26、閱編號(hào))reader_id(讀者編號(hào))ISBN(圖書編號(hào))borrow_date(借閱日期)字段名稱數(shù)據(jù)類型borrow_idCHAR(6)reader_idCHAR(6)ISBNCHAR(17)borrow_dateDATEreturn_id(歸還編號(hào))borrow_id(借閱編號(hào))return_date(歸還日期)ISBN(圖書編號(hào))borrow_date(借閱日期)歸還記錄:t_return_record字段名稱數(shù)據(jù)類型return_idCHAR(9)borrow_idCHAR(6)return_dateDATEISBNCHAR(17)borrow_dateDATE操作演示小結(jié)創(chuàng)建數(shù)據(jù)表
27、元素不可三天打魚,兩天曬網(wǎng)!中國俗語謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology修改數(shù)據(jù)表Alter Table修改數(shù)據(jù)表之單詞大比拼修改表名語法ALTER TABLE old_table_name RENAME new_table_name;舉例修改表t_reader為新的表名readerALTER table t_reader RENAME reader;增加字段語法ALTER TABLE table_name ADD col_name1 data_type FIRST|AFTER col_name2
28、;舉例在表reader中添加一個(gè)字段reader_address;ALTER TABLE student ADD reader_address VARCHAR(100);刪除字段語法ALTER TABLE table_name DROP col_name舉例刪除添加的字段“地址”ALTER TABLE student DROP 地址;修改字段的數(shù)據(jù)類型語法ALTER TABLE table_name MODIFY col_name1 data_type舉例將地址reader_address的數(shù)據(jù)類型由varchar改為charALTER TABLE reader MODIFY reader_a
29、ddress CHAR(100); 修改字段的名稱語法ALTER TABLE table_name CHANGE old_col_name new_col old_data_type 舉例將將字段名reader_address修改為addressALTER TABLE reader CHANGE reader_address ADDRESS CHAR(100);修改字段的順序語法ALTER TABLE table_name MODIFY col_name1 data_type FIRST|AFTER col_name2舉例將字段名“address”調(diào)整到字段名reader_telephone之
30、后ALTER TABLE reader MODIFY 地址 VARCHAR(100) AFTER reader_telephone;01將表t_book1重命名為t_book。03刪除t_return_record表下的兩個(gè)字段ISBN(圖書編號(hào)),borrow_date(借閱日期)。02在t_book表下添加兩個(gè)字段:book_copy(復(fù)本量),book_ inventory(庫存量),數(shù)據(jù)類型均為INT。04將表t_reader中的字段reader_borrowtotal的數(shù)據(jù)類型改為INT;將表t_press中的字段website改名為press_website,字段postcode改
31、名為press_postcode。修改數(shù)據(jù)表實(shí)例01ALTER TABLE t_book1 RENAME t_book;將表t_book1重命名為t_book。修改數(shù)據(jù)表實(shí)例02ALTER TABLE t_book ADD book_copy INT;ALTER TABLE t_book ADD book_inventory INT;在t_book表下添加兩個(gè)字段:book_copy(復(fù)本量),book_ inventory(庫存量),數(shù)據(jù)類型均為INT。修改數(shù)據(jù)表實(shí)例03ALTER TABLE t_return_record DROP borrow_date;刪除t_return_recor
32、d表下的兩個(gè)字段ISBN(圖書編號(hào)),borrow_date(借閱日期)。修改數(shù)據(jù)表實(shí)例04ALTER TABLE t_reader MODIFY reader_borrowtotal INT;ALTER TABLE t_press CHANGE website press_website VARCHAR(50);ALTER TABLE t_press CHANGE postcode press_postcode CHAR(6);將表t_reader中的字段reader_borrowtotal的數(shù)據(jù)類型改為INT;將表t_press中的字段website改名為press_website,字段p
33、ostcode改名為press_postcode。操作演示修改數(shù)據(jù)表術(shù)語測(cè)試世上無難事,只要肯攀登!毛澤東謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology數(shù)據(jù)表約束-非空與默認(rèn)值TABLE RESTRICTION- NOT NULL AND DEFAULT VALUE什么是數(shù)據(jù)完整性?對(duì)于已經(jīng)創(chuàng)建好的數(shù)據(jù)表,已經(jīng)設(shè)置了數(shù)據(jù)類型,但是表中所存儲(chǔ)的數(shù)據(jù)是否合法并沒有進(jìn)行檢查。因此可以對(duì)已經(jīng)創(chuàng)建好的表定義完整性約束,或者在創(chuàng)建新表的時(shí)候就進(jìn)行完整性約束的定義。數(shù)據(jù)完整性是指數(shù)據(jù)的精確性和可靠性。防止數(shù)據(jù)庫中存在不符
34、合語義規(guī)定的數(shù)據(jù)和防止因數(shù)據(jù)庫操作員錯(cuò)誤數(shù)據(jù)的輸入輸出而造成數(shù)據(jù)庫中存在的錯(cuò)誤數(shù)據(jù)。數(shù)據(jù)完整性的分類實(shí)體完整性Entity Integrity指關(guān)系中的主屬性值不能為Null且不能有相同值。參照完整性Referential Integrity兩個(gè)表的主鍵和外鍵的數(shù)據(jù)應(yīng)對(duì)應(yīng)一致用戶定義完整性User-defined Integrity針對(duì)某個(gè)特定關(guān)系數(shù)據(jù)庫的約束條件。實(shí)體完整性t_reader參照完整性的父表與子表主鍵外鍵t_bookt_press參照完整性的規(guī)則01禁止在從表中插入包含主表中不存在的關(guān)鍵字的數(shù)據(jù)行。02禁止刪除在從表中有對(duì)應(yīng)記錄的主表記錄。03禁止會(huì)導(dǎo)致從表中相應(yīng)值孤立的主表中
35、的外鍵值改變。讀者編號(hào)姓名性別出生日期借書總量101101肖華女1993-3-12101102王明峰男1987-5-100101103鐘漢生男1976-10-103101104秦飛飛男1967-12-110101105鄭琴女1994-7-10101106張楚楚女1983-4-232101107王漢男1972-1-122101108肖之瑜男1984-3-120101109張蕓女1991-9-43101110朱強(qiáng)男1982-4-150101111王中磊男1991-10-310101112明道男1992-5-251101113鐘雙雙女2000-12-181101114杜曉云女2001-9-10110
36、1115王芝女2000-6-101101116肖明明男1993-4-120用戶定義完整性讀者編號(hào)前5位只是10110性別只能是男和女借書總量不超過6數(shù)據(jù)表約束類型完整性約束關(guān)鍵字含義NOT NULL約束字段的值不能為空DEFAULT設(shè)置字段的默認(rèn)值UNIQUE KEY(UK)約束字段的值是唯一AUTO_INCREMENT約束字段的值為自動(dòng)增加PRIMARY KEY(PK)約束字段為表的主鍵,可以作為該表記錄的唯一標(biāo)識(shí)FOREIGN KEY約束字段為表的外鍵非空與默認(rèn)值完整性約束關(guān)鍵字含義NOT NULL約束字段的值不能為空DEFAULT設(shè)置字段的默認(rèn)值NOT NULL非空DEFAULT默認(rèn)值創(chuàng)
37、建新表時(shí)設(shè)置語法CREATE TABLE table_name( col_name data_type NOT NULLDEFAULT );非空約束-設(shè)置已存在的表語法ALTER TABLE table_name MODIFY col_name data_type NOT NULL|DEFAULT;設(shè)置非空與默認(rèn)值實(shí)例01創(chuàng)建新表t_reader1,為reader_id設(shè)置非空,設(shè)置性別的默認(rèn)值為“男”。03設(shè)置表t_reader中的reader_borrowtotal(借書總量)的默認(rèn)值為0.02為已存在的表t_book,設(shè)置ISBN為非空。設(shè)置非空與默認(rèn)值實(shí)例01創(chuàng)建新表t_reader1
38、,為reader_id設(shè)置非空,設(shè)置性別的默認(rèn)值為“男”。CREATE TABLE t_reader1( reader_id INT NOT NULL, reader_name VARCHAR(50), reader_sex CHAR(2) DEFAULT 男, reader_birthday DATE, reader_borrowtotal INT );設(shè)置非空與默認(rèn)值實(shí)例02為已存在的表t_book,設(shè)置ISBN為非空。ALTER TABLE t_book MODIFY ISBN CHAR(17) NOT NULL;設(shè)置非空與默認(rèn)值實(shí)例03設(shè)置表t_reader中的reader_borro
39、wtotal(借書總量)的默認(rèn)值為0.ALTER TABLE t_reader MODIFY reader_borrowtotal INT DEFAULT 0;操作演示小結(jié)謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology數(shù)據(jù)表約束-唯一鍵與自增Table Restriction- Unique and Auto_increment唯一鍵與自增完整性約束關(guān)鍵字含義UNIQUE KEY(UK)約束字段的值是唯一AUTO_INCREMENT約束字段的值為自動(dòng)增加UNIQUE唯一鍵公民的身份證號(hào),學(xué)生的學(xué)號(hào),職工的編
40、號(hào)等哪些必須設(shè)置唯一鍵?公民的身份證號(hào),學(xué)生的學(xué)號(hào),職工的編號(hào)AUTO_INCREMENT自增創(chuàng)建新表時(shí)設(shè)置語法CREATE TABLE table_name( col_name data_type UNIQUE|AUTO_INCREMENT,);設(shè)置已存在的表語法ALTER TABLE table_name MODIFY col_name data_type UNIQUE|AUTO_INCREMENT;刪除唯一鍵語法ALTER TABLE table_name DROP INDEX index_name;說明索引一般是設(shè)置唯一約束的字段名必須是整數(shù)類型才可以設(shè)置AUTO_INCEREMENT
41、必須先定義為一個(gè)鍵(主鍵或者唯一鍵)才可以設(shè)置為AUTO_INCEREMENT。可以用ALTER TABLE table_name AUTO_INCREMENT=default_value為字段設(shè)置自增的初始值。設(shè)置自增的注意事項(xiàng)設(shè)置唯一鍵與自增實(shí)例01創(chuàng)建新的數(shù)據(jù)表t_reader2,表結(jié)構(gòu)與t_reader一致,設(shè)置return_id為整型,且為AUTO_INCREMENT和UNIUQE02為已存在的表t_press,將press_id設(shè)置唯一鍵與自增。設(shè)置唯一鍵與自增實(shí)例01創(chuàng)建新的數(shù)據(jù)表t_reader2,表結(jié)構(gòu)與t_reader一致,設(shè)置return_id為整型,且為AUTO_INC
42、REMENT和UNIUQECREATE TABLE t_reader2(reader_id int UNIQUE AUTO_INCREMENT,reader_name VARCHAR(50),reader_sex CHAR(2),reader_birthday DATE,reader_borrowtotal INT);設(shè)置唯一鍵與自增實(shí)例為已存在的表t_press的press_id設(shè)置唯一鍵與自增。ALTER TABLE t_press MODIFY press_id INT UNQUE AUTO_INCREMENT; 操作演示世界上的一切都必須按照一定的規(guī)則秩序各就各位。波蘭作家 萊蒙特小結(jié)
43、謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology數(shù)據(jù)表約束-主鍵與外鍵TABLE RESTRICTION- PRIMARY KEY AND FOREIGN KEY英文中文英文中文PRIMARY KEY主鍵NOT NULL非空FOREIGN KEY外鍵DEFAULT 默認(rèn)值REFERENCES參照UNIQUE唯一CONSTRAINT約束AUTO_INCREMENT自增數(shù)據(jù)表約束術(shù)語主鍵與外鍵的參照關(guān)系ISBNbook_namebook_authorbook_pricepress_idbook_copybook_
44、inventory103103103103105101101101104106102press_idpress_namepress_websitepress_telephonepress_emailpress_addresspress_postcode101102103104105106子表t_book主表t_press單字段主鍵創(chuàng)建新表設(shè)置CREATE TABLE table_name( col_name data_type PRIMARY KEY,);為已存在的表設(shè)置ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY
45、KEY(col_name);刪除主鍵ALTER TABLE table_name DROP PRIMARY KEY;多字段主鍵創(chuàng)建新表時(shí)設(shè)置CREATE TABLE table_name( col_name data_type ,CONSTRAINT constraint_name PRIMARY KEY (col_name1, col_name2);為已存在的表設(shè)置ALTER TABLE table_name ADD CONSTRAINT constraint_name PRIMARY KEY(col_name1, col_name2);外鍵-創(chuàng)建新表時(shí)設(shè)置語法CREATE TABLE ta
46、ble_name( col_name data_type,CONSTRAINT constraint_name FOREIGN KEY(col_name1) REFERENCES table_name(col_name2);外鍵-為已存在的表設(shè)置語法ALTER TABLE table_name1 ADD CONSTRAINT constraint_name FOREIGN KEY(col_name1) REFERENCES table_name2(col_name2)刪除外鍵語法ALTER TABLE table_name1 DROP FOREIGN KEY constraint_name刪除
47、外鍵注意事項(xiàng) 如果沒有設(shè)置外鍵的名稱,系統(tǒng)則會(huì)自動(dòng)加上一個(gè)外鍵的名稱,可以用命令進(jìn)行查看,然后刪除:Show create table table_name;如果要徹底刪除外鍵,應(yīng)刪除一個(gè)在建立外鍵時(shí)自動(dòng)創(chuàng)建的索引,如果沒有定義約束的名稱,一般是外鍵設(shè)置時(shí)的字段名;如果定義了約束的名稱,索引一般是約束的名稱;也可以用命令進(jìn)行查看:Show indexes from table_name;外鍵與主鍵的約束RESTRICTCASCADESET NULLNO ACTION當(dāng)要?jiǎng)h除或更新父表中被參照列上在外鍵中出現(xiàn)的值時(shí),拒絕對(duì)父表的刪除或更新操作。從父表刪除或更新行時(shí)自動(dòng)刪除或更新子表中匹配的行。當(dāng)
48、從父表刪除或更新行時(shí),設(shè)置子表中與之對(duì)應(yīng)的外鍵列為NULL。如果外鍵列沒有指定NOT NULL限定詞,這就是合法的。不采取動(dòng)作,如果有一個(gè)相關(guān)的外鍵值在被參考的表里,刪除或更新父表中主要鍵值的企圖不被允許,和RESTRICT一樣。設(shè)置主鍵與外鍵實(shí)例為數(shù)據(jù)表t_press設(shè)置主鍵press_id,為t_book設(shè)置主鍵isbn和外鍵press_id,外鍵press_id參照t_press表中的主鍵press_id。ALTER TABLE t_press ADD PRIMARY KEY press_id;ALTER TABLE t_book ADD PRIMARY key isbn;ALTER T
49、ABLE t_book add CONSTRAINT fk_pressid FOREIGN KEY(press_id) REFERENCES t_press(press_id);操作演示舉一反三創(chuàng)建數(shù)據(jù)表t_borrow_record1,表結(jié)構(gòu)與t_borrow_record一致,設(shè)置主鍵borrow_id,外鍵reader_id和ISBN,外鍵reader_id參照t_reader中的主鍵reader_id,外鍵ISBN參照t_book中的主鍵ISBN。參考代碼CREATE TABLEt_borrow_record1 ( borrow_id char(6) , reader_id char(
50、6) , ISBN char(17) , borrow_date date , PRIMARY KEY (borrow_id), CONSTRAINT fk_ISBN FOREIGN KEY (ISBN) REFERENCES t_book (ISBN), CONSTRAINT fk_readerid FOREIGN KEY (reader_id) REFERENCES t_reader (reader_id) ;小結(jié)謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Database Technology關(guān)系代數(shù)運(yùn)算RELATIONAL ALGEB
51、RAIC OPERATION6種基本的關(guān)系代數(shù)運(yùn)算 并 差笛卡兒積投影選擇交設(shè)有兩個(gè)關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的并是由屬于R或?qū)儆赟的元組組成的集合,記為RUS。形式定義如下: RSt|tRtS 式中t是元組變量。 并(union) ABCabcdafcbdABCbgadafABCabcdafcbdbga關(guān)系 R關(guān)系 SRS關(guān)系R和S具有相同的關(guān)系模式,R和S的差是由屬于R但不屬于S的元組組成的集合,記為R-S。形式定義如下: R-St|tRt S差(difference)ABCabcdafcbdABCbgadaf關(guān)系 SABCabccbd R-S關(guān)系 R設(shè)關(guān)系R和S的元數(shù)分別為
52、r和s。定義R和S的笛卡兒積是一個(gè)(r+s)元的元組集合,每個(gè)元組的前r個(gè)分量來自R的一個(gè)元組,后s個(gè)分量來自S的一個(gè)元組,記為 RS。形式定義如下: RSt|ttrRtsS 式中tr ,ts中的r、s為上標(biāo)。若只有m個(gè)元組,S有n個(gè)元組,則RS有(mn)個(gè)元組。笛卡兒積(extended cartesian product) R.AR.BR.CS.AS.BS.CabcbgaabcdafdafbgadafdafcbdbgacbddafRSABCabcdafcbdABCbgadaf關(guān)系 S關(guān)系 R 投影操作是對(duì)關(guān)系進(jìn)行垂直分割,消去某些列,并重新安排列的順序,再刪去重復(fù)元組。投影(project
53、ion)ACacdfcdA,C(R)ABCabcdafcbdABCbgadaf關(guān)系 S關(guān)系 R選擇操作是根據(jù)某些條件對(duì)關(guān)系作水平分割,即選擇符合條件的元組。選擇(selection)ABCabccbdBb(R)ABCabcdafcbdABCbgadaf關(guān)系 S關(guān)系 R關(guān)系R和S具有相同的關(guān)系模式,關(guān)系R和S的交是由屬于及又屬于S的元組構(gòu)成的集合,記為RS。形式定義如下: RSt|tRtS交(intersection)ABCdafRSABCabcdafcbdABCbgadaf關(guān)系 S關(guān)系 R小結(jié)謝謝聆聽THANK YOU FOR YOUR ATTENTIONMySQL數(shù)據(jù)庫技術(shù)MySQL Dat
54、abase Technology簡單查詢Simple Query數(shù)據(jù)表的基本操作英文中文select選擇(字段)from 來自(表)where在(條件下)distinct獨(dú)特的,去掉重復(fù)的as作為,另外起一個(gè)名簡單查詢術(shù)語語法格式SELECT col_name1,col_name2,col_namenFROM table_name;符號(hào)表達(dá)序號(hào)符號(hào)說明1查詢指定字段數(shù)據(jù)查詢指定字段數(shù)據(jù)2*查詢所有字段3DISTINCT避免重復(fù)數(shù)據(jù)查詢4operation(+,-,*,/,%)實(shí)現(xiàn)數(shù)學(xué)四則運(yùn)算數(shù)據(jù)查詢5AS更改查詢結(jié)果的字段名簡單查詢記錄實(shí)例t_reader表中查詢讀者的reader_id和re
55、ader_name。01在表t_book中查詢所有的圖書信息。02在t_book表中查詢借出書的數(shù)量。03在t_return_record表中查詢r(jià)eturn_date,并顯示為“還書日期”。04簡單查詢記錄實(shí)例在t_reader表中查詢讀者的reader_id和reader_name。01SELECT reader_id,reader_name FROM t_reader;reader_idreader_namereader_sexreader_birthdayreader_borrowtotal101101肖華女1993/3/1101102王明峰男1987/5/10101103鐘漢生男19
56、76/10/10101104秦飛飛男1967/12/11101105鄭琴女1994/7/1101106張楚楚女1983/4/23101107王漢男1972/1/12101108肖之瑜男1984/3/12101109張蕓女1991/9/4101110朱強(qiáng)男1982/4/15101111王中磊男1991/10/31101112明道男1992/5/25101113鐘雙雙女2000/12/18101114杜曉云女2001/9/10101115王芝女2000/6/10101116肖明明男1993/4/12簡單查詢記錄實(shí)例在表t_book中查詢所有的圖書信息。02ISBNbook_namebook_aut
57、horbook_pricepress_idbook_copybook_inventory978-7-04-034745-63DSMAX2012+VRAY室內(nèi)效果圖案例教程劉剛7610321978-7-04-035413-3Premiere Pro CS5.5案例教程李濤7110352978-7-04-043916-8Illustrator CC中文版標(biāo)準(zhǔn)教程鄭國棟5610362978-7-04-048617-9計(jì)算機(jī)網(wǎng)絡(luò)安全的理論與實(shí)踐王杰5210361978-7-113-15131-7MySQL數(shù)據(jù)庫應(yīng)用從入門到精通王飛飛59.810575978-7-302-29239-6數(shù)據(jù)結(jié)構(gòu)邵增珍43
58、10143978-7-302-39346-7SQL Server教程鄭阿奇49.910132978-7-302-48586-5大數(shù)據(jù)分析與計(jì)算湯羽8910152978-7-5106-4661-4云計(jì)算應(yīng)用技術(shù)張宇5610494978-7-5611-8921-4通信工程設(shè)計(jì)及概預(yù)算于正永3410683978-7-5677-3957-4MySQL數(shù)據(jù)庫教程王晶晶3810241SELECT * FROM t_book;簡單查詢記錄實(shí)例在t_book表中查詢每本書被借出的數(shù)量。03SELECT book_copy-book_inventory,book_name FROM t_book;ISBNboo
59、k_namebook_authorbook_pricepress_idbook_copybook_inventory978-7-04-034745-63DSMAX2012+VRAY室內(nèi)效果圖案例教程劉剛7610321978-7-04-035413-3Premiere Pro CS5.5案例教程李濤7110352978-7-04-043916-8Illustrator CC中文版標(biāo)準(zhǔn)教程鄭國棟5610362978-7-04-048617-9計(jì)算機(jī)網(wǎng)絡(luò)安全的理論與實(shí)踐王杰5210361978-7-113-15131-7MySQL數(shù)據(jù)庫應(yīng)用從入門到精通王飛飛59.810575978-7-302-29
60、239-6數(shù)據(jù)結(jié)構(gòu)邵增珍4310143978-7-302-39346-7SQL Server教程鄭阿奇49.910132978-7-302-48586-5大數(shù)據(jù)分析與計(jì)算湯羽8910152978-7-5106-4661-4云計(jì)算應(yīng)用技術(shù)張宇5610494978-7-5611-8921-4通信工程設(shè)計(jì)及概預(yù)算于正永3410683978-7-5677-3957-4MySQL數(shù)據(jù)庫教程王晶晶3810241簡單查詢記錄實(shí)例在t_return_record表中查詢r(jià)eturn_date,并顯示為“還書日期”。SELECT DISTINCT return_date AS 還書日期 FROM t_retur
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 贛州職業(yè)技術(shù)學(xué)院《民用航空法》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛西科技職業(yè)學(xué)院《醫(yī)學(xué)檢驗(yàn)進(jìn)展(二)》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南科技學(xué)院《心理咨詢與身心健康》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛東學(xué)院《傳染科護(hù)理學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 法警安全檢查課件
- 中心對(duì)稱圖片課件
- 七年級(jí)語文上冊(cè)第五單元18狼課后習(xí)題新人教版
- 三年級(jí)品德與社會(huì)下冊(cè)第一單元在愛的陽光下第二課讀懂爸爸媽媽的心教案新人教版
- 三年級(jí)科學(xué)上冊(cè)第四單元人與水教材說明首師大版
- 2021一建考試《建設(shè)工程項(xiàng)目管理》題庫試卷考點(diǎn)題庫及參考答案解析五
- 干法讀書會(huì)分享
- 進(jìn)階練12 材料作文(滿分范文20篇)(解析版)-【挑戰(zhàn)中考】備戰(zhàn)2024年中考語文一輪總復(fù)習(xí)重難點(diǎn)全攻略(浙江專用)
- 骨質(zhì)疏松的中醫(yī)中藥治療
- 衛(wèi)浴銷售部門年終總結(jié)
- 機(jī)場(chǎng)安檢突發(fā)事件應(yīng)急預(yù)案
- 2024年高考真題-化學(xué)(天津卷) 含解析
- 安徽省蕪湖市2023-2024學(xué)年高二上學(xué)期期末考試 物理 含解析
- 2024年招投標(biāo)培訓(xùn)
- 人教A版(新教材)高中數(shù)學(xué)選擇性必修第三冊(cè)學(xué)案2:7 1 1 條件概率
- 部編版三年級(jí)上冊(cè)語文期末復(fù)習(xí)資料
- 北京郵電大學(xué)《數(shù)據(jù)庫系統(tǒng)》2023-2024學(xué)年期末試卷
評(píng)論
0/150
提交評(píng)論