




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