第3章 數(shù)據(jù)庫(kù)基本操作幻燈片.ppt_第1頁(yè)
第3章 數(shù)據(jù)庫(kù)基本操作幻燈片.ppt_第2頁(yè)
第3章 數(shù)據(jù)庫(kù)基本操作幻燈片.ppt_第3頁(yè)
第3章 數(shù)據(jù)庫(kù)基本操作幻燈片.ppt_第4頁(yè)
第3章 數(shù)據(jù)庫(kù)基本操作幻燈片.ppt_第5頁(yè)
已閱讀5頁(yè),還剩48頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第3章 數(shù)據(jù)庫(kù)基本操作,本章重點(diǎn),掌握如何通過(guò)語(yǔ)句查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎 了解一些常見的數(shù)據(jù)庫(kù)存儲(chǔ)引擎 熟悉MyISAM、MEMORY和InnoDB存儲(chǔ)引擎的適用情況 掌握MySQL中創(chuàng)建數(shù)據(jù)庫(kù)的兩種方式 掌握查看數(shù)據(jù)庫(kù)時(shí)的SHOW語(yǔ)句 熟悉如何修改數(shù)據(jù)庫(kù)的字符集和校對(duì)規(guī)則 掌握刪除數(shù)據(jù)庫(kù)時(shí)執(zhí)行的語(yǔ)句 掌握選擇數(shù)據(jù)庫(kù)時(shí)執(zhí)行的語(yǔ)句,并且查看當(dāng)前數(shù)據(jù)庫(kù)表,主要內(nèi)容,3.1 MySQL存儲(chǔ)引擎,MySQL數(shù)據(jù)庫(kù)是開發(fā)源代碼的關(guān)系型數(shù)據(jù)庫(kù),它可以提供對(duì)SQL語(yǔ)言、子查詢、存儲(chǔ)過(guò)程、觸發(fā)器、視圖、索引、事務(wù)、鎖、以及影像復(fù)制等功能的支持。同Oracle和SQL Server等大型數(shù)據(jù)庫(kù)一樣,MySQL也是C

2、/S系統(tǒng)并且是單進(jìn)程多線程架構(gòu)的數(shù)據(jù)庫(kù)。,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,簡(jiǎn)單來(lái)說(shuō),存儲(chǔ)引擎就是如何存儲(chǔ)數(shù)據(jù)、如何為存儲(chǔ)的數(shù)據(jù)建立索引和如何更新、查詢數(shù)據(jù)等技術(shù)的實(shí)現(xiàn)方法。 可以查看當(dāng)前MySQL數(shù)據(jù)庫(kù)的存儲(chǔ)引擎。查詢方法非常簡(jiǎn)單,語(yǔ)法如下:,上述語(yǔ)句可以使用分號(hào)“;”結(jié)束,也可以使用“g”或者“G”結(jié)束。其中,“g”的作用與分號(hào)“;”作用相同,而“G”可以讓結(jié)果顯示得更加美觀。,SHOW ENGINES;,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,【示例1】 登錄MySQL控制臺(tái)成功后執(zhí)行SHOW ENGIENS G語(yǔ)句并查看結(jié)果。輸出結(jié)果如下:,mysql SHOW ENGINES G * 1. r

3、ow * Engine: FEDERATED Support: NO Comment: Federated MySQL storage engine Transactions: NULL XA: NULL Savepoints: NULL * 2. row * Engine: MRG_MYISAM Support: YES Comment: Collection of identical MyISAM tables Transactions: NO XA: NO Savepoints: NO * 3. row * Engine: MyISAM Support: YES Comment: MyI

4、SAM storage engine Transactions: NO XA: NO Savepoints: NO,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,* 4. row * Engine: BLACKHOLE Support: YES Comment: /dev/null storage engine (anything you write to it disappears) Transactions: NO XA: NO Savepoints: NO * 5. row * Engine: CSV Support: YES Comment: CSV storage engine Transacti

5、ons: NO XA: NO Savepoints: NO * 6. row * Engine: MEMORY Support: YES Comment: Hash based, stored in memory, useful for temporary tables Transactions: NO XA: NO Savepoints: NO * 7. row * Engine: ARCHIVE Support: YES Comment: Archive storage engine Transactions: NO XA: NO Savepoints: NO * 8. row *,3.1

6、.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,Engine: InnoDB Support: DEFAULT Comment: Supports transactions, row-level locking, and foreign keys Transactions: YES XA: YES Savepoints: YES * 9. row * Engine: PERFORMANCE_SCHEMA Support: YES Comment: Performance Schema Transactions: NO XA: NO Savepoints: NO 9 rows in set (0.03 sec),3.

7、1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,InnoDB是默認(rèn)的數(shù)據(jù)庫(kù)存儲(chǔ)引擎。除此之外,當(dāng)前版本的MySQL數(shù)據(jù)庫(kù)還支持MRG_MYISAM、MyISAM、BLACKHOLE、CSV、MEMORY(HEAP)、ARCHIVE和PERFORMANCE_SCHEMA存儲(chǔ)引擎。另外,當(dāng)前查詢出9條記錄,每條記錄主要內(nèi)容相同,如下對(duì)這些查詢結(jié)果進(jìn)行了說(shuō)明。 Engine 數(shù)據(jù)庫(kù)存儲(chǔ)引擎名稱。 Support 表示MySQL是否支持該類引擎,YES表示支持,NO表示不支持。 Comment 表示對(duì)該引擎的評(píng)論信息。 Transactions 表示是否支持事務(wù)處理,YES表示支持,NO表

8、示不支持。 XA 表示是否分布式交易處理的XA規(guī)范,YES表示支持,NO表示不支持。 Savepoints 表示是否支持保存點(diǎn),以便事務(wù)回滾到保存點(diǎn),YES表示支持,NO表示不支持。,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,備注: 分布式事務(wù)處理(Distributed Transaction Processing,DTP)是指一個(gè)事務(wù)可能涉及多個(gè)數(shù)據(jù)庫(kù)操作,分布式事務(wù)處理的關(guān)鍵是必須有一種方法可以知道事務(wù)在任何地方所做的所有動(dòng)作,提交或回滾事務(wù)的決定必須產(chǎn)生統(tǒng)一的結(jié)果(全部提交或全部回滾) 。 事務(wù)(Transaction):又稱之為交易,指一個(gè)程序或程序段,在一個(gè)或多個(gè)資源如數(shù)據(jù)庫(kù)或文件上為完成某

9、些功能的執(zhí)行過(guò)程的集合,是用戶定義的一個(gè)操作序列。這些操作要么都做,要么都不做,是一個(gè)不可分割的工作單位。 XA就是X/Open 組織針對(duì)DTP定義的交易中間件與數(shù)據(jù)庫(kù)之間的接口規(guī)范(即接口函數(shù)),交易中間件用它來(lái)通知數(shù)據(jù)庫(kù)事務(wù)的開始、結(jié)束以及提交、回滾等。XA接口函數(shù)由數(shù)據(jù)庫(kù)廠商提供。,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,通常把一個(gè)數(shù)據(jù)庫(kù)內(nèi)部的事務(wù)處理,如對(duì)多個(gè)表的操作,作為本地事務(wù)看待。數(shù)據(jù)庫(kù)的事務(wù)處理對(duì)象是本地事務(wù),而分布式事務(wù)處理的對(duì)象是全局事務(wù)。 所謂全局事務(wù),是指分布式事務(wù)處理環(huán)境中,多個(gè)數(shù)據(jù)庫(kù)可能需要共同完成一個(gè)工作,這個(gè)工作即是一個(gè)全局事務(wù),例如,一個(gè)事務(wù)中可能更新幾個(gè)不同的數(shù)據(jù)庫(kù)

10、。對(duì)數(shù)據(jù)庫(kù)的操作發(fā)生在系統(tǒng)的各處但必須全部被提交或回滾。此時(shí)一個(gè)數(shù)據(jù)庫(kù)對(duì)自己內(nèi)部所做操作的提交不僅依賴本身操作是否成功,還要依賴與全局事務(wù)相關(guān)的其它數(shù)據(jù)庫(kù)的操作是否成功,如果任一數(shù)據(jù)庫(kù)的任一操作失敗,則參與此事務(wù)的所有數(shù)據(jù)庫(kù)所做的所有操作都必須回滾。,3.1.1 查看數(shù)據(jù)庫(kù)存儲(chǔ)引擎,【示例2】 5.6.13版本的MySQL數(shù)據(jù)庫(kù)默認(rèn)安裝時(shí)使用InnoDB存儲(chǔ)引擎,如果使用者不確定當(dāng)前數(shù)據(jù)庫(kù)的默認(rèn)存儲(chǔ)引擎,可以通過(guò)輸入語(yǔ)句進(jìn)行查看。語(yǔ)句如下:,SHOW VARIABLES LIKE storage_engine;,控制臺(tái)執(zhí)行上述語(yǔ)句輸出的結(jié)果如下:,mysql SHOW VARIABLES LI

11、KE storage_engine; +-+-+ | Variable_name | Value | +-+-+ | storage_engine | InnoDB | +-+-+ 1 row in set (0.78 sec),3.1.4 存儲(chǔ)引擎InnoDB,InnoDB是當(dāng)前MySQL數(shù)據(jù)庫(kù)版本的默認(rèn)存儲(chǔ)引擎,它與傳統(tǒng)的ISAM和MyISAM相比,其最大特色就是支持?jǐn)?shù)據(jù)庫(kù)事務(wù)正確執(zhí)行的ACID原則,即:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability) 。目前,InnoDB采用雙軌制授權(quán),一個(gè)是GPL授權(quán),另一個(gè)則

12、是專有軟件授權(quán)。,3.1.4 存儲(chǔ)引擎InnoDB,原子性 整個(gè)事務(wù)中的所有操作,要么全部完成,要么全部不完成,不可能停滯在中間某個(gè)環(huán)節(jié)。事務(wù)在執(zhí)行過(guò)程中發(fā)生錯(cuò)誤,會(huì)被回滾(Rollback)到事務(wù)開始前的狀態(tài),就像這個(gè)事務(wù)從來(lái)沒有執(zhí)行過(guò)一樣。 一致性 在事務(wù)開始之前和事務(wù)結(jié)束以后,數(shù)據(jù)庫(kù)的完整性約束沒有被破壞。,3.1.4 存儲(chǔ)引擎InnoDB,隔離性 隔離狀態(tài)執(zhí)行事務(wù),使它們好像是系統(tǒng)在給定時(shí)間內(nèi)執(zhí)行的唯一操作。如果有兩個(gè)事務(wù),運(yùn)行在相同的時(shí)間內(nèi),執(zhí)行相同的功能,事務(wù)的隔離性將確保每一事務(wù)在系統(tǒng)中認(rèn)為只有該事務(wù)在使用系統(tǒng)。這種屬性有時(shí)稱為串行化,為了防止事務(wù)操作間的混淆,必須串行化或序列化

13、請(qǐng)求,使得在同一時(shí)間僅有一個(gè)請(qǐng)求用于同一數(shù)據(jù)。 持久性 在事務(wù)完成以后,該事務(wù)所對(duì)數(shù)據(jù)庫(kù)所作的更改便持久的保存在數(shù)據(jù)庫(kù)之中,并不會(huì)被回滾。,InnoDB的主要特點(diǎn): (1)InnoDB是為處理巨大數(shù)據(jù)量時(shí)的最大性能設(shè)計(jì); (2)InnoDB 給 MySQL 提供了具有事務(wù)、回滾和崩潰修復(fù)能力、多版本并發(fā)控制的事務(wù)安全型表; (3)InnoDB 提供了行級(jí)鎖,提供與 Oracle 類似的不加鎖讀取; (4)在技術(shù)上,InnoDB 是一套放在 MySQL后臺(tái)的完整數(shù)據(jù)庫(kù)系統(tǒng),InnoDB 在主內(nèi)存中建立其專用的緩沖池用于高速緩沖數(shù)據(jù)和索引。,3.1.4 存儲(chǔ)引擎InnoDB,3.1.4 存儲(chǔ)引擎I

14、nnoDB,InnoDB體系結(jié)構(gòu)如下:,后臺(tái)線程: 1、后臺(tái)線程的主要作用是負(fù)責(zé)刷新內(nèi)存池中的數(shù)據(jù),保證緩沖池中的內(nèi)存緩存的是最近的數(shù)據(jù); 2、另外,將以修改的數(shù)據(jù)文件刷新到磁盤文件; 3、同時(shí),保證在數(shù)據(jù)庫(kù)發(fā)生異常的情況下,InnoDB能恢復(fù)到正常運(yùn)行狀態(tài)。,3.1.4 存儲(chǔ)引擎InnoDB,內(nèi)存池:InnoDB有多個(gè)內(nèi)存塊,這些內(nèi)存塊組成了一個(gè)大的內(nèi)存池。這些內(nèi)存塊包括有:緩沖池(innodb_buffer_pool)和日志緩沖(log_buffer)以及額外內(nèi)存池(innodb_addtional_mem_pool_size)。,3.1.6 如何選擇存儲(chǔ)引擎,下面分別介紹了MyISAM、

15、MEMORY和InnoDB這3種存儲(chǔ)引擎的特性對(duì)比,根據(jù)其不同的特性,給出了一些選擇的建議。 MyISAM存儲(chǔ)引擎 這種存儲(chǔ)引擎提供了高速的存儲(chǔ)與檢索和全文搜索能力。該存儲(chǔ)引擎插入數(shù)據(jù)快,但是空間和內(nèi)存的使用效率較低。如果表主要適用于插入新紀(jì)錄和讀出記錄,那么選擇MyISAM存儲(chǔ)引擎可以實(shí)現(xiàn)處理的高效率。,3.1.6 如何選擇存儲(chǔ)引擎,MEMORY存儲(chǔ)引擎 這種存儲(chǔ)引擎提供“內(nèi)存中”表,該存儲(chǔ)引擎的所有數(shù)據(jù)都存儲(chǔ)在內(nèi)存中,數(shù)據(jù)的處理速度很快但是安全性不高。如果需要很快的讀寫速度,對(duì)數(shù)據(jù)的安全性要求較低,可以選擇這種存儲(chǔ)引擎。MEMORY存儲(chǔ)引擎對(duì)表的大小有要求,不能建議太大的表,因此,這類數(shù)據(jù)

16、庫(kù)只使用與相對(duì)較小的數(shù)據(jù)庫(kù)表。,3.1.6 如何選擇存儲(chǔ)引擎,InnoDB存儲(chǔ)引擎 它主要用于事務(wù)處理應(yīng)用程序,支持外鍵,同時(shí)還支持崩潰修復(fù)能力和并發(fā)控制。如果對(duì)事務(wù)的完整性要求比較高,要求實(shí)現(xiàn)并發(fā)通知,那么選擇InnoDB存儲(chǔ)引擎比較有優(yōu)勢(shì)。如果需要頻繁的進(jìn)行更新和刪除操作,也可以選擇該存儲(chǔ)引擎,因?yàn)樵摯鎯?chǔ)引擎可以實(shí)現(xiàn)事務(wù)的提交和回滾。,3.2 創(chuàng)建數(shù)據(jù)庫(kù),簡(jiǎn)單的了解數(shù)據(jù)庫(kù)存儲(chǔ)引擎之后,下面將重點(diǎn)介紹數(shù)據(jù)庫(kù)的基本操作。MySQL中創(chuàng)建數(shù)據(jù)庫(kù)有3種方式:,下面分別通過(guò)第一種方式和第三種方式介紹如何創(chuàng)建數(shù)據(jù)庫(kù)。,3.2.1 MySQL Workbench創(chuàng)建,【示例3】 本次示例通過(guò)Workbe

17、nch工具創(chuàng)建數(shù)據(jù)庫(kù),完整的操作步驟如下所示。 (1)首先創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)連接,然后選中左側(cè)數(shù)據(jù)庫(kù)列表中的某一項(xiàng)后單擊右鍵,在顯示的菜單中選擇Create Schema選項(xiàng),該選項(xiàng)就是用來(lái)創(chuàng)建數(shù)據(jù)庫(kù)的。選擇該項(xiàng)后彈出一個(gè)添加數(shù)據(jù)庫(kù)的頁(yè)面,如圖3-2所示。,圖3-2 創(chuàng)建數(shù)據(jù)庫(kù)的頁(yè)面效果,3.2.1 MySQL Workbench創(chuàng)建,(2)在圖3-2中輸入創(chuàng)建名稱后單擊Apply按鈕,這時(shí)彈出圖3-3所示的對(duì)話框,可以向該對(duì)話框中添加或修改腳本內(nèi)容,如果審查SQL腳本無(wú)誤,則會(huì)將腳本應(yīng)用到數(shù)據(jù)庫(kù)中,單擊Apply按鈕。,圖3-3 執(zhí)行創(chuàng)建數(shù)據(jù)庫(kù)的過(guò)程,3.2.1 MySQL Workbench創(chuàng)

18、建,(3)如果確定圖3-3所示的腳本沒有錯(cuò)誤,直接單擊Apply按鈕進(jìn)行添加,創(chuàng)建完成后自動(dòng)在左側(cè)列表中顯示,成功時(shí)的效果如圖3-4所示。,圖3-4 Workbench創(chuàng)建數(shù)據(jù)庫(kù)成功,3.2.2 數(shù)據(jù)庫(kù)字符集和校對(duì)規(guī)則,在圖3-2中創(chuàng)建數(shù)據(jù)庫(kù)時(shí)需要選擇其字符集和校對(duì)規(guī)則。字符集是一套符號(hào)和編碼,校對(duì)規(guī)則是在字符集內(nèi)用于比較字符的一套規(guī)則。MySQL能夠支持多種字符集,可以通過(guò)執(zhí)行SHOW CHARACTER SET;語(yǔ)句查看可用的字符集,部分截圖如3-5所示。,圖3-5 當(dāng)前可用的字符集,3.2.2 數(shù)據(jù)庫(kù)字符集和校對(duì)規(guī)則,在圖3-5中,Charset表示字符集,Description表示描述

19、內(nèi)容,Default collation表示默認(rèn)的校對(duì)規(guī)則。任何一個(gè)給定的字符集至少有一個(gè)校對(duì)規(guī)則,它還可能有幾個(gè)校對(duì)規(guī)則??梢允褂靡韵抡Z(yǔ)句查看校對(duì)規(guī)則,語(yǔ)句如下:,直接使用上述語(yǔ)句SHOW COLLATION時(shí)查看校對(duì)規(guī)則列表,如果想要查看latin1(西歐ISO-8859-1)字符集的校對(duì)規(guī)則,可以添加向SHOW COLLATION后添加LIKE查詢。,SHOW COLLATION LIKE pattern;,3.2.2 數(shù)據(jù)庫(kù)字符集和校對(duì)規(guī)則,例如,查找以latin1開頭的校對(duì)規(guī)則效果如圖3-6所示。,3.2.2 數(shù)據(jù)庫(kù)字符集和校對(duì)規(guī)則,圖3-6中所示的校對(duì)規(guī)則不同,它所代表的含義也有所

20、不同。例如,latin1_german1_ci表示德國(guó)DIN-1;latin1_swedish_ci表示瑞典/芬蘭;latin1_danish_ci表示丹麥/挪威。所有的校對(duì)規(guī)則都有一些共同的特征,如下所示。 兩個(gè)不同的字符集不能有相同的校對(duì)規(guī)則。 每個(gè)字符集有一個(gè)默認(rèn)校對(duì)規(guī)則,例如,latin1默認(rèn)校對(duì)規(guī)則是latin1_swedish_ci。 存在校對(duì)規(guī)則命名約定,它們以其相關(guān)的字符集名開始,通常包括一個(gè)語(yǔ)言名,并且以_ci(大小寫不敏感)、_cs(大小寫敏感)或_bin(二元)結(jié)束。,3.2.3 MySQL的控制臺(tái)創(chuàng)建,每一個(gè)數(shù)據(jù)庫(kù)都有一個(gè)數(shù)據(jù)庫(kù)字符集和一個(gè)數(shù)據(jù)庫(kù)校對(duì)規(guī)則,它不能夠?yàn)榭铡?/p>

21、CREATE DATABASE語(yǔ)句有一個(gè)可選的子句來(lái)指定數(shù)據(jù)庫(kù)字符集和校對(duì)規(guī)則。語(yǔ)句如下:,CREATE DATABASE db_name DEFAULT CHARACTER SET charset_name DEFAULT COLLATE collation_name,3.2.3 MySQL的控制臺(tái)創(chuàng)建,上述CREATE DATABASE創(chuàng)建數(shù)據(jù)庫(kù)的語(yǔ)法中,數(shù)據(jù)庫(kù)字符集和數(shù)據(jù)庫(kù)校對(duì)規(guī)則如下所示。 如果指定了CHARACTER SET charset_name和COLLATE collation_name,那么采用字符集charset_name和校對(duì)規(guī)則collation_name。 如果指定

22、了CHARACTER SET charset_name而沒有指定COLLATE collation_name,那么采用CHARACTER SET charset_name和CHARACTER SET collation_name的默認(rèn)校對(duì)規(guī)則。 如果CHARACTER SET charset_name和COLLATE collation_name都沒有指定,則采用服務(wù)器字符集和服務(wù)器校對(duì)規(guī)則。,3.2.3 MySQL的控制臺(tái)創(chuàng)建,【示例4】 例如,在本示例中首先直接通過(guò)執(zhí)行CREATE DATABASE語(yǔ)句創(chuàng)建名稱是bookmange的數(shù)據(jù)庫(kù)。輸出結(jié)果如下:,mysql CREATE DATA

23、BASE IF NOT EXISTS bookmanage; Query OK, 1 row affected (0.02 sec),上述顯示的代碼中,第二行代碼表示已經(jīng)創(chuàng)建成功,1行受到影響,處理時(shí)間為0.02秒。另外,“Query OK”表示創(chuàng)建、修改和刪除成功。 接著創(chuàng)建一個(gè)使用big5字符集,并帶校對(duì)規(guī)則的mylove數(shù)據(jù)庫(kù)。執(zhí)行效果如下:,mysql CREATE DATABASE mylove CHARACTER SET big5 COLLATE big5_chinese_ci; Query OK, 1 row affected (0.08 sec),3.2.3 MySQL的控制臺(tái)

24、創(chuàng)建,數(shù)據(jù)庫(kù)不能重復(fù)存在,如果數(shù)據(jù)庫(kù)bookmanage已經(jīng)存在,那么再創(chuàng)建相同的數(shù)據(jù)庫(kù)時(shí)會(huì)輸出1007錯(cuò)誤代碼,該錯(cuò)誤提示創(chuàng)建的數(shù)據(jù)庫(kù)已經(jīng)存在。代碼如下:,mysql CREATE DATABASE bookmanage; ERROR 1007 (HY000): Cant create database bookmanage; database exists,一般情況下,在創(chuàng)建數(shù)據(jù)庫(kù)之前需要判斷該數(shù)據(jù)庫(kù)是否存在,如果不存在再進(jìn)行創(chuàng)建。執(zhí)行語(yǔ)句如下:,mysql CREATE DATABASE IF NOT EXISTS bookmanage; Query OK, 1 row affected

25、 (0.02 sec),3.3 查看數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)成功后,讀者還可以通過(guò)執(zhí)行相關(guān)的語(yǔ)句查看數(shù)據(jù)庫(kù)的信息。下面介紹兩部分內(nèi)容,執(zhí)行與SHOW有關(guān)的語(yǔ)句不僅可以查看數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)庫(kù),還可以查看單個(gè)數(shù)據(jù)庫(kù)的相關(guān)信息。,3.3.1 查看所有數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)成功后會(huì)在控制臺(tái)中輸出結(jié)果,為了驗(yàn)證數(shù)據(jù)庫(kù)系統(tǒng)中是否已經(jīng)存在創(chuàng)建的數(shù)據(jù)庫(kù),可以使用SHOW語(yǔ)句進(jìn)行查看。執(zhí)行SHOW DATABASES;語(yǔ)句時(shí)的輸出結(jié)果如下:,mysql SHOW DATABASES; +-+ | Database | +-+ | information_schema | | mysql | | performance_

26、schema | | sakila | | test | | testmanage | | world | +-+ 7 rows in set (0.22 sec),3.3.2 查看數(shù)據(jù)庫(kù)詳細(xì)信息,SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名稱;,通過(guò)SHOW DATABASES語(yǔ)句可以查看數(shù)據(jù)庫(kù)系統(tǒng)中的所有數(shù)據(jù)庫(kù),當(dāng)然,通過(guò)執(zhí)行該語(yǔ)句可以查看單獨(dú)的數(shù)據(jù)庫(kù)信息。如果要查看某一個(gè)數(shù)據(jù)庫(kù)的詳細(xì)信息,基本語(yǔ)法如下:,為了使查詢的信息顯示更加直觀,可以使用以下語(yǔ)法:,SHOW CREATE DATABASE 數(shù)據(jù)庫(kù)名稱 G,3.3.2 查看數(shù)據(jù)庫(kù)詳細(xì)信息,mysql SHOW CREATE DA

27、TABASE bookmanage G * 1. row * Database: bookmanage Create Database: CREATE DATABASE bookmanage /*!40100 DEFAULT CHARACTER SET utf8 */ 1 row in set (0.00 sec) mysql SHOW CREATE DATABASE mylove G * 1. row * Database: mylove Create Database: CREATE DATABASE mylove /*!40100 DEFAULT CHARACTER SET big5 *

28、/ 1 row in set (0.00 sec),【示例5】 在示例4中已經(jīng)創(chuàng)建了兩個(gè)新的數(shù)據(jù)庫(kù),下面通過(guò)執(zhí)行SHOW語(yǔ)句查看數(shù)據(jù)庫(kù)的詳細(xì)信息。執(zhí)行SHOW CREATE DATABASE bookmanage G語(yǔ)句時(shí)輸出結(jié)果如下:,3.4 修改數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)還存在著修改操作,修改數(shù)據(jù)庫(kù)名稱時(shí)有兩種方法:一種是通過(guò)MySQL Workbench工具修改,在彈出的菜單項(xiàng)中選擇Alter Schema項(xiàng),如圖3-8所示;另一種是通過(guò)在控制臺(tái)中執(zhí)行語(yǔ)句進(jìn)行修改。,圖3-8 通過(guò)Workbench修改數(shù)據(jù)庫(kù),3.4 修改數(shù)據(jù)庫(kù),mysql ALTER DATABASE mylove CHARACT

29、ER SET gb2312; Query OK, 1 row affected (0.01 sec) mysql SHOW CREATE DATABASE mylove G * 1. row * Database: mylove Create Database: CREATE DATABASE mylove /*!40100 DEFAULT CHARACTER SET gb2312*/ 1 row in set (0.00 sec),如果MySQL數(shù)據(jù)庫(kù)的存儲(chǔ)引擎是MyISAM,那么只要修改DATA目錄下的庫(kù)名文件夾就可以了,但是如果是InnoDB存儲(chǔ)引擎,其實(shí)是無(wú)法修改數(shù)據(jù)庫(kù)名稱的,如上圖3

30、-8所示,在該圖中只能修改字符集和校對(duì)規(guī)則。 雖然InnoDB存儲(chǔ)引擎無(wú)法修改默認(rèn)數(shù)據(jù)庫(kù)名稱,但是可以對(duì)字符集和校對(duì)規(guī)則進(jìn)行設(shè)置。例如,查看mylove數(shù)據(jù)庫(kù),并把該數(shù)據(jù)庫(kù)的字符集修改為gb2312。執(zhí)行語(yǔ)句如下:,3.5 刪除數(shù)據(jù)庫(kù),刪除數(shù)據(jù)庫(kù)是指在數(shù)據(jù)庫(kù)系統(tǒng)中刪除已經(jīng)存在的數(shù)據(jù)庫(kù),刪除數(shù)據(jù)庫(kù)成功后,原來(lái)分配的空間將被收回。MySQL中刪除數(shù)據(jù)庫(kù)時(shí)也可以通過(guò)兩種方式:一種是直接通過(guò)MySQL Workbench工具刪除;另一種是執(zhí)行DROP DATABASE語(yǔ)句進(jìn)行刪除,在該命令后添加數(shù)據(jù)庫(kù)名稱的參數(shù)。語(yǔ)法如下:,DROP DATABASE 數(shù)據(jù)庫(kù)名稱;,【示例6】 在本次示例中刪除前面示例

31、創(chuàng)建的mylove數(shù)據(jù)庫(kù),執(zhí)行DROP DATABASE mylove;語(yǔ)句前和之后會(huì)分別執(zhí)行SHOW DATABASES;語(yǔ)句查看刪除前后數(shù)據(jù)庫(kù)系統(tǒng)中存在的數(shù)據(jù)庫(kù)。,3.5 刪除數(shù)據(jù)庫(kù),(1)首先執(zhí)行SHOW DATABASES;語(yǔ)句,輸出結(jié)果如下:,mysql SHOW DATABASES; +-+ | Database | +-+ | information_schema | | bookmanage | | mylove | | mysql | | performance_schema | | sakila | | test | | world | +-+ 8 rows in set

32、(0.00 sec),(2)繼續(xù)執(zhí)行DROP DATABASE mylove;語(yǔ)句刪除數(shù)據(jù)庫(kù),輸出結(jié)果如下:,3.5 刪除數(shù)據(jù)庫(kù),(3)執(zhí)行刪除成功后再次執(zhí)行SHOW DATABASES;語(yǔ)句查看數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)庫(kù)。輸出結(jié)果如下:,mysql DROP DATABASE mylove; Query OK, 0 rows affected (0.05 sec),mysql SHOW DATABASES; +-+ | Database | +-+ | information_schema | | bookmanage | | mysql | | performance_schema | | sa

33、kila | | test | | world | +-+ 7 rows in set (0.00 sec),3.5 刪除數(shù)據(jù)庫(kù),(4)通過(guò)執(zhí)行DROP DATABASE語(yǔ)句可以刪除指定的數(shù)據(jù)庫(kù)。與創(chuàng)建數(shù)據(jù)庫(kù)之前判斷數(shù)據(jù)庫(kù)是否存在一樣,刪除數(shù)據(jù)庫(kù)之前也可以判斷該數(shù)據(jù)庫(kù)是否存在,如果存在則刪除?;菊Z(yǔ)法如下:,DROP DATABASE IF EXISTS 數(shù)據(jù)庫(kù)名稱;,3.6 數(shù)據(jù)庫(kù)的其他操作,創(chuàng)建數(shù)據(jù)庫(kù)并不表示要選擇并使用它,開發(fā)者需要明確的進(jìn)行操作。如果想要查看當(dāng)前的數(shù)據(jù)庫(kù),可以執(zhí)行SELECT DATABASE()語(yǔ)句。效果如下:,從上述內(nèi)容中可以看到當(dāng)前MySQL中選擇的是inform

34、ation_schema數(shù)據(jù)庫(kù),如果要選擇bookmanage數(shù)據(jù)庫(kù),可以執(zhí)行USE語(yǔ)句。語(yǔ)法如下:,mysql SELECT DATABASE(); +-+ | DATABASE() | +-+ | information_schema | +-+ 1 row in set (0.02 sec),3.6 數(shù)據(jù)庫(kù)的其他操作,例如,執(zhí)行USE bookmanage語(yǔ)句查看輸出的效果。代碼如下:,數(shù)據(jù)庫(kù)只需要?jiǎng)?chuàng)建一次,但是必須在每次啟動(dòng)mysql會(huì)話時(shí)在使用前先選擇它,開發(fā)者可以根據(jù)上述的USE語(yǔ)句來(lái)實(shí)現(xiàn),還可以在DOS窗口通過(guò)mysql命令選擇數(shù)據(jù)庫(kù),這時(shí)只需要在提供連接參數(shù)之后指定數(shù)據(jù)庫(kù)名稱。代碼如下:,USE 數(shù)據(jù)庫(kù)名稱;,mysql USE bookmanage; Database changed,3.6 數(shù)據(jù)庫(kù)的其他操作,將bookmanage數(shù)據(jù)庫(kù)選擇完成后就可以執(zhí)行其他的操作了,例如,向該數(shù)據(jù)庫(kù)中創(chuàng)建數(shù)據(jù)庫(kù)表結(jié)構(gòu)、視圖和存儲(chǔ)過(guò)程等。還可以查看表結(jié)構(gòu)和表中的數(shù)據(jù),執(zhí)行SHOW TABLES語(yǔ)句輸出bookma

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論