




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第1章數據庫設計概述.ppt第2章MySQL概述.ppt第3章MySQL數據庫管理.ppt第4章MySQL表結構管理.ppt第5章表記錄的更新操作.ppt第6章表記錄的檢索.ppt第7章視圖.ppt第8章觸發器.ppt第9章存儲過程與存儲函數.ppt第10章備份與恢復.ppt第11章MySQL性能優化.ppt第12章事務與鎖機制.ppt第13章綜合開發案例——圖書館管理系統.ppt第1章數據庫設計概述01數據庫概述03E-R圖02數據庫的體系結構04數據庫設計數據庫概述1主要內容數據庫與數據庫管理系統1數據模型2結構化查詢語言SQL3數據庫與數據庫管理系統數據庫與數據庫管理系統
數據庫是信息系統的核心,它能有效地管理各類信息資源。數據庫與數據庫管理系統數據庫數據庫系統數據庫管理系統數據庫數據庫DatabaseDB存放數據的倉庫數據庫1234567890活著就是為了改變世界數據庫姓名課程成績數據庫姓名課程成績姓名課程成績數據庫系統數據庫系統DatabaseSystemDBS采用了數據庫技術的計算機系統數據庫系統對數據進行管理的軟件存儲介質、處理對象和管理系統的集合體數據庫系統數據庫硬件支持軟件支持數據庫管理員數據庫管理系統數據庫管理系統DatabaseManagementSystemDBMS位于操作系統和用戶之間的一個數據管理軟件數據庫模型數據庫模型數據模型是數據庫系統的核心與基礎,是描述數據與數據之間的聯系、數據的語義、數據一致性約束等概念性工具的集合。數據庫模型數據結構1數據操作2完整性約束3結構化查詢語言SQL結構化查詢語言SQL結構化查詢語言StructuredQueryLanguageSQL應用于關系數據庫查詢的結構化語言結構化查詢語言SQL1974Boyce和ChamberlinSEQUEL1976IBM公司SEQUEL21982美國國家標準化組織ANSISQL結構化查詢語言SQL介于關系代數和關系演算之間的語言豐富的
查詢功能SQLServerAccessOracleMySQLDB2結構化查詢語言SQLCREATESELECTINSERTUPDATEDELETEGRANT(REVOKE)結構化查詢語言SQLOraclePL/SQLSQLServerT-SQL數據庫的體系結構2數據庫三級模式結構1三級模式之間的映射2主要內容數據庫三級模式結構數據庫三級模式結構模式外模式內模式邏輯模式或概念模式一個數據庫只有一個模式不僅要定義數據的邏輯結構,而且要定義數據之間的聯系用戶模式外模式是模式的子集一個數據庫可以有多個外模式存儲模式一個數據庫只有一個內模式三級模式之間的映射外模式/模式映射模式外模式……外模式模式/內模式映射模式內模式E-R圖3主要內容實體和屬性1關系2E-R圖的設計原則3實體和屬性E-R圖E-R圖實體-關系圖實體關系實體高山流水老師學生精神生活物質基礎吉林省長春市實體屬性屬性是指實體的特征書名
大小封面顏色頁數出版社屬性實體:實體名屬性:屬性名設計圖書館管理系統的圖書實體圖。實例圖書書名譯者作者出版社價格頁碼類型編號條形碼……圖書書名譯者作者出版社價格頁碼類型編號條形碼……關系 關系關系:聯系名實體名關系類型一對一關系關系實體A1實體B1任職圖書館1館長1一對多關系關系實體An實體B1放置書架n圖書1多對多關系關系實體An實體Bm借閱讀者n圖書mE-R圖的設計原則E-R圖的設計原則先設計局部E-R圖,再把每一個局部的E-R圖綜合起來,生成總體的E-R圖。屬性應該存在于且只存在于某一個實體或者關系中。這樣可以避免數據冗余。實體是一個單獨的個體,不能存在于另一個實體中,即不能作為另一個實體的屬性。例如,圖1-1所示的圖書實體,不能作為借閱實體的一個屬性。同一個實體在同一個E-R圖中只能出現一次。設計圖書館管理系統的E-R圖。實例數據庫設計4主要內容為實體建立數據表1為表建立主鍵或外鍵2為字段選擇合適的數據類型3定義約束條件4為實體建立數據表為實體建立數據表圖書書名作者出版社價格編號編號書名作者出版社價格根據下面的圖書實體圖建立圖書信息表。實例為表建立主鍵或外鍵為表建立主鍵或外鍵
由于在設計數據表時,不允許出現完全相同的兩條記錄,所以通常會創建一個關鍵字(Key)字段,用于唯一標識數據表中的每一條記錄。讀者信息表條形碼關鍵字編號為表建立主鍵或外鍵建立主鍵1
在設計數據庫時,為每個實體建立對應的數據表后,通常還會為其創建主鍵,建立主鍵表稱為主表。作為主鍵的關鍵字可以是一個字段,也可以是字段的組合。作為主鍵的字段的值必須具有唯一性,并且不能為空(null)。如果主鍵由多個字段構成時,那么這些字段都不能為空。為表建立主鍵或外鍵建立外鍵2如果存在兩張數據表,如果表T1中的一個字段fk對應于表T2的主鍵pk,那么字段fk則稱為表T1的外鍵,T1稱為外鍵表或子表。此時,表T1的字段fk,要么是表T2的主鍵pk的值,要么是空值。外鍵通常是用于實現參照完整性的。為字段選擇合適的數據類型為字段選擇合適的數據類型字符串類型1字符串類型用于保存一系列字符的。這些字符在使用時是采用單引號括起來的,主要是用于保存不參與運算的信息。
'HTML5從入門到精通'
'9787302210337'
'302'變長字符串類型定長字符串類型為字段選擇合適的數據類型數值類型2數值類型是指可以參與算術運算的類型。它可以分為整型和小數類型,其中小數類型又包括浮點型和雙精度型。為字段選擇合適的數據類型日期時間類型3日期時間類型是指用于保存日期或者時間的數據類型。通常可以分為日期類型、時間類型和日期時間類型。。日期類型存儲的數據是“YYYY-MM-DD”格式的字符串時間類型存儲的數據是“hh:mm:ss”格式的字符串日期時間類型存儲的數據是“YYYY-MM-DDhh:mm:ss”格式的字符串定義約束條件定義約束條件
主鍵約束:用于約束唯一性和非空性,通過為表設置主鍵實現。
外鍵約束:需要建立兩張數據表間的關系,并且引用主表的字段。
唯一性約束:用于約束唯一性,可以通過為表設置唯一性約束實現。
非空約束:用于約束表中的某個字段不能為空。
檢查約束:用于檢查字段的輸入值是否滿足指定的條件。
默認值約束:用于為字段設置默認值。小結本章主要介紹的是數據庫技術中的一些基本概念和原理,其中重點包括數據庫與數據庫管理系統、數據模型的概念、常見的數據模型、數據庫的三級模式結構,三級模式之間的映射、E-R圖、以及數據庫設計等內容。其中,常見的數據模型和E-R圖,以及數據庫設計是本章的重點,希望大家認真學習,重點掌握。第2章MySQL概述01為什么選擇MySQL數據庫03MySQL服務器的安裝與配置02MySQL特性為什么選擇MySQL數據庫1主要內容什么是MySQL數據庫1MySQL的優勢2MySQL的發展史3什么是MySQL數據庫什么是MySQL數據庫
MySQL是一款開放源代碼的關系型數據庫。什么是MySQL數據庫MySQLAB結構化查詢語言(SQL)MySQL的優勢MySQL的優勢MySQL數據庫是一款自由軟件。
MySQL是一個真正的多用戶、多線程的SQL數據庫服務器。它是以客戶機/服務器結構的實現,由一個服務器守護程序mysqld和很多不同的客戶程序和庫的組成。它能夠快捷、有效和安全的處理大量的數據。MySQL的優勢Oracle數據庫快捷、便捷和簡單、易用VSMySQL數據庫MySQL的發展史MySQL的發展史MySQL名字的起源MySQL的基本目錄以及大量庫和工具均采用了前綴“my”。12共同創辦人MontyWidenius的女兒也叫“My”。MySQL的發展史Sakila“Dolphin命名”的比賽MySQL的發展史2016年12月MySQL5.7.17版本發布2009年4月20日Oracle收購Sun,MySQL轉入Oracle門下2008年1月16日MySQL被Sun收購2005年10月MySQL5.0發布,這是一個里程碑的版本1999~2000年MySQLAB公司成立1996年MySQL1.0發布1985年MySQLAB前身成立1985年MySQLAB前身成立1996年MySQL1.0發布1999~2000年MySQLAB公司成立2005年10月MySQL5.0發布,這是一個里程碑的版本2008年1月16日MySQL被Sun收購2009年4月20日Oracle收購Sun,MySQL轉入Oracle門下2016年12月MySQL5.7.17版本發布MySQL特性2MySQL特性使用C和C++編寫
Linux、MacOS、Windows
C、C++、Python、Java、PHP支持多線程優化的SQL查詢算法既能夠作為一個單獨的應用程序應用在客戶端服務器網絡環境中,也能夠作為一個庫而嵌入到其他的軟件中提供多語言支持。
TCP/IP、ODBC和JDBC提供用于管理、檢查、優化數據庫操作的管理工具。MySQL5.7的特性將InnoDB作為默認的數據庫存儲引擎改善性能和可擴展性提高實用性、易管理性和效率提高可用性、改善檢測與診斷性能MySQL服務器的安裝與配置3主要內容MySQL下載1MySQL環境安裝2啟動、連接、斷開和停止MySQL服務器3MySQL下載MySQL下載/downloads/MySQL環境安裝MySQL下載mysql-installer-community-.msi啟動、連接、斷開和停止MySQL服務器啟動、連接、斷開和停止MySQL服務器啟動、停止MySQL服務器1連接和斷開MySQL服務器2小結本章介紹了MySQL的基礎知識,以及MySQL服務器的安裝與配置。通過本章的學習,希望讀者對什么是MySQL數據庫、MySQL的發展史,以及MySQL都有哪些特性有所了解。并且能成功的安裝與配置好MySQL數據庫,為以后的學習打下良好的基礎。上機指導MySQL數據庫安裝完成后,會自動安裝一個圖形化工具Workbench,用于創建并管理數據庫,用戶可以使用該工具以圖形化的方式管理MySQL數據庫。本上機指導要求使用圖形化工具Workbench管理MySQL數據庫。第3章MySQL數據庫管理01創建數據庫03選擇數據庫02查看數據庫04修改數據庫05刪除數據庫06數據庫存儲引擎的應用創建數據庫1主要內容通過CREATEDATABASE語句創建數據庫1通過CREATESCHEMA語句創建數據庫2創建指定字符集的數據庫3創建數據庫前判斷是否存在同名數據庫4通過CREATEDATABASE語句創建數據庫創建數據庫創建數據庫的語法格式如下:數據庫命名規則由任意字母、阿拉伯數字、下劃線(_)和“$”組成。db_mrbbsdb_shop1db_sell$1合法的數據庫名400db\bbsdb`bbs非法的數據庫名數據庫命名規則不能與其他數據庫重名,并且在Windows系統下不區分大小寫。db_mrbbsdb_MRBBS合法的數據庫名數據庫命名規則名稱最長可為64個字符,而別名最多可長達256個字符。數據庫命名規則不能使用MySQL關鍵字作為數據庫名、表名。createbeginforlike合法的數據庫名創建數據庫通過CREATEDATABASE語句創建圖書館管理系統的數據庫。實例db_library通過CREATESCHEMA語句創建數據庫創建數據庫CREATEDATABASECREATESCHEMA創建數據庫創建數據庫創建數據庫的語法格式如下:創建數據庫通過CREATESCHEMA語句創建一個名稱為db_library1的數據庫。實例創建指定字符集的數據庫創建指定字符集的數據庫my.inidefault-character-set創建數據庫通過CREATEDATABASE語句創建一個名稱為db_library_gbk的數據庫,并指定其字符集為GBK。實例創建數據庫前判斷是否存在同名數據庫創建數據庫前判斷是否存在同名數據庫IFNOTEXISTS創建數據庫通過CREATEDATABASE語句創建圖書館管理系統的數據庫,名稱為db_library,并在創建前判斷該數據庫名稱是否存,只有不存在時才進行創建。實例查看數據庫2查看數據庫SHOW查看數據庫查看數據庫的語法格式如下:查看數據庫使用SHOWDATABASES語句查看MySQL服務器中的所有數據庫名稱。實例選擇數據庫3選擇數據庫USE選擇數據庫選擇數據庫的語法格式如下:選擇數據庫選擇名稱為db_library的數據庫,設置其為當前默認的數據庫。實例修改數據庫4修改數據庫ALTERDATABASEALTERSCHEMA修改數據庫修改數據庫的語法格式如下:在使用ALTERDATABASE或者ALTERSCHEMA語句時,用戶必須具有對數據庫進行修改的權限。GB2312或者GBKUTF-8修改數據庫修改前面視頻中創建的數據庫db_library1,設置默認字符集和較對規則。實例刪除數據庫5刪除數據庫DROPDATABASE刪除數據庫刪除數據庫的語法格式如下:刪除數據庫的操作應該謹慎使用,一旦執行該操作,數據庫的所有結構和數據都會被刪除,沒有恢復的可能,除非數據庫有備份。刪除數據庫通過DROPDATABASE語句刪除名稱為db_library2的數據庫。實例數據庫存儲引擎的應用6主要內容查詢MySQL中支持的存儲引擎1InnoDB存儲引擎2MyISAM存儲引擎3MEMORY存儲引擎4如何選擇存儲引擎5查詢MySQL中支持的存儲引擎查詢MySQL中支持的存儲引擎什么是存儲引擎?存儲數據為存儲的數據建立索引更新、查詢數據實現方法查詢MySQL中支持的存儲引擎1.查詢支持的全部存儲引擎SHOWENGINES查詢MySQL中支持的存儲引擎SHOWENGINES語句的語法格式如下:查詢MySQL中支持的存儲引擎1.查詢默認的存儲引擎SHOWVARIABLES查詢MySQL中支持的存儲引擎查詢默認的存儲引擎。實例MyISAM存儲引擎InnoDB存儲引擎InnoDB遵循CNU通用公開許可(GPL)發行,已經被一些重量級因特網公司所采用。雅虎InnoDB存儲引擎InnoDB給MySQL的表提供了事務、回滾、崩潰修復能力和多版本并發控制的事務安全。InnoDB存儲引擎InnoDB對事務處理的能力,是MySQL其他存儲引擎所無法與之比擬的。InnoDB存儲引擎中支持自動增長列AUTO_INCREMENT。自動增長列的值不能為空,且值必須唯一。MySQL中規定自增列必須為主鍵。InnoDB是MySQL史上第一個提供外鍵約束的表引擎。InnoDB存儲引擎中,表結構存儲在.frm文件中,數據和索引存儲在innodb_data_home_dir和innodb_data_file_path表空間中。InnoDB存儲引擎的特性InnoDB存儲引擎InnoDB存儲引擎的優缺點良好的事務管理崩潰修復能力并發控制優點讀寫效率稍差占用的數據空間相對比較大缺點InnoDB存儲引擎更新密集的表:InnoDB存儲引擎特別適合處理多重并發的更新請求。事務:InnoDB存儲引擎是唯一支持事務的標準MySQL存儲引擎,這是管理敏感數據的必需軟件。自動災難恢復:與其他存儲引擎不同,InnoDB表能夠自動從災難中恢復。什么情況下使用InnoDB存儲引擎?InnoDB存儲引擎MyISAM存儲引擎MyISAM存儲引擎是基于ISAM存儲引擎發展起來的,它解決了ISAM的很多不足,并且增加了很多有用的擴展。MyISAM存儲引擎的文件類型.frm .MYD.MYI數據表db_ad.frmdb_ad.MYDdb_ad.MYIdb_adMyISAM存儲引擎的存儲格式1.MyISAM靜態如果所有表列的大小都是靜態的(即不使用xBLOB、xTEXT或VARCHAR數據類型),MySQL就會自動使用靜態MyISAM格式。2.MyISAM動態如果有表列定義為動態的(使用xBLOB、xTEXT或VARCHAR數據類型),MySQL就會自動使用動態格式。盡可能使用靜態數據類型。經常使用OPTIMIZETABLE語句,它會整理表的碎片,恢復由于表更新和刪除而導致的空間丟失。MyISAM存儲引擎的存儲格式3.MyISAM壓縮
有時會創建在整個應用程序生命周期中都只讀的表。如果是這種情況,就可以使用myisampack工具將其轉換為MyISAM壓縮表來減少空間。MyISAM存儲引擎的優缺點占用空間小處理速度快優點不支持事務的完整性和并發性缺點MEMORY存儲引擎MEMORY存儲引擎MEMORY存儲引擎是MySQL中的一類特殊的存儲引擎。其使用存儲在內存中的內容來創建表,而且所有數據也放在內存中。MEMORY存儲引擎1.MEMORY存儲引擎的文件存儲形式每個基于MEMORY存儲引擎的表實際對應一個磁盤文件。該文件的文件名與表名相同,擴展名為.frm。該文件中只存儲表的結構,而其數據文件都是存儲在內存中。2.MEMORY存儲引擎的索引類型
MEMORY存儲引擎默認使用哈希(HASH)索引。其速度要比使用B型樹(BTREE)索引快。MEMORY存儲引擎3.MEMORY存儲引擎的存儲周期
MEMORY存儲引擎通常很少用到。因為MEMORY表的所有數據是存儲在內存上的,如果內存出現異常就會影響到數據的完整性。如果重啟機器或者關機,表中的所有數據將消失。MEMORY存儲引擎的優缺點MEMORY表的大小是受到限制的處理速度非常快處理速度快優點數據易丟失生命周期短缺點如何選擇存儲引擎如何選擇存儲引擎InnoDB存儲引擎:用于事務處理應用程序,具有眾多特性。同時支持崩潰修復能力和并發控制。如果需要對事務的完整性要求比較高,要求實現并發控制,那選擇InnoDB存儲引擎有其很大的優勢。如果需要頻繁的進行更新、刪除操作的數據庫,也可以選擇InnoDB存儲引擎。因為,該類存儲引擎可以實現事務的提交(Commit)和回滾(Rollback)。MyISAM存儲引擎:管理非事務表,它提供高速存儲和檢索,以及全文搜索能力。MyISAM存儲引擎插入數據快,空間和內存使用比較低。如果表主要是用于插入新紀錄和讀出記錄,那么選擇MyISAM存儲引擎能實現處理的高效率。如果應用的完整性、并發性要求很低,也可以選擇MyISAM存儲引擎。如何選擇存儲引擎MEMORY存儲引擎:提供“內存中”表,所有數據都在內存中,數據的處理速度快,但安全性不高。如果需要很快的讀寫速度,對數據的安全性要求較低,可以選擇MEMORY存儲引擎。MEMORY存儲引擎對表的大小有要求,不能建太大的表。所以,這類數據庫只使用相對較小的數據庫表。小結本章詳細講解了MySQL數據庫管理的相關知識,其中在介紹創建數據庫時,首先介紹了兩條創建數據庫的語句,這兩條語句的作用是一樣的,使用哪一個都可以,然后又介紹了如何創建指定字符集的數據庫,以及在創建數據庫前判斷是否存在同名數據庫等內容。除了創建數據庫外,還介紹了如何查看、選擇、修改和刪除數據庫的方法,以及數據庫存儲引擎的應用。在這些內容中,創建數據庫是本章的重點,需要多多練習熟練掌握。上機指導實現創建一個名稱為db_shop的數據庫,并將其設置為默認的數據庫。要求在創建數據庫前判斷是否存在同名的數據庫,如果不存在就進行創建,否則不創建該數據庫。第4章MySQL表結構管理01MySQL數據類型03修改表結構02創建表04刪除表05設置索引06定義約束MySQL數據類型1主要內容數字類型1字符串類型2日期和時間數據類型3數字類型數字類型整數數據類型小數數據類型整數數據類型數據類型取值范圍說明單位TINYINT符號值:-127~127無符號值:0~255最小的整數1字節BIT符號值:-127~127無符號值:0~255最小的整數1字節BOOL符號值:-127~127無符號值:0~255最小的整數1字節SMALLINT符號值:-32768~32767無符號值:0~65535小型整數2字節MEDIUMINT符號值:-8388608~8388607無符號值:0~16777215中型整數3字節INT符號值:-2147683648~2147683647無符號值:0~4294967295標準整數4字節BIGINT符號值:-9223372036854775808~9223372036854775807無符號值:0~18446744073709551615大整數8字節小數數據類型數據類型取值范圍說明單位FLOAT+(-)3.402823466E+38單精度浮點數8或4字節DOUBLE+(-)1.7976931348623157E+308+(-)2.2250738585072014E-308雙精度浮點數8字節DECIMAL可變精度確定的小數類型,可以單獨指定精度(該數的最大位數)和標度(小數點后面的位數)自定義長度DECIMAL(8,2)120.6666666667數字類型如何選擇合適的數字類型?選擇最小的可用類型,如果值永遠不超過127,則使用TINYINT比INT強。對于完全都是數字的,可以選擇整數類型。浮點類型用于可能具有小數部分的數。字符串類型字符串類型普通的文本字符串類型可變類型特殊類型普通的文本字符串類型數據類型取值范圍說明[national]char(M)[binary|ASCII|unicode]0~255個字符固定長度為M的字符串,其中M的取值范圍為0~255。National關鍵字指定了應該使用的默認字符集。Binary關鍵字指定了數據是否區分大小寫。ASCII關鍵字指定了在該列中使用latin1字符集。Unicode關鍵字指定了使用UCS字符集char0~255個字符Char(M)類似[national]varchar(M)[binary]0~255個字符長度可變,其他和char(M)類似Char(10)可變類型數據類型最大長度(字節數)說明TINYBLOB2^8~1(225)小BLOB字段BLOB2^16~1(65535)常規BLOB字段MEDIUMBLOB2^24~1(16777215)中型BLOB字段LONGBLOB2^32~1(4294967295)長BLOB字段TINYTEXT2^8~1(225)小TEXT字段TEXT2^16~1(65535)常規TEXT字段MEDIUMTEXT2^24~1(16777215)中型TEXT字段LONGTEXT2^32~1(4294967295)長TEXT字段BLOBTEXT特殊類型數據類型最大值說明Enum(“value1”,“value2”,…)65535該類型的列只可以容納所列值之一或為NULLSet(“value1”,“value2”,…)64該類型的列可以容納一組值或為NULL[national]varchar(M)[binary]0~255個字符長度可變,其他和char(M)類似字符串類型如何選擇合適的字符串類型?從速度方面考慮,要選擇固定的列,可以使用CHAR類型。要節省空間,使用動態的列,可以使用VARCHAR類型。要將列中的內容限制在一種選擇,可以使用ENUM類型。允許在一個列中有多于一個的條目,可以使用SET類型。如果要搜索的內容不區分大小寫,可以使用TEXT類型。如果要搜索的內容區分大小寫,可以使用BLOB類型。日期和時間數據類型日期和時間數據類型數據類型取值范圍說明DATE1000-01-019999-12-31日期,格式YYYY-MM-DDTIME-838:58:59835:59:59時間,格式HH:MM:SSDATETIME1000-01-0100:00:009999-12-3123:59:59日期和時間,格式YYYY-MM-DDHH:MM:SSTIMESTAMP1970-01-0100:00:002037年的某個時間時間標簽,在處理報告時使用顯示格式取決于M的值YEAR1901-2155年份可指定兩位數字和四位數字的格式創建表2主要內容設置默認的存儲引擎1設置自增類型字段2設置字符集3復制表結構4設置默認的存儲引擎創建表創建表的語法格式如下:創建表創建表的簡潔用法創建表使用CREATETABLE語句在MySQL數據庫db_library中創建一個名為tb_bookinfo的數據表,該表包括id、barcode、bookname、typeid、author、ISBN、price、page、bookcase和inTime等字段。實例設置默認的存儲引擎ENGINE屬性如果我們不想使用默認的存儲引擎應該怎么操作呢?設置表的存儲引擎設置表的存儲引擎的語法格式如下:設置表的存儲引擎在MySQL數據庫db_library中創建一個名為tb_booktype的數據表,要求使用MyISAM存儲引擎。實例設置自增類型字段設置自增類型字段自增類型字段的數據類型必須為整數。向自增類型字段插入一個NULL值時,該字段的值會被自動設置為比上一次插入值更大的值。設置自增類型字段AUTO_INCREMENT設置自增類型字段的語法格式:設置自增類型字段設置表的存儲引擎的語法格式:設置自增類型字段在MySQL數據庫db_library中創建一個名為tb_booktype1的數據表,要求將id字段設置為自動編號字段。實例設置字符集設置字符集defaultcharsetdefaultcharset屬性的語法格式如下:復制表結構復制表結構復制表結構的語法格式如下:使用該語法復制數據表時,將創建一個與源數據表相同結構的新表,該數據表的列名、數據類型空指定和索引都將被復制,但是表的內容是不會復制的。因此,新創建的表是一張空表。如果想要復制表中的內容,可以通過使用AS(查詢表達式)子句來實現。創建數據庫在數據庫db_library中創建一份數據表tb_bookinfo的拷貝tb_bookinfobak。實例修改表結構3主要內容修改字段1修改約束條件2修改表的其他選項3修改表名4修改字段修改字段ALTERTABLEALTERTABLE語句的語法格式如下:修改字段修改字段在數據表tb_bookinfobak中添加一個translator字段,類型為varchar(30),notnull,將字段inTime的類型由date修改為DATETIME(6)。實例修改約束條件修改約束條件1.添加約束條件為表添加約束條件的語法格式如下:PRIMARYKEYDEFAULTUNIQUEKEY約束類型NOTNULLFOREIGNKEY修改約束條件2.刪除約束條件刪除主鍵約束的語法格式如下:刪除外鍵約束的語法格式如下:刪除唯一性約束的語法格式如下:修改表的其他選項修改表的其他選項修改表的存儲引擎的語法格式如下:修改表的其他選項修改表的字符集的語法格式如下:修改表的其他選項修改表的自增類型字段的初始值的語法格式如下:修改表名修改表名RENAMETABLE重命名數據表的語法格式如下:修改表名將圖書信息表的副本tb_bookinfobak重命名為tb_books。實例刪除表4刪除表DROPTABLE刪除數據表的語法格式如下:刪除表刪除重命名后的圖書信息表的副本tb_books。實例設置索引5主要內容索引概述1創建索引2刪除索引3索引概述索引概述
索引是一種將數據庫中單列或者多列的值進行排序的結構。在MySQL中,索引由數據表中一列或多列組合而成。索引概述索引概述對于具有依賴關系的子表和父表之間的聯合查詢時,使用索引可以提高查詢速度,并且可以提高整體的系統性能。創建索引和維護需要耗費時間,并且該耗費時間與數據量的大小成正比。總結:索引可以提高查詢的速度,但是會影響用戶操作數據庫的插入操作。索引概述普通索引:不應用任何限制條件的索引,可以在任何數據類型中創建。常用的MySQL索引都有哪些?唯一性索引:使用UNIQUE參數可以設置唯一索引。創建該索引時,索引的值必須唯一。。全文索引:使用FULLTEXT參數可以設置索引為全文索引。全文索引只能創建在CHAR、VARCHAR或者TEXT類型的字段上。單列索引:只對應一個字段的索引。多列索引:在表的多個字段上創建一個索引。空間索引:使用SPATIAL參數可以設置索引為空間索引。空間索引只能建立在空間數據類型上。創建索引創建索引1.在建立數據表時創建索引在建立數據表時創建索引的基本語法結構如下:創建索引創建考生成績表,名稱為tb_score,并在該表的id字段上建立索引。實例創建索引2.在已建立的數據表中創建索引在已建立的數據表中創建索引的基本語法如下:普通索引、唯一索引、全文索引、單列索引、多列索引、空間索引創建索引為圖書信息表tb_bookinfo的書名字段設置索引。實例刪除索引創建索引刪除索引的基本語法如下:創建索引刪除圖書信息表tb_bookinfo的書名字段的索引idx_name。實例定義約束6主要內容定義主鍵約束1定義候選鍵約束2定義非空約束3定義CHECK約束4定義主鍵約束定義主鍵約束每一個表只能定義一個主鍵。唯一性原則。主鍵的值必須能夠唯一標識表中的每一行記錄,且不能為NULL。最小化規則。復合主鍵不能包含不必要的多余列。一個列名在復合主鍵的列表中只能出現一次。在MySQL中,主鍵列必須遵守以下規則:定義主鍵約束CREATETABLE或者ALTERTABLEPRIMARYKEY定義主鍵約束在表的某個列的屬性定義時,加上關鍵字PRIMARYKEY實現。定義主鍵約束在創建管理員信息表tb_manager時,將id字段設置為主鍵。實例定義主鍵約束在表的所有列的屬性定義后,加上PRIMARYKEY(index_col_name,…)子句實現。定義主鍵約束在創建學生信息表tb_student時,將學號(id)和所在班級號(classid)字段設置為主鍵。實例定義候選鍵約束定義候選鍵約束如果一個屬性集能唯一標識元組,且又不含有多余的屬性,那么這個屬性集稱為關系的候選鍵。
候選鍵可以是表中的某一列,也可以是表中多個列所構成的一個組合。定義候選鍵約束CREATETABLE或者ALTERTABLEUNIQUE定義候選鍵約束創建圖書信息表,將書名字段設置為候選鍵約束。實例候選鍵與主鍵之間的區別一個表只能創建一個主鍵,但可以定義若干個候選鍵。定義主鍵約束時,系統會自動創建PRIMARYKEY索引,而定義候選鍵約束時,系統會自動創建UNIQUE索引。定義非空約束定義非空約束CREATETABLE或者ALTERTABLENOTNULL定義非空約束創建圖書館管理系統的管理員信息表tb_manager1,并為其id字段設置非空約束。實例定義CHECK約束定義CHECK約束CREATETABLE或者ALTERTABLE定義CHECK約束定義CHECK約束的語法如下:對列實施CHECK約束修改前面視頻中創建的數據庫db_library1,設置默認字符集和較對規則。實例對表實施CHECK約束修改前面視頻中創建的數據庫db_library1,設置默認字符集和較對規則。實例小結本章主要介紹了對MySQL表結構進行管理的相關內容。主要包括如何創建、修改和刪除表,以及設置索引和約束等內容。其中,最常用的是創建表、設置索引和定義約束的方法,是本章的重點。對于修改表結構和刪除表的操作不太常用,但是也需要了解。做到在需要時,知道使用哪些語句實現就可以了。上機指導在db_shop數據庫中,創建一個名為tb_sell的數據表,要求將id字段設置為無符號整數類型、自動編號,并且將其設置為主鍵,另外還需要設置該數據表采用utf8字符集,存儲引擎為InnoDB。第5章表記錄的更新操作01插入表記錄03刪除表記錄02修改表記錄插入表記錄1主要內容使用INSERT...VALUES語句插入新記錄1插入多條記錄2使用INSERT……SELECT語句插入結果集3使用REPLACE語句插入新記錄4使用INSERT...VALUES語句插入新記錄使用INSERT...VALUES語句插入新記錄創建數據庫的語法格式如下:插入完整數據通過INSERT...VALUES語句向圖書館管理系統的管理員信息表tb_manager中插入一條完整的數據。實例插入數據記錄的一部分通過INSERT...VALUES語句向數據表tb_manager中插入數據記錄的一部分。實例插入多條記錄插入多條記錄通過INSERT...VALUES語句向數據表tb_manager中一次插入多條記錄。實例使用INSERT……SELECT語句插入結果集使用INSERT...VALUES語句插入新記錄創建數據庫的語法格式如下:使用INSERT……SELECT語句插入結果集實現從圖書館管理系統的借閱表tb_borrow中獲取部分借閱信息(讀者ID和圖書ID)插入到歸還表tb_giveback中。實例使用REPLACE語句插入新記錄使用REPLACE語句插入新記錄REPLACE語句的語法格式如下:修改表記錄2修改表記錄UPDATE修改表記錄UPDATE語句的語法格式如下:修改表記錄將圖書館管理系統的借閱表中id字段為2的記錄的“是否歸還”字段值設置為1。實例刪除表記錄3主要內容使用DELETE語句刪除表記錄1使用TRUNCATE語句清空表記錄2使用DELETE語句刪除表記錄使用DELETE語句刪除表記錄DELETE使用DELETE語句刪除表記錄DELETE語句的語法格式如下:刪除數據時,如果沒有指定where條件,將刪除所有的記錄。使用DELETE語句刪除表記錄將圖書館管理系統的管理員信息表tb_manager中的名稱為admin的管理員刪除實例使用TRUNCATE語句清空表記錄使用TRUNCATE語句清空表記錄TRUNCATE使用TRUNCATE語句清空表記錄TRUNCATE語句的語法格式如下:由于TRUNCATETABLE語句會刪除數據表中的所有數據,并且無法恢復,因此使用TRUNCATETABLE語句時一定要十分小心。使用TRUNCATE語句清空表記錄清空圖書館管理系統的管理員信息表tb_manager。實例使用TRUNCATE語句清空表記錄使用TRUNCATETABLE語句后,表中的AUTO_INCREMENT計數器將被重新設置為該列的初始值。對于參與了索引和視圖的表,不能使用TRUNCATETABLE語句來刪除數據,而應用使用DELETE語句。TRUNCATETABLE操作與比DELETE操作使用的系統和事務日志資源少。DELETE語句和TRUNCATETABLE語句的區別小結本章主要介紹了對表記錄進行更新操作的相關知識。主要包括向表中插入記錄、修改表記錄,以及刪除表記錄。其中,在介紹插入表記錄時,共介紹了4種方法,有插入單條記錄的方法、插入多條記錄的方法、插入結果集的方法,以及使用REPLACE語句插入新記錄。在這4種方法中,最常用的是插入單條記錄和插入多條記錄的方法。需要重點掌握,靈活運用。現就可以了。上機指導向tb_sell數據表中,插入兩條銷售數據,然后將第二條數據刪除。第6章表記錄的檢索01基本查詢語句03聚合函數查詢02單表查詢04連接查詢05子查詢06合并查詢結果07定義表和字段的別名08使用正則表達式查詢基本查詢語句1基本查詢語句SELECT語句的基本語法格式如下:單表查詢2主要內容查詢所有字段1查詢指定字段2查詢指定數據3帶IN關鍵字的查詢4帶BETWEENAND的范圍查詢5帶LIKE的字符匹配查詢6用ISNULL關鍵字查詢空值7帶AND的多條件查詢8帶OR的多條件查詢9用DISTINCT關鍵字去除結果中的重復行10用ORDERBY關鍵字對查詢結果排序11用GROUPBY關鍵字分組查詢12用LIMIT限制查詢結果的數量13查詢所有字段查詢所有字段查詢所有字段的語法格式如下:查詢所有字段查詢圖書館管理系統的圖書信息表tb_bookinfo的全部數據。實例查詢指定字段查詢指定字段查詢指定字段的語法格式如下:查詢指定字段從圖書館管理系統的圖書信息表tb_bookinfo中查詢圖書的名稱(對應字段為bookname)和作者(對應字段為author)實例查詢指定數據比較運算符ISNULL ISNOTNULL BETWEEN IN NOTINLIKE NOTLIKE REGEXP= > < => <= != <>查詢指定數據從圖書館管理系統的管理表中查詢名稱為mr的管理員,主要是通過WHERE子句實現。實例帶IN關鍵字的查詢帶IN關鍵字的查詢帶IN關鍵字的查詢的語法格式如下:帶IN關鍵字的查詢從圖書館管理系統的圖書表tb_bookinfo中查詢位于左A-1(對應的ID號為4)或右A-1(對應的ID號為6)的圖書信息。實例帶BETWEENAND的范圍查詢帶BETWEENAND的范圍查詢2017年4月1日到2017年4月10日BETWEENAND帶BETWEENAND的范圍查詢帶BETWEENAND的范圍查詢的語法格式如下:帶BETWEENAND的范圍查詢從圖書館管理系統的借閱表tb_borrow中查詢borrowTime值在2017-02-01~2017-02-28之間的借閱信息。實例帶LIKE的字符匹配查詢帶LIKE的字符匹配查詢%_明%明日明日科技明日學院王_王語王語西帶LIKE的字符匹配查詢對圖書館管理系統的圖書信息進行模糊查詢,即要求查詢tb_bookinfo表中bookname字段中包含JavaWeb字符的數據。實例用ISNULL關鍵字查詢空值用ISNULL關鍵字查詢空值ISNULL關鍵字的語法格式如下:用ISNULL關鍵字查詢空值使用ISNULL關鍵字查詢tb_readertype表中name字段的值為空的記錄。實例帶AND的多條件查詢帶AND的多條件查詢使用AND關鍵字查詢的語法格式如下:帶AND的多條件查詢實現判斷輸入的管理員帳號和密碼是否存在。要求查詢tb_manager表中name字段值為mr,并且PWD字段值為mrsoft的記錄。實例帶OR的多條件查詢帶OR的多條件查詢使用OR關鍵字查詢的語法格式如下:帶OR的多條件查詢查詢tb_manager表中name字段值為mr或者mingrisoft的記錄。實例用DISTINCT關鍵字去除結果中的重復行用DISTINCT關鍵字去除結果中的重復行DISTINCT關鍵字的使用方法如下:用DISTINCT關鍵字去除結果中的重復行實現從圖書館管理系統的讀者信息表中獲取職業。要求使用DISTINCT關鍵字去除tb_reader表中vocation字段中的重復記錄。實例用ORDERBY關鍵字對查詢結果排序用ORDERBY關鍵字對查詢結果排序ORDERBY關鍵字的使用方法如下:用ORDERBY關鍵字對查詢結果排序實現對圖書借閱信息進行排序。要求查詢tb_borrow表中的所有信息,并按照“borrowTime”進行降序排列。實例用GROUPBY關鍵字分組查詢使用GROUPBY關鍵字來分組實現分組統計每本圖書的借閱次數。要求使用GROUPBY關鍵字對tb_borrow表中tbookidalk字段進行分組查詢。實例GROUPBY關鍵字與GROUP_CONCAT()函數一起使用仍然對圖書借閱表進行分組統計,這次使用GROUPBY關鍵字和GROUP_CONCAT()函數對表中的bookid字段進行分組查詢。實例按多個字段進行分組對tb_borrow1表中的bookid字段和readerid字段進行分組,分組過程中,先按照bookid字段進行分組。當bookid字段的值相等時,再按照readerid字段進行分組。實例用LIMIT限制查詢結果的數量用LIMIT限制查詢結果的數量
LIMIT子句可以對查詢結果的記錄條數進行限定,控制它輸出的行數。用LIMIT限制查詢結果的數量實現查詢最后被借閱的3本圖書。具體方法是查詢tb_borrow1表中,按照借閱時間進行降序排列,顯示前3條記錄。實例聚合函數查詢3主要內容COUNT()函數1SUM()函數2AVG()函數3MAX()函數4MIN()函數5COUNT()函數COUNT()函數聚合函數查詢COUNT()函數
COUNT()函數用于對除“*”以外的任何參數,返回所選擇集合中非NULL值的行的數目。COUNT()函數實現統計圖書館管理系統中的讀者人數。具體的實現方法是使用COUNT()函數統計tb_reader表中的記錄數。實例SUM()函數SUM()函數
SUM()函數可以求出表中某個數值類型字段取值的總和。SUM()函數實現統計商品的銷售金額。具體的實現方法是使用SUM()函數統計tb_sell表中銷售金額字段(amount)的總和。實例AVG()函數AVG()函數
AVG()函數可以求出表中某個數值類型字段取值的平均值。AVG()函數計算學生的平均成績。具體實現方法是使用AVG()函數求tb_student表中總成績(score)字段值的平均值。實例MAX()函數MAX()函數
MAX()函數可以求出表中某個數值類型字段取值的最大值。MAX()函數計算學生表中的最高成績。具體的實現方法是使用MAX()函數查詢tb_student表中score字段的最大值。實例MIN()函數MIN()函數
MIN()函數可以求出表中某個數值類型字段取值的最小值。MIN()函數計算學生表中的最低成績。具體的實現方法是使用MIN()函數查詢tb_student表中score字段的最小值。實例連接查詢4主要內容內連接查詢1外連接查詢2復合條件連接查詢3內連接查詢內連接查詢圖書信息表借閱信息表內連接查詢后的結果內連接查詢使用內連接查詢出圖書的借閱信息。主要涉及到圖書信息表tb_bookinfo和借閱表tb_borrow,這兩個表通過圖書ID進行關聯。實例外連接查詢外連接查詢OUTERJOIN外連接查詢外連接查詢的基本語法格式如下:LEFTJOINRIGHTJOIN左外連接在圖書館管理系統中,圖書信息表(tb_bookinfo)和圖書類型表(tb_booktype)之間通過類型ID字段相關聯,并且在圖書類型表中保存著圖書的可借閱天數。因此,要實現獲取圖書的最多借閱天數,需要使用左外連接來實現。實例右外連接對剛剛完成的例子中的兩個數據表進行右外連接,其中圖書類型表(tb_bookTYPE)作為右表,圖書信息表(tb_bookinfo)作為左表,兩表通過圖書類型ID字段關聯。實例復合條件連接查詢選擇數據庫應用復合條件連接查詢實現查詢出未歸還的圖書借閱信息,主要是判斷是否歸還字段的值等于0的條件。實例子查詢5主要內容帶IN關鍵字的子查詢1帶比較運算符的子查詢2帶EXISTS關鍵字的子查詢3帶ANY關鍵字的子查詢4帶ALL關鍵字的子查詢5帶IN關鍵字的子查詢帶IN關鍵字的子查詢子查詢就是指在一個查詢語句中,還包括另一個查詢語句。在外一層的查詢中使用里面一層查詢產生的結果集。IN帶IN關鍵字的子查詢應用帶IN關鍵字的子查詢實現查詢被借閱過的圖書信息。實例帶比較運算符的子查詢帶比較運算符的子查詢=、!=、>、>=、<、<=帶比較運算符的子查詢從學生信息表(tb_student)和等級表(tb_grade)中查詢考試成績為優秀的學生信息。實例帶EXISTS關鍵字的子查詢帶EXISTS關鍵字的子查詢
EXISTS關鍵字用于檢查子查詢是否至少返回一行數據。帶EXISTS關鍵字的子查詢應用帶EXISTS關鍵字的子查詢實現查詢已經被借閱的圖書信息。實例帶ANY關鍵字的子查詢帶ANY關鍵字的子查詢
ANY關鍵字表示滿足其中任意一個條件。帶ANY關鍵字的子查詢ANY關鍵字的基本用法:帶ANY關鍵字的子查詢實現查詢比一年三班最低分高的全部學生信息。主要是通過帶ANY關鍵字的子查詢實現成績大于一年三班的任何一名同學的學生信息。實例帶ALL關鍵字的子查詢帶ALL關鍵字的子查詢
ALL關鍵字表示表示滿足所有條件。帶ALL關鍵字的子查詢ALL關鍵字的基本用法:帶ALL關鍵字的子查詢實現查詢比一年三班最高分高的全部學生信息。主要是通過帶ALL關鍵字的子查詢實現成績大于一年三班的任何一名同學的學生信息。實例合并查詢結果6合并查詢結果合并查詢結果是將多個SELECT語句的查詢結果合并到一起。UNION關鍵字將圖書信息表1(tb_bookinfo)和圖書信息表2(tb_bookinfo1)合并。實例UNIONALL關鍵字定義表和字段的別名7主要內容為表取別名1為字段取別名2為表取別名為表取別名使用左連接查詢出圖書的完整信息,并為圖書信息表(tb_bookinfo)指定別名為book,為圖書類別表(tb_booktype)指定別名為type。實例為字段取別名為字段取別名為字段取別名的基本形式如下:為字段取別名實現統計每本圖書的借閱次數,并取別名為degree。實例使用正則表達式查詢8主要內容匹配指定字符中的任意一個1使用“*”和“+”來匹配多個字符2匹配指定字符中的任意一個匹配指定字符中的任意一個REGEXP[]匹配指定字符中的任意一個實現在圖書館管理系統中查詢包括字母k、r或s的管理員信息。主要是對管理員信息表進行查詢,設置的查詢條件是通過正則表達式驗證name字段。實例使用“*”和“+”來匹配多個字符使用“*”和“+”來匹配多個字符*+使用“*”和“+”來匹配多個字符實現在圖書館管理系統中查詢E-mail地址不正確的讀者信息。主要是對讀者信息表進行查詢,設置的查詢條件是通過正則表達式驗證email字段。實例小結本章對MySQL數據庫常見的表記錄的檢索方法進行了詳細講解,并通過大量的舉例說明,使讀者更好的理解所學知識的用法。在閱讀本章時,讀者應該重點掌握多條件查詢、連接查詢、子查詢和查詢結果排序。本章學習的難點是使用正則表達式來查詢。正則表達式的功能很強大,使用起來很靈活。希望讀者能夠閱讀有關正則表達式的相關知識,能過對正則表達式了解得更加透徹。上機指導在db_shop數據庫中,創建一個名稱為tb_goods的數據表,并向該數據表中插入3條記錄,然后應用連接查詢獲取包括商品信息在內的銷售數據。第7章視圖01視圖概述03視圖操作02創建視圖視圖概述1主要內容視圖的概念1視圖的作用2視圖的概念視圖的概念
視圖是一個虛擬表,是從數據庫中一個或多個表中導出來的表,其內容由查詢定義。數據庫中只存放了視圖的定義,而并沒有存放視圖中的數據。視圖的概念為什么要使用視圖?安全原因可使復雜的查詢易于理解和使用視圖的作用視圖的作用1.簡單性2.安全性在表中增加一個標志用戶名的列;建立視圖,使用戶只能看到標有自己用戶名的行;把視圖授權給其他用戶。3.邏輯數據獨立性創建視圖2主要內容查看創建視圖的權限1創建視圖2創建視圖的注意事項3查看創建視圖的權限查看創建視圖的權限CREATEVIEWSELECT查看創建視圖的權限查詢語法格式如下:查看創建視圖的權限查詢MySQL中root用戶是否具有創建視圖的權限。實例創建視圖創建視圖CREATEVIEW創建視圖創建視圖的語法格式如下:創建視圖在數據庫db_librarybak中創建一個保存完整圖書信息的視圖,命名為v_book,該視圖包括兩張數據表,分別是圖書信息表(tb_bookinfo)和圖書類別表(tb_booktype)。視圖包含tb_bookinfo表中的barcode、bookname、author、price和page列;包含tb_booktype表中的typename字段。實例創建視圖的注意事項創建視圖的注意事項運行創建視圖的語句需要用戶具有CREATEVIEW的權限;SELECT語句不能包含FROM子句中的子查詢;在定義中引用的表或視圖必須存在;在定義中不能引用temporary表,不能創建temporary視圖;在視圖定義中允許使用ORDERBY,但是,如果從特定視圖進行了選擇,而該視圖使用了具有自己ORDERBY的語句,它將被忽略。視圖操作3主要內容查看視圖1修改視圖2更新視圖3刪除視圖4查看視圖查看視圖SHOWVIEWDESCRIBE語句SHOWTABLESTATUS語句SHOWCREATEVIEW語句DESCRIBE語句DESC語句的格式如下:DESCSHOWTABLESTATUS語句SHOWTABLESTATUS語句的格式如下:SHOWTABLESTATUSSHOWTABLESTATUS語句使用SHOWTABLESTATUS語句查看圖書視圖(v_book)的結構。實例SHOWCREATEVIEW語句SHOWCREATEVIEW語句的格式如下:SHOWCREATEVIEWSHOWCREATEVIEW語句使用SHOWCREATEVIEW語句查看視圖book_view1的詳細定義。實例修改視圖修改視圖CREATEORREPLACEVIEWALTERVIEWCREATEORREPLACEVIEW語句CREATEORREPLACEVIEW語句的格式如下:CREATEORREPLACEVIEW語句下面使用CREATEORREPLACEVIEW語句將視圖v_book的字段修改為barcode、bookname、price和booktype。實例ALTERVIEW語句ALTERVIEW語句的格式如下:ALTERVIEW語句下面修改v_book視圖,將原有的barcode、bookname、price和booktype4個屬性更改為barcode、bookname和booktype3個屬性。實例更新視圖更新視圖對圖書視圖v_book中的數據進行更新。實例更新視圖的限制CREATEORREPLACEVIEWALTERVIEW更新視圖的限制哪些視圖不能更新?視圖中包含COUNT()、SUM()、MAX()和MIN()等函數;視圖中包含UNION、UNIONALL、DISTINCT、GROUPBY和HAVIG等關鍵字;常量視圖;視圖中的SELECT中包含子查詢;創建視圖時,設置ALGORITHM為TEMPTABLE類型。刪除視圖刪除視圖DROPVIEW語句的格式如下:DROPVIEWDROP刪除視圖刪除前面實例中一直使用的圖書視圖v_book。實例小結本章對MySQL數據庫的視圖的含義和作用進行了詳細講解,并且講解了創建視圖、修改視圖和刪除視圖的方法。創建視圖和修改視圖是本章的重點內容,并且需要在計算機上實際操作。讀者在創建視圖和修改視圖后,一定要查看視圖的結構,以確保創建和修改的操作是否正確。更新視圖是本章的一個難點。因為實際中存在一些造成視圖不能更新的因素。希望讀者在練習中認真分析。上機指導在db_shop數據庫中,創建一個名稱為v_sell的視圖,用于保存包括商品信息在內的銷售數據。第8章觸發器01MySQL觸發器03使用觸發器02查看觸發器04刪除觸發器MySQL觸發器1主要內容創建MySQL觸發器1創建具有多個執行語句的觸發器2創建MySQL觸發器觸發器的概念
觸發器是由MySQL的基本命令事件來觸發的某種特定操作。INSERTUPDATEDELETE觸發器的概念用戶信息表日志表用戶信息插入一條日志觸發器創建只有一個執行語句的觸發器創建只有一個執行語句的觸發器的基本形式如下:INSERTUPDATEDELETE創建只有一個執行語句的觸發器實現保存圖書信息時,自動向日志表添加一條數據。具體的實現方法是為圖書信息表(tb_bookinfo)創建一個由插入命令“INSERT”觸發的觸發器auto_save_log。實例創建具有多個執行語句的觸發器創建具有多個執行語句的觸發器創建具有多個執行語句的觸發器的基本形式如下:;創建具有多個執行語句的觸發器實現刪除圖書信息時,分別向日志表和臨時表中各添加一條數據。實例查看觸發器2主要內容SHOWTRIGGERS1查看triggers表中觸發器信息2使用SHOWTRIGGERS使用SHOWTRIGGERSSHOWTRIGGERS語句的基本語法形式如下:SHOWTRIGGERSSHOWTRIGGERS\g查看triggers表中觸發器信息查看triggers表中觸發器信息查看triggers表中觸發器信息的基本語法形式如下:triggers查看triggers表中觸發器信息想要查看某個數據庫中有什么觸發器?TRIGGER_SCHEMA使用觸發器3主要內容觸發器的執行順序1使用觸發器維護冗余數據2觸發器的執行順序觸發器的執行順序BEFORE觸發器表操作AFTER觸發器使用觸發器維護冗余數據使用觸發器維護冗余數據使用觸發器維護庫存數量。主要是通過商品銷售信息表創建一個觸發器,實現當添加一條商品銷售信息時,自動修改庫存信息表中的庫存數量。實例刪除觸發器4刪除觸發器DROP語句的格式如下:DROP刪除觸發器刪除名稱為delete_book_info的觸發器。實例小結本章對MySQL數據庫的觸發器的定義和作用、創建觸發器、查看觸發器、使用觸發器和刪除觸發器等內容進行了詳細講解,創建觸發器和使用觸發器是本章的重點內容。讀者在創建觸發器后,一定要查看觸發器的結構。使用觸發器時,觸發器執行的順序為BEFORE觸發器、表操作(INSERT、UPDATE和DELETE)和AFTER觸發器。讀者需要將本章的知識結合實際需要來設計觸發器。上機指導在db_shop數據庫中,為銷售表(tb_sell)創建一個AFTERINSERT觸發器,實現插入一條銷售信息后,自動更新庫存表。第9章存儲過程與存儲函數01創建存儲過程和存儲函數03查看存儲過程和函數02存儲過程和存儲函數的調用04修改存儲過程和函數05刪除存儲過程和函數創建存儲過程和存儲函數1主要內容創建存儲過程1創建存儲函數2變量的應用3光標的運用4創建存儲過程存儲過程和存儲函數
存儲過程和存儲函數經常是一組SQL語句的組合,這些語句被當作整體存入MySQL數據庫服務器中。創建存儲過程創建存儲過程的基本形式如下:[IN|OUT|INOUT]param_nametypeBEGIN..ENDDELIMITER//創建存儲過程創建一個統計指定圖書借閱次數的存儲過程。主要是通過創建一個名稱為proc_count的存儲過程,實現統計tb_borrow1數據表中指定圖書編號的圖書的借閱次數。實例創建存儲函數創建存儲函數創建存儲函數的基本形式如下:BEGIN..END創建存儲函數應用tb_borrow1數據表。創建一個統計指定圖書借閱次數的存儲函數,名稱為func_count。實現統計tb_borrow1數據表中指定圖書編號的圖書的借閱次數。實例變量的應用變量的應用局部參數全局參數局部變量全局變量BEGIN…END范圍內有效整個存儲過程范圍內有效局部變量DECLAREvar_name[,…]type[DEFAULTvalue]聲明局部變量的基本語法形式如下:DECLARE局部變量演示局部變量只在某個BEGIN…END塊內有效。實例全局變量@全局變量分別在內部和外部BEGIN…END塊中都定義了同名的全局變量@t,并且最終輸出結果相同,從而說明全局變量的作用范圍為整個程序。實例為變量賦值使用SET關鍵字為變量賦值的基本語法形式如下:1.使用SET關鍵字為變量賦值SETmr_soft=10;為變量賦值使用SELECT…INTO語句為變量賦值的基本語法形式如下:2.使用SELECT…INTO語句為變量賦值光標的運用光標的應用光標可以逐條讀取結果集中的記錄游標CURSOR光標的運用聲明光標的語法格式如下:1.聲明光標不能單獨執行光標的運用打開光標的語法格式如下:2.打開光標3.使用光標光標的運用使用光標的語法格式如下:4.關閉光標光標的運用關閉光標的語法格式如下:存儲過程和存儲函數的調用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CCS 039-2023煤炭聯運集裝箱智能定量裝載系統技術條件
- T/GXAS 831-2024慢性穩定性心力衰竭增強型體外反搏治療操作技術規范
- T/CMES 37007-2024陸上載人演藝巡游設備安全規范
- T/CPFIA 0005-2022含聚合態磷復合肥料
- T/SHDPA 001-2022產業園區專業服務體系建設規范
- 個人設備維修標準合同7篇
- 上海安全員證報名題庫及答案
- 代理人房屋出租合同3篇
- 耳朵常見疾病診療與防護
- 渠道設計流程七步法
- 關鍵工序特殊過程培訓課件
- 提香-西方美術史-
- 水泥攪拌樁試樁成果報告
- 房屋安全鑒定報告登記表范本
- 【一例重癥肺炎患者的個案護理6000字(論文)】
- 花崗巖石開采方案范本
- 中藥配方顆粒藥房管理制度
- 水壓試壓情況記錄表
- 澤康(CERCON)氧化鋯 全瓷牙介紹
- 噴氣動力飛機
- GB/T 22561-2023真空熱處理
評論
0/150
提交評論