MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程第2章課件_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程第2章課件_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程第2章課件_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程第2章課件_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程第2章課件_第5頁(yè)
已閱讀5頁(yè),還剩169頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

孔祥盛MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程

之MySQL基礎(chǔ)知識(shí)孔祥盛MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程1123通過(guò)本章的學(xué)習(xí),讀者可以掌握一些常用的MySQL命令,從而對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行一些簡(jiǎn)單的管理。本章知識(shí)點(diǎn)較為繁雜,希望保持一份兒耐心。4字符集以及字符序設(shè)置MySQL概述MySQL數(shù)據(jù)庫(kù)管理MySQL表管理5系統(tǒng)變量?jī)?nèi)容一覽123通過(guò)本章的學(xué)習(xí),讀者可以掌握一些常用的MySQ2123MySQL由瑞典MySQLAB公司開(kāi)發(fā)。2008年1月MySQL被美國(guó)的SUN公司收購(gòu)。2009年4月SUN公司又被美國(guó)的甲骨文(Oracle)公司收購(gòu)。MySQL服務(wù)的安裝MySQL的特點(diǎn)MySQL服務(wù)的配置45啟動(dòng)與停止MySQL服務(wù)MySQL配置文件2.1MySQL概述123MySQL由瑞典MySQLAB公司開(kāi)發(fā)。MySQL服367MySQL由瑞典MySQLAB公司開(kāi)發(fā)。2008年1月MySQL被美國(guó)的SUN公司收購(gòu)。2009年4月SUN公司又被美國(guó)的甲骨文(Oracle)公司收購(gòu)。連接MySQL服務(wù)器關(guān)系數(shù)據(jù)庫(kù)MySQL客戶(hù)機(jī)2.1MySQL概述67MySQL由瑞典MySQLAB公司開(kāi)發(fā)。連接MySQL4

MySQL是一個(gè)單進(jìn)程多線(xiàn)程、支持多用戶(hù)、基于客戶(hù)機(jī)/服務(wù)器(Client/Server簡(jiǎn)稱(chēng)C/S)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。性能高效跨平臺(tái)支持簡(jiǎn)單易用開(kāi)源支持多用戶(hù)2.1.1MySQL特點(diǎn)MySQL是一個(gè)單進(jìn)程多線(xiàn)程、支持多用戶(hù)、基于客MySQL的使用流程

2.1.1MySQL特點(diǎn)MySQL的使用流程2.1.1MySQL特點(diǎn)MySQL其他概念(請(qǐng)參看本書(shū)內(nèi)容):MySQL服務(wù)MySQL服務(wù)實(shí)例MySQL服務(wù)器端口號(hào)2.1.1MySQL特點(diǎn)MySQL其他概念(請(qǐng)參看本書(shū)內(nèi)容):2.1.1MySQLMySQL服務(wù)的安裝(請(qǐng)參看本書(shū)內(nèi)容)。建議自學(xué),并上機(jī)操作。注意:本書(shū)使用的MySQL為5.6版本??梢缘奖緯?shū)指定的網(wǎng)址下載MySQL圖形化安裝包mysql-5.6.5-m8-win32.msi。

2.1.2MySQL服務(wù)的安裝MySQL服務(wù)的安裝(請(qǐng)參看本書(shū)內(nèi)容)。2.1.2MySQMySQL服務(wù)的配置(請(qǐng)參看本書(shū)內(nèi)容)。建議自學(xué),并上機(jī)操作。配置過(guò)程中的其他知識(shí)點(diǎn):OLAP與OLTP

EnableStrictMode選項(xiàng)字符集/字符序MySQL超級(jí)管理員root賬戶(hù)my.ini配置文件中2.1.3MySQL服務(wù)的配置MySQL服務(wù)的配置(請(qǐng)參看本書(shū)內(nèi)容)。2.1.3MySQMySQL服務(wù)的啟動(dòng)與停止(請(qǐng)參看本書(shū)內(nèi)容)。建議自學(xué),并上機(jī)操作。2.1.4啟動(dòng)與停止MySQL服務(wù)MySQL服務(wù)的啟動(dòng)與停止(請(qǐng)參看本書(shū)內(nèi)容)。2.1.4啟my.ini配置文件包含了多種參數(shù)選項(xiàng)組,每個(gè)參數(shù)選項(xiàng)組通過(guò)“[]”指定,每個(gè)參數(shù)選項(xiàng)組可以配置多個(gè)參數(shù)信息。通常情況下,每個(gè)參數(shù)遵循“參數(shù)名=參數(shù)值”這種配置格式,參數(shù)名一般是小寫(xiě)字母,參數(shù)名大小寫(xiě)敏感。常用的參數(shù)選項(xiàng)組有“[client]”、“[mysql]”以及“[mysqld]”參數(shù)選項(xiàng)組。2.1.5MySQL配置文件my.ini配置文件包含了多種參數(shù)選項(xiàng)組,每個(gè)參數(shù)選項(xiàng)組通過(guò)[client]參數(shù)選項(xiàng)組:配置了MySQL自帶的MySQL5.6命令行窗口可以讀取的參數(shù)信息。常用的參數(shù)是port(默認(rèn)值是3306)。修改該port值會(huì)導(dǎo)致新打開(kāi)的MySQL5.6命令行窗口無(wú)法連接MySQL服務(wù)器。2.1.5MySQL配置文件[client]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysql]參數(shù)選項(xiàng)組:配置了MySQL客戶(hù)機(jī)程序mysql.exe可以讀取的參數(shù)信息。常用的參數(shù)有“prompt”、“default-character-set=gbk”。修改“[mysql]”參數(shù)選項(xiàng)組中的參數(shù)值,將直接影響新打開(kāi)的MySQL客戶(hù)機(jī)。2.1.5MySQL配置文件[mysql]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:配置了MySQL服務(wù)程序mysqld.exe可以讀取的參數(shù)信息,mysqld.exe啟動(dòng)時(shí),將[mysqld]參數(shù)選項(xiàng)組的參數(shù)信息加載到服務(wù)器內(nèi)存,繼而生成MySQL服務(wù)實(shí)例。2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:常用的參數(shù)有“port”、“basedir”、“datadir”、“character-set-server”、“sql_mode”、“max_connections”以及“default_storage_engine”等。2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:修改“[mysqld]”參數(shù)選項(xiàng)組的參數(shù)值,只有重新啟動(dòng)MySQL服務(wù),將修改后的配置文件參數(shù)信息加載到服務(wù)器內(nèi)存后,新配置文件才會(huì)在新的MySQL服務(wù)實(shí)例中生效。如果“[mysqld]”參數(shù)選項(xiàng)組的參數(shù)信息出現(xiàn)錯(cuò)誤,將會(huì)導(dǎo)致MySQL服務(wù)無(wú)法啟動(dòng)。2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件MySQL客戶(hù)機(jī)(本書(shū)使用前兩個(gè)):MySQL5.6命令行窗口

CMD命令提示符窗口

WEB瀏覽器(例如phpMyAdmin)第三方客戶(hù)機(jī)程序(例如MySQL-Front、MySQL

ManagerforMySQL等)2.1.6MySQL客戶(hù)機(jī)MySQL客戶(hù)機(jī)(本書(shū)使用前兩個(gè)):2.1.6MySQL客phpMyAdmin2.1.6MySQL客戶(hù)機(jī)phpMyAdmin2.1.6MySQL客戶(hù)機(jī)MySQL-Front2.1.6MySQL客戶(hù)機(jī)MySQL-Front2.1.6MySQL客戶(hù)機(jī)MySQL

ManagerforMySQL2.1.6MySQL客戶(hù)機(jī)MySQL

ManagerforMySQL2.1.6M2.1.6MySQL客戶(hù)機(jī)HeidiSQL2.1.6MySQL客戶(hù)機(jī)HeidiSQLMySQL客戶(hù)機(jī)連接MySQL服務(wù)器須提供:合法的登錄主機(jī):解決“from”的問(wèn)題。合法的賬戶(hù)名以及密碼:解決“who”的問(wèn)題。MySQL服務(wù)器主機(jī)名(或IP地址):解決“to”的問(wèn)題。端口號(hào):解決“多卡多待”的問(wèn)題。MySQL客戶(hù)機(jī)與MySQL服務(wù)器是同一臺(tái)主機(jī)時(shí),主機(jī)名可以使用localhost(或者127.0.0.1)。2.1.7連接MySQL服務(wù)器MySQL客戶(hù)機(jī)連接MySQL服務(wù)器須提供:2.1.7連接當(dāng)MySQL客戶(hù)機(jī)與MySQL服務(wù)器是同一臺(tái)主機(jī)時(shí),打開(kāi)命令提示符窗口,輸入mysql-h127.0.0.1-P3306-uroot–proot或者mysql-hlocalhost-P3306-uroot–proot然后回車(chē)(注意-p后面緊跟密碼root),即可實(shí)現(xiàn)本地MySQL客戶(hù)機(jī)與本地MySQL服務(wù)器之間的成功連接。2.1.7連接MySQL服務(wù)器當(dāng)MySQL客戶(hù)機(jī)與MySQL服務(wù)器是同一臺(tái)主機(jī)時(shí),打開(kāi)命令2.1.7連接MySQL服務(wù)器2.1.7連接MySQL服務(wù)器123MySQL由瑞典MySQLAB公司開(kāi)發(fā),默認(rèn)情況下MySQL使用的是latin1字符集。由此可能導(dǎo)致MySQL數(shù)據(jù)庫(kù)不夠支持中文字符串查詢(xún)或者發(fā)生中文字符串亂碼等問(wèn)題。

MySQL字符集與字符序字符集及字符序概念MySQL的字符集轉(zhuǎn)換過(guò)程45MySQL字符集的設(shè)置SQL腳本文件2.2字符集以及字符序設(shè)置123MySQL由瑞典MySQLAB公司開(kāi)發(fā),默認(rèn)25字符(Character)是人類(lèi)語(yǔ)言最小的表義符號(hào),例如‘A’、‘B’等。給定一系列字符,對(duì)每個(gè)字符賦予一個(gè)數(shù)值,用數(shù)值來(lái)代表對(duì)應(yīng)的字符,這個(gè)數(shù)值就是字符的編碼(CharacterEncoding)。給定一系列字符并賦予對(duì)應(yīng)的編碼后,所有這些“字符和編碼對(duì)”組成的集合就是字符集(CharacterSet)。

2.2.1字符集及字符序概念字符(Character)是人類(lèi)語(yǔ)言最小的表義符號(hào),2.2.1字符集及字符序概念2.2.1字符集及字符序概念字符序(Collation)是指在同一字符集內(nèi)字符之間的比較規(guī)則。一個(gè)字符集包含多種字符序,每個(gè)字符序唯一對(duì)應(yīng)一種字符集。MySQL字符序命名規(guī)則是:以字符序?qū)?yīng)的字符集名稱(chēng)開(kāi)頭,以國(guó)家名居中(或以general居中),以ci、cs或bin結(jié)尾。ci表示大小寫(xiě)不敏感,cs表示大小寫(xiě)敏感,bin表示按二進(jìn)制編碼值比較。2.2.1字符集及字符序概念字符序(Collation)是指在同一字符集內(nèi)字符之使用MySQL命令showcharacterset;即可查看當(dāng)前MySQL服務(wù)實(shí)例支持的字符集、字符集默認(rèn)的字符序以及字符集占用的最大字節(jié)長(zhǎng)度等信息latin1支持西歐字符、希臘字符等gbk支持中文簡(jiǎn)體字符big5支持中文繁體字符utf8幾乎支持世界所有國(guó)家的字符。2.2.2MySQL字符集及字符序使用MySQL命令showcharacterse使用MySQL命令showvariableslike'character%';即可查看當(dāng)前MySQL服務(wù)實(shí)例使用的字符集。2.2.2MySQL字符集及字符序使用MySQL命令2.2.2MySQL字符集及字符

character_set_client:MySQL客戶(hù)機(jī)字符集。character_set_connection:數(shù)據(jù)通信鏈路字符集,當(dāng)MySQL客戶(hù)機(jī)向服務(wù)器發(fā)送請(qǐng)求時(shí),請(qǐng)求數(shù)據(jù)以該字符集進(jìn)行編碼。character_set_database:數(shù)據(jù)庫(kù)字符集。character_set_filesystem:MySQL服務(wù)器文件系統(tǒng)字符集,該值是固定的binary。2.2.2MySQL字符集及字符序character_set_client:MySQL客戶(hù)character_set_results:結(jié)果集的字符集,MySQL服務(wù)器向MySQL客戶(hù)機(jī)返回執(zhí)行結(jié)果時(shí),執(zhí)行結(jié)果以該字符集進(jìn)行編碼。character_set_server:MySQL服務(wù)實(shí)例字符集。character_set_system:元數(shù)據(jù)(字段名、表名、數(shù)據(jù)庫(kù)名等)的字符集,默認(rèn)值為utf8。2.2.2MySQL字符集及字符序character_set_results:結(jié)果集的字符使用MySQL命令“showcollation;”即可查看當(dāng)前MySQL服務(wù)實(shí)例支持的字符序。2.2.2MySQL字符集及字符序使用MySQL命令“showcollation;”2.2.3MySQL字符集的轉(zhuǎn)換過(guò)程2.2.3MySQL字符集的轉(zhuǎn)換過(guò)程方法1:修改my.ini配置文件,可修改MySQL默認(rèn)的字符集。方法2:MySQL提供下列MySQL命令可以“臨時(shí)地”修改MySQL“當(dāng)前會(huì)話(huà)的”字符集以及字符序。2.2.4MySQL字符集的設(shè)置方法1:修改my.ini配置文件,可修改MySQL默認(rèn)的setcharacter_set_client=gbk;setcharacter_set_connection=gbk;setcharacter_set_database=gbk;setcharacter_set_results=gbk;setcharacter_set_server=gbk;setcollation_connection=gbk_chinese_ci;setcollation_database=gbk_chinese_ci;setcollation_server=gbk_chinese_ci;2.2.4MySQL字符集的設(shè)置setcharacter_set_client=g方法3:使用MySQL命令“setnamesgbk;”可以“臨時(shí)一次性地”設(shè)置character_set_client、character_set_connection以及character_set_results的字符集為gbk方法4:連接MySQL服務(wù)器時(shí)指定字符集mysql--default-character-set=字符集

-h服務(wù)器IP地址-u賬戶(hù)名–p密碼2.2.4MySQL字符集的設(shè)置方法3:使用MySQL命令“setnamesgbkSQL基本的執(zhí)行方法(兩種):

\.C:\mysql\init.sqlsourceC:\mysql\init.sql2.2.5SQL腳本文件SQL基本的執(zhí)行方法(兩種):2.2.5SQL腳本文件123

數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象的容器。MySQL數(shù)據(jù)庫(kù)的管理主要包括數(shù)據(jù)庫(kù)的創(chuàng)建、選擇當(dāng)前操作的數(shù)據(jù)庫(kù)、顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)以及刪除數(shù)據(jù)庫(kù)等操作

。查看數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)45選擇當(dāng)前操作的數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)2.3MySQL數(shù)據(jù)庫(kù)管理123數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象的容器。MySQL數(shù)據(jù)庫(kù)

createdatabasechoose;成功創(chuàng)建choose數(shù)據(jù)庫(kù)后,數(shù)據(jù)庫(kù)根目錄下會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)目錄。2.3.1創(chuàng)建數(shù)據(jù)庫(kù)createdatabasechoose;2.3

使用MySQL命令showdatabases;即可查看MySQL服務(wù)實(shí)例上所有的數(shù)據(jù)庫(kù)

2.3.2查看數(shù)據(jù)庫(kù)使用MySQL命令2.3.2查看數(shù)據(jù)庫(kù)

使用MySQL命令showcreatedatabasechoose;可以查看choose數(shù)據(jù)庫(kù)的相關(guān)信息(例如MySQL版本ID號(hào)、默認(rèn)字符集等信息)。2.3.3顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)使用MySQL命令2.3.3顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)

執(zhí)行“usechoose;”命令后,后續(xù)的MySQL命令以及SQL語(yǔ)句將自動(dòng)操作choose數(shù)據(jù)庫(kù)中所有數(shù)據(jù)庫(kù)對(duì)象。2.3.4選擇當(dāng)前操作的數(shù)據(jù)庫(kù)執(zhí)行“usechoose;”命令后,后續(xù)的刪除student數(shù)據(jù)庫(kù),使用SQL語(yǔ)句dropdatabasestudent;2.3.5刪除數(shù)據(jù)庫(kù)刪除student數(shù)據(jù)庫(kù),使用SQL語(yǔ)句2.3.5刪除數(shù)據(jù)123表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象

設(shè)置默認(rèn)的存儲(chǔ)引擎MyISAM和InnoDB存儲(chǔ)引擎創(chuàng)建數(shù)據(jù)庫(kù)表45顯示表結(jié)構(gòu)表記錄的管理2.4MySQL表管理123表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象設(shè)置默認(rèn)的存儲(chǔ)引擎M4567表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象

刪除表InnoDB表空間2.4MySQL表管理67表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象刪除表InnoDB表空46MySQL提供了插件式(Pluggable)的存儲(chǔ)引擎,存儲(chǔ)引擎是基于表的,同一個(gè)數(shù)據(jù)庫(kù),不同的表,存儲(chǔ)引擎可以不同。甚至同一個(gè)數(shù)據(jù)庫(kù)表,在不同的場(chǎng)合可以應(yīng)用不同的存儲(chǔ)引擎。

2.4.1MyISAM和InnoDB存儲(chǔ)引擎MySQL提供了插件式(Pluggable)的存儲(chǔ)引使用MySQL命令“showengines;”,即可查看MySQL服務(wù)實(shí)例支持的存儲(chǔ)引擎。2.4.1MyISAM和InnoDB存儲(chǔ)引擎使用MySQL命令“showengines1.InnoDB存儲(chǔ)引擎的特點(diǎn)支持外鍵(ForeignKey)支持事務(wù)(Transaction):如果某張表主要提供OLTP支持,需要執(zhí)行大量的增、刪、改操作(insert、delete、update語(yǔ)句),出于事務(wù)安全方面的考慮,InnoDB存儲(chǔ)引擎是更好的選擇。最新版本的MySQL已經(jīng)開(kāi)始支持全文檢索。2.4.1MyISAM和InnoDB存儲(chǔ)引擎1.InnoDB存儲(chǔ)引擎的特點(diǎn)2.4.1MyISAM和In2.MyISAM存儲(chǔ)引擎的特點(diǎn)MyISAM具有檢查和修復(fù)表的大多數(shù)工具。MyISAM表可以被壓縮

MyISAM表最早支持全文索引

但MyISAM表不支持事務(wù)

但MyISAM表不支持外鍵(ForeignKey)。如果需要執(zhí)行大量的select語(yǔ)句,出于性能方面的考慮,MyISAM存儲(chǔ)引擎是更好的選擇。2.4.1MyISAM和InnoDB存儲(chǔ)引擎2.MyISAM存儲(chǔ)引擎的特點(diǎn)2.4.1MyISAM和InMySQL5.6默認(rèn)的默認(rèn)的存儲(chǔ)引擎是InnoDB。使用MySQL命令setdefault_storage_engine=MyISAM;可以“臨時(shí)地”將MySQL“當(dāng)前會(huì)話(huà)的”存儲(chǔ)引擎設(shè)置為MyISAM,使用MySQL命令“showengines;”可以查看當(dāng)前MySQL服務(wù)實(shí)例默認(rèn)的存儲(chǔ)引擎。2.4.2設(shè)置默認(rèn)的存儲(chǔ)引擎MySQL5.6默認(rèn)的默認(rèn)的存儲(chǔ)引擎是InnoDB。使用SQL語(yǔ)句“createtable表名”即可創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表。例如:

usechoose;setdefault_storage_engine=InnoDB;createtablemy_table(todaydatetime,namechar(20));2.4.3創(chuàng)建數(shù)據(jù)庫(kù)表使用SQL語(yǔ)句“createtable表名”即可創(chuàng)成功創(chuàng)建InnoDB存儲(chǔ)引擎的my_table表后,MySQL服務(wù)實(shí)例會(huì)在數(shù)據(jù)庫(kù)目錄choose中自動(dòng)創(chuàng)建一個(gè)名字為表名、后綴名為frm的文件。my_table.frm。2.4.3創(chuàng)建數(shù)據(jù)庫(kù)表成功創(chuàng)建InnoDB存儲(chǔ)引擎的my_table表后,將my_table表的存儲(chǔ)引擎修改為MyISAM。usechoose;altertablemy_tableengine=MyISAM;2.4.3創(chuàng)建數(shù)據(jù)庫(kù)表將my_table表的存儲(chǔ)引擎修改為MyISAM。2.4.3使用MySQL命令“destable_name;”即可查看表名為table_name的表結(jié)構(gòu)。2.4.4顯示表結(jié)構(gòu)使用MySQL命令“destable_name;”使用MySQL命令“showcreatetabletable_name;”,查看名為table_name表的詳細(xì)信息。2.4.4顯示表結(jié)構(gòu)使用MySQL命令“showcreatetablusechoose;insertintomy_tablevalues(now(),'a');insertintomy_tablevalues(now(),'a');insertintomy_tablevalues(now(),NULL);insertintomy_tablevalues(now(),'');select*frommy_table;

2.4.5表記錄的管理usechoose;2.4.5表記錄的管理任務(wù)布置1:完成本書(shū)場(chǎng)景描述1:MyISAM表記錄的管理的任務(wù)要求。任務(wù)布置2:完成本書(shū)場(chǎng)景描述2:InnoDB表記錄的管理的任務(wù)要求。2.4.5表記錄的管理任務(wù)布置1:完成本書(shū)場(chǎng)景描述1:MyISAM表記錄的管理的

1.共享表空間:MySQL服務(wù)實(shí)例承載的所有數(shù)據(jù)庫(kù)的所有InnoDB表的數(shù)據(jù)信息、索引信息、各種元數(shù)據(jù)信息以及事務(wù)的回滾(UNDO)信息,全部存放在共享表空間文件中。默認(rèn)情況下該文件位于數(shù)據(jù)庫(kù)根目錄下,文件名是ibdata1,且文件的初始大小為10M。可以使用MySQL命令“showvariableslike‘innodb_data_file_path’;”查看該文件的的屬性。

2.4.6InnoDB表空間1.共享表空間:MySQL服務(wù)實(shí)例承載的所有數(shù)據(jù)庫(kù)的2.4.6InnoDB表空間2.4.6InnoDB表空間

2.獨(dú)享表空間:如果將全局系統(tǒng)變量innodb_file_per_table的值設(shè)置為ON(innodb_file_per_table的默認(rèn)值為OFF),那么之后再創(chuàng)建InnoDB存儲(chǔ)引擎的新表,這些表的數(shù)據(jù)信息、索引信息都將保存到獨(dú)享表空間文件。2.4.6InnoDB表空間2.獨(dú)享表空間:如果將全局系統(tǒng)變量innodb_fi獨(dú)享表空間的設(shè)置2.4.6InnoDB表空間獨(dú)享表空間的設(shè)置2.4.6InnoDB表空間usechoose;altertablemy_tableengine=InnoDB;createtablesecond_table(todaydatetime,namechar(20));2.4.6InnoDB表空間usechoose;2.4.6InnoDB表空間2.4.6InnoDB表空間2.4.6InnoDB表空間任務(wù)布置3:完成本書(shū)場(chǎng)景描述3的任務(wù)要求。2.4.6InnoDB表空間任務(wù)布置3:完成本書(shū)場(chǎng)景描述3的任務(wù)要求。2.4.6Inn使用SQL語(yǔ)句droptabletable_name;即可刪除名為table_name的表。刪除表后,MySQL服務(wù)實(shí)例會(huì)自動(dòng)刪除該表結(jié)構(gòu)定義文件(例如second_table.frm文件),以及數(shù)據(jù)、索引信息。該命令慎用!

2.4.7刪除表使用SQL語(yǔ)句2.4.7刪除表123MySQL數(shù)據(jù)庫(kù)中,變量分為系統(tǒng)變量(以@@開(kāi)頭)以及用戶(hù)自定義變量(以@開(kāi)頭)。查看系統(tǒng)變量的值全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量設(shè)置系統(tǒng)變量的值2.5系統(tǒng)變量123MySQL數(shù)據(jù)庫(kù)中,變量分為系統(tǒng)變量(以@@開(kāi)頭)以及67每一個(gè)MySQL客戶(hù)機(jī)成功連接MySQL服務(wù)器后,都會(huì)產(chǎn)生與之對(duì)應(yīng)的會(huì)話(huà)。會(huì)話(huà)期間,MySQL服務(wù)實(shí)例會(huì)在MySQL服務(wù)器內(nèi)存中生成與該會(huì)話(huà)對(duì)應(yīng)的會(huì)話(huà)系統(tǒng)變量,這些會(huì)話(huà)系統(tǒng)變量的初始值是全局系統(tǒng)變量值的拷貝。

2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量每一個(gè)MySQL客戶(hù)機(jī)成功連接MySQL服務(wù)器后,都由于各會(huì)話(huà)在會(huì)話(huà)期間所做的操作不盡相同,為了標(biāo)記各個(gè)會(huì)話(huà),會(huì)話(huà)系統(tǒng)變量又新增了12個(gè)變量。2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量由于各會(huì)話(huà)在會(huì)話(huà)期間所做的操作不盡相同,為了標(biāo)記各個(gè)2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量

使用“showglobalvariables;”命令即可查看MySQL服務(wù)器內(nèi)存中所有的全局系統(tǒng)變量信息(有393項(xiàng)之多)。使用“showsessionvariables;”命令即可查看與當(dāng)前會(huì)話(huà)相關(guān)的所有會(huì)話(huà)系統(tǒng)變量以及所有的全局系統(tǒng)變量(有405項(xiàng)之多),此處session關(guān)鍵字可以省略。

2.5.2查看系統(tǒng)變量的值使用“showglobalvariables;”

MySQL中有一些系統(tǒng)變量?jī)H僅是全局系統(tǒng)變量,例如innodb_data_file_path。showglobalvariableslike'innodb_data_file_path';showsessionvariableslike'innodb_data_file_path';showvariableslike'innodb_data_file_path';2.5.2查看系統(tǒng)變量的值MySQL中有一些系統(tǒng)變量?jī)H僅是全局系統(tǒng)變量,例如

MySQL中有一些系統(tǒng)變量?jī)H僅是會(huì)話(huà)系統(tǒng)變量,例如MySQL連接ID會(huì)話(huà)系統(tǒng)變量pseudo_thread_id。showsessionvariableslike'pseudo_thread_id';showvariableslike'pseudo_thread_id';2.5.2查看系統(tǒng)變量的值MySQL中有一些系統(tǒng)變量?jī)H僅是會(huì)話(huà)系統(tǒng)變量,例如MMySQL中有一些系統(tǒng)變量既是全局系統(tǒng)變量,又是會(huì)話(huà)系統(tǒng)變量,例如系統(tǒng)變量character_set_client既是全局系統(tǒng)變量,又是會(huì)話(huà)系統(tǒng)變量。2.5.2查看系統(tǒng)變量的值MySQL中有一些系統(tǒng)變量既是全局系統(tǒng)變量,又是會(huì)話(huà)

此時(shí)查看會(huì)話(huà)系統(tǒng)變量的方法:showsessionvariableslike'character_set_client';showvariableslike'character_set_client';此時(shí)查看全局系統(tǒng)變量的方法:

showglobalvariableslike'character_set_client';2.5.2查看系統(tǒng)變量的值此時(shí)查看會(huì)話(huà)系統(tǒng)變量的方法:2.5.2查看系統(tǒng)變量作為MySQL編碼規(guī)范,MySQL中的系統(tǒng)變量以?xún)蓚€(gè)“@”開(kāi)頭。@@global僅僅用于標(biāo)記全局系統(tǒng)變量;@@session僅僅用于標(biāo)記會(huì)話(huà)系統(tǒng)變量;@@首先標(biāo)記會(huì)話(huà)系統(tǒng)變量,如果會(huì)話(huà)系統(tǒng)變量不存在,則標(biāo)記全局系統(tǒng)變量。

2.5.2查看系統(tǒng)變量的值作為MySQL編碼規(guī)范,MySQL中的系統(tǒng)變量以?xún)蓚€(gè)“@”開(kāi)任務(wù)布置4:完成本書(shū)場(chǎng)景描述4的任務(wù)要求。2.5.2查看系統(tǒng)變量的值任務(wù)布置4:完成本書(shū)場(chǎng)景描述4的任務(wù)要求。2.5.2查看系方法一:修改MySQL源代碼,然后對(duì)MySQL源代碼重新編譯(該方法適用于MySQL高級(jí)用戶(hù),這里不作闡述)。方法二:最為簡(jiǎn)單的方法是通過(guò)修改MySQL配置文件,繼而修改MySQL系統(tǒng)變量的值(fai方法需要重啟MySQL服務(wù))。方法三:在MySQL服務(wù)運(yùn)行期間,使用“set”命令重新設(shè)置系統(tǒng)變量的值。

2.5.2查看系統(tǒng)變量的值方法一:修改MySQL源代碼,然后對(duì)MySQL源代碼重新編譯設(shè)置全局系統(tǒng)變量的值的方法:set@@global.innodb_file_per_table=default;set@@global.innodb_file_per_table=ON;setglobalinnodb_file_per_table=ON;2.5.2查看系統(tǒng)變量的值設(shè)置全局系統(tǒng)變量的值的方法:2.5.2查看系統(tǒng)變量

設(shè)置會(huì)話(huà)系統(tǒng)變量的值的方法:set@@session.pseudo_thread_id=5;setsessionpseudo_thread_id=5;set@@pseudo_thread_id=5;setpseudo_thread_id=5;2.5.2查看系統(tǒng)變量的值設(shè)置會(huì)話(huà)系統(tǒng)變量的值的方法:2.5.2查看系統(tǒng)變量

MySQL中還有一些特殊的全局系統(tǒng)變量(例如log_bin、tmpdir、version、datadir),在MySQL服務(wù)實(shí)例運(yùn)行期間它們的值不能動(dòng)態(tài)修改,不能使用“set”命令進(jìn)行重新設(shè)置,這種變量稱(chēng)為靜態(tài)變量。數(shù)據(jù)庫(kù)管理員可以使用方法一或者方法二對(duì)靜態(tài)變量的值重新設(shè)置。

2.5.2查看系統(tǒng)變量的值MySQL中還有一些特殊的全局系統(tǒng)變量(例如log_步驟1:準(zhǔn)備工作方法一:停止MySQL服務(wù)方法二:使用MySQL命令“flushtableswithreadlock;”將服務(wù)器內(nèi)存中的數(shù)據(jù)“刷新”到數(shù)據(jù)庫(kù)文件中,同時(shí)鎖定所有表,以保證備份期間不會(huì)有新的數(shù)據(jù)寫(xiě)入。2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)步驟1:準(zhǔn)備工作2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)82步驟2:備份文件的選取如果數(shù)據(jù)庫(kù)中全部是MyISAM存儲(chǔ)引擎的表,最為簡(jiǎn)單的數(shù)據(jù)庫(kù)備份方法就是直接“備份”整個(gè)數(shù)據(jù)庫(kù)目錄。如果某個(gè)數(shù)據(jù)庫(kù)中還存在InnoDB存儲(chǔ)引擎的表,此時(shí)不僅需要“備份”整個(gè)數(shù)據(jù)庫(kù)目錄,還需要備份ibdata1表空間文件以及重做日志文件ib_logfile0與ib_logfile1。2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)步驟2:備份文件的選取2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)83步驟2:備份文件的選取數(shù)據(jù)庫(kù)備份時(shí),建議將MySQL配置文件(例如my.ini配置文件)一并進(jìn)行備份。2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)步驟2:備份文件的選取2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)84步驟3:數(shù)據(jù)庫(kù)恢復(fù)首先停止MySQL服務(wù);然后將整個(gè)數(shù)據(jù)庫(kù)目錄、MySQL配置文件(例如my.ini配置文件)、ibdata1共享表空間文件以及重做日志文件ib_logfile0與ib_logfile1復(fù)制到新MySQL服務(wù)器對(duì)應(yīng)的路徑,即可恢復(fù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)。2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)步驟3:數(shù)據(jù)庫(kù)恢復(fù)2.6MySQL數(shù)據(jù)庫(kù)備份和恢復(fù)85ThanksThanks86MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程第2章課件87孔祥盛MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程

之MySQL基礎(chǔ)知識(shí)孔祥盛MySQL數(shù)據(jù)庫(kù)基礎(chǔ)與實(shí)例教程88123通過(guò)本章的學(xué)習(xí),讀者可以掌握一些常用的MySQL命令,從而對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行一些簡(jiǎn)單的管理。本章知識(shí)點(diǎn)較為繁雜,希望保持一份兒耐心。4字符集以及字符序設(shè)置MySQL概述MySQL數(shù)據(jù)庫(kù)管理MySQL表管理5系統(tǒng)變量?jī)?nèi)容一覽123通過(guò)本章的學(xué)習(xí),讀者可以掌握一些常用的MySQ89123MySQL由瑞典MySQLAB公司開(kāi)發(fā)。2008年1月MySQL被美國(guó)的SUN公司收購(gòu)。2009年4月SUN公司又被美國(guó)的甲骨文(Oracle)公司收購(gòu)。MySQL服務(wù)的安裝MySQL的特點(diǎn)MySQL服務(wù)的配置45啟動(dòng)與停止MySQL服務(wù)MySQL配置文件2.1MySQL概述123MySQL由瑞典MySQLAB公司開(kāi)發(fā)。MySQL服9067MySQL由瑞典MySQLAB公司開(kāi)發(fā)。2008年1月MySQL被美國(guó)的SUN公司收購(gòu)。2009年4月SUN公司又被美國(guó)的甲骨文(Oracle)公司收購(gòu)。連接MySQL服務(wù)器關(guān)系數(shù)據(jù)庫(kù)MySQL客戶(hù)機(jī)2.1MySQL概述67MySQL由瑞典MySQLAB公司開(kāi)發(fā)。連接MySQL91

MySQL是一個(gè)單進(jìn)程多線(xiàn)程、支持多用戶(hù)、基于客戶(hù)機(jī)/服務(wù)器(Client/Server簡(jiǎn)稱(chēng)C/S)的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。性能高效跨平臺(tái)支持簡(jiǎn)單易用開(kāi)源支持多用戶(hù)2.1.1MySQL特點(diǎn)MySQL是一個(gè)單進(jìn)程多線(xiàn)程、支持多用戶(hù)、基于客MySQL的使用流程

2.1.1MySQL特點(diǎn)MySQL的使用流程2.1.1MySQL特點(diǎn)MySQL其他概念(請(qǐng)參看本書(shū)內(nèi)容):MySQL服務(wù)MySQL服務(wù)實(shí)例MySQL服務(wù)器端口號(hào)2.1.1MySQL特點(diǎn)MySQL其他概念(請(qǐng)參看本書(shū)內(nèi)容):2.1.1MySQLMySQL服務(wù)的安裝(請(qǐng)參看本書(shū)內(nèi)容)。建議自學(xué),并上機(jī)操作。注意:本書(shū)使用的MySQL為5.6版本??梢缘奖緯?shū)指定的網(wǎng)址下載MySQL圖形化安裝包mysql-5.6.5-m8-win32.msi。

2.1.2MySQL服務(wù)的安裝MySQL服務(wù)的安裝(請(qǐng)參看本書(shū)內(nèi)容)。2.1.2MySQMySQL服務(wù)的配置(請(qǐng)參看本書(shū)內(nèi)容)。建議自學(xué),并上機(jī)操作。配置過(guò)程中的其他知識(shí)點(diǎn):OLAP與OLTP

EnableStrictMode選項(xiàng)字符集/字符序MySQL超級(jí)管理員root賬戶(hù)my.ini配置文件中2.1.3MySQL服務(wù)的配置MySQL服務(wù)的配置(請(qǐng)參看本書(shū)內(nèi)容)。2.1.3MySQMySQL服務(wù)的啟動(dòng)與停止(請(qǐng)參看本書(shū)內(nèi)容)。建議自學(xué),并上機(jī)操作。2.1.4啟動(dòng)與停止MySQL服務(wù)MySQL服務(wù)的啟動(dòng)與停止(請(qǐng)參看本書(shū)內(nèi)容)。2.1.4啟my.ini配置文件包含了多種參數(shù)選項(xiàng)組,每個(gè)參數(shù)選項(xiàng)組通過(guò)“[]”指定,每個(gè)參數(shù)選項(xiàng)組可以配置多個(gè)參數(shù)信息。通常情況下,每個(gè)參數(shù)遵循“參數(shù)名=參數(shù)值”這種配置格式,參數(shù)名一般是小寫(xiě)字母,參數(shù)名大小寫(xiě)敏感。常用的參數(shù)選項(xiàng)組有“[client]”、“[mysql]”以及“[mysqld]”參數(shù)選項(xiàng)組。2.1.5MySQL配置文件my.ini配置文件包含了多種參數(shù)選項(xiàng)組,每個(gè)參數(shù)選項(xiàng)組通過(guò)[client]參數(shù)選項(xiàng)組:配置了MySQL自帶的MySQL5.6命令行窗口可以讀取的參數(shù)信息。常用的參數(shù)是port(默認(rèn)值是3306)。修改該port值會(huì)導(dǎo)致新打開(kāi)的MySQL5.6命令行窗口無(wú)法連接MySQL服務(wù)器。2.1.5MySQL配置文件[client]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysql]參數(shù)選項(xiàng)組:配置了MySQL客戶(hù)機(jī)程序mysql.exe可以讀取的參數(shù)信息。常用的參數(shù)有“prompt”、“default-character-set=gbk”。修改“[mysql]”參數(shù)選項(xiàng)組中的參數(shù)值,將直接影響新打開(kāi)的MySQL客戶(hù)機(jī)。2.1.5MySQL配置文件[mysql]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:配置了MySQL服務(wù)程序mysqld.exe可以讀取的參數(shù)信息,mysqld.exe啟動(dòng)時(shí),將[mysqld]參數(shù)選項(xiàng)組的參數(shù)信息加載到服務(wù)器內(nèi)存,繼而生成MySQL服務(wù)實(shí)例。2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:常用的參數(shù)有“port”、“basedir”、“datadir”、“character-set-server”、“sql_mode”、“max_connections”以及“default_storage_engine”等。2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:修改“[mysqld]”參數(shù)選項(xiàng)組的參數(shù)值,只有重新啟動(dòng)MySQL服務(wù),將修改后的配置文件參數(shù)信息加載到服務(wù)器內(nèi)存后,新配置文件才會(huì)在新的MySQL服務(wù)實(shí)例中生效。如果“[mysqld]”參數(shù)選項(xiàng)組的參數(shù)信息出現(xiàn)錯(cuò)誤,將會(huì)導(dǎo)致MySQL服務(wù)無(wú)法啟動(dòng)。2.1.5MySQL配置文件[mysqld]參數(shù)選項(xiàng)組:2.1.5MySQL配置文件MySQL客戶(hù)機(jī)(本書(shū)使用前兩個(gè)):MySQL5.6命令行窗口

CMD命令提示符窗口

WEB瀏覽器(例如phpMyAdmin)第三方客戶(hù)機(jī)程序(例如MySQL-Front、MySQL

ManagerforMySQL等)2.1.6MySQL客戶(hù)機(jī)MySQL客戶(hù)機(jī)(本書(shū)使用前兩個(gè)):2.1.6MySQL客phpMyAdmin2.1.6MySQL客戶(hù)機(jī)phpMyAdmin2.1.6MySQL客戶(hù)機(jī)MySQL-Front2.1.6MySQL客戶(hù)機(jī)MySQL-Front2.1.6MySQL客戶(hù)機(jī)MySQL

ManagerforMySQL2.1.6MySQL客戶(hù)機(jī)MySQL

ManagerforMySQL2.1.6M2.1.6MySQL客戶(hù)機(jī)HeidiSQL2.1.6MySQL客戶(hù)機(jī)HeidiSQLMySQL客戶(hù)機(jī)連接MySQL服務(wù)器須提供:合法的登錄主機(jī):解決“from”的問(wèn)題。合法的賬戶(hù)名以及密碼:解決“who”的問(wèn)題。MySQL服務(wù)器主機(jī)名(或IP地址):解決“to”的問(wèn)題。端口號(hào):解決“多卡多待”的問(wèn)題。MySQL客戶(hù)機(jī)與MySQL服務(wù)器是同一臺(tái)主機(jī)時(shí),主機(jī)名可以使用localhost(或者127.0.0.1)。2.1.7連接MySQL服務(wù)器MySQL客戶(hù)機(jī)連接MySQL服務(wù)器須提供:2.1.7連接當(dāng)MySQL客戶(hù)機(jī)與MySQL服務(wù)器是同一臺(tái)主機(jī)時(shí),打開(kāi)命令提示符窗口,輸入mysql-h127.0.0.1-P3306-uroot–proot或者mysql-hlocalhost-P3306-uroot–proot然后回車(chē)(注意-p后面緊跟密碼root),即可實(shí)現(xiàn)本地MySQL客戶(hù)機(jī)與本地MySQL服務(wù)器之間的成功連接。2.1.7連接MySQL服務(wù)器當(dāng)MySQL客戶(hù)機(jī)與MySQL服務(wù)器是同一臺(tái)主機(jī)時(shí),打開(kāi)命令2.1.7連接MySQL服務(wù)器2.1.7連接MySQL服務(wù)器123MySQL由瑞典MySQLAB公司開(kāi)發(fā),默認(rèn)情況下MySQL使用的是latin1字符集。由此可能導(dǎo)致MySQL數(shù)據(jù)庫(kù)不夠支持中文字符串查詢(xún)或者發(fā)生中文字符串亂碼等問(wèn)題。

MySQL字符集與字符序字符集及字符序概念MySQL的字符集轉(zhuǎn)換過(guò)程45MySQL字符集的設(shè)置SQL腳本文件2.2字符集以及字符序設(shè)置123MySQL由瑞典MySQLAB公司開(kāi)發(fā),默認(rèn)112字符(Character)是人類(lèi)語(yǔ)言最小的表義符號(hào),例如‘A’、‘B’等。給定一系列字符,對(duì)每個(gè)字符賦予一個(gè)數(shù)值,用數(shù)值來(lái)代表對(duì)應(yīng)的字符,這個(gè)數(shù)值就是字符的編碼(CharacterEncoding)。給定一系列字符并賦予對(duì)應(yīng)的編碼后,所有這些“字符和編碼對(duì)”組成的集合就是字符集(CharacterSet)。

2.2.1字符集及字符序概念字符(Character)是人類(lèi)語(yǔ)言最小的表義符號(hào),2.2.1字符集及字符序概念2.2.1字符集及字符序概念字符序(Collation)是指在同一字符集內(nèi)字符之間的比較規(guī)則。一個(gè)字符集包含多種字符序,每個(gè)字符序唯一對(duì)應(yīng)一種字符集。MySQL字符序命名規(guī)則是:以字符序?qū)?yīng)的字符集名稱(chēng)開(kāi)頭,以國(guó)家名居中(或以general居中),以ci、cs或bin結(jié)尾。ci表示大小寫(xiě)不敏感,cs表示大小寫(xiě)敏感,bin表示按二進(jìn)制編碼值比較。2.2.1字符集及字符序概念字符序(Collation)是指在同一字符集內(nèi)字符之使用MySQL命令showcharacterset;即可查看當(dāng)前MySQL服務(wù)實(shí)例支持的字符集、字符集默認(rèn)的字符序以及字符集占用的最大字節(jié)長(zhǎng)度等信息latin1支持西歐字符、希臘字符等gbk支持中文簡(jiǎn)體字符big5支持中文繁體字符utf8幾乎支持世界所有國(guó)家的字符。2.2.2MySQL字符集及字符序使用MySQL命令showcharacterse使用MySQL命令showvariableslike'character%';即可查看當(dāng)前MySQL服務(wù)實(shí)例使用的字符集。2.2.2MySQL字符集及字符序使用MySQL命令2.2.2MySQL字符集及字符

character_set_client:MySQL客戶(hù)機(jī)字符集。character_set_connection:數(shù)據(jù)通信鏈路字符集,當(dāng)MySQL客戶(hù)機(jī)向服務(wù)器發(fā)送請(qǐng)求時(shí),請(qǐng)求數(shù)據(jù)以該字符集進(jìn)行編碼。character_set_database:數(shù)據(jù)庫(kù)字符集。character_set_filesystem:MySQL服務(wù)器文件系統(tǒng)字符集,該值是固定的binary。2.2.2MySQL字符集及字符序character_set_client:MySQL客戶(hù)character_set_results:結(jié)果集的字符集,MySQL服務(wù)器向MySQL客戶(hù)機(jī)返回執(zhí)行結(jié)果時(shí),執(zhí)行結(jié)果以該字符集進(jìn)行編碼。character_set_server:MySQL服務(wù)實(shí)例字符集。character_set_system:元數(shù)據(jù)(字段名、表名、數(shù)據(jù)庫(kù)名等)的字符集,默認(rèn)值為utf8。2.2.2MySQL字符集及字符序character_set_results:結(jié)果集的字符使用MySQL命令“showcollation;”即可查看當(dāng)前MySQL服務(wù)實(shí)例支持的字符序。2.2.2MySQL字符集及字符序使用MySQL命令“showcollation;”2.2.3MySQL字符集的轉(zhuǎn)換過(guò)程2.2.3MySQL字符集的轉(zhuǎn)換過(guò)程方法1:修改my.ini配置文件,可修改MySQL默認(rèn)的字符集。方法2:MySQL提供下列MySQL命令可以“臨時(shí)地”修改MySQL“當(dāng)前會(huì)話(huà)的”字符集以及字符序。2.2.4MySQL字符集的設(shè)置方法1:修改my.ini配置文件,可修改MySQL默認(rèn)的setcharacter_set_client=gbk;setcharacter_set_connection=gbk;setcharacter_set_database=gbk;setcharacter_set_results=gbk;setcharacter_set_server=gbk;setcollation_connection=gbk_chinese_ci;setcollation_database=gbk_chinese_ci;setcollation_server=gbk_chinese_ci;2.2.4MySQL字符集的設(shè)置setcharacter_set_client=g方法3:使用MySQL命令“setnamesgbk;”可以“臨時(shí)一次性地”設(shè)置character_set_client、character_set_connection以及character_set_results的字符集為gbk方法4:連接MySQL服務(wù)器時(shí)指定字符集mysql--default-character-set=字符集

-h服務(wù)器IP地址-u賬戶(hù)名–p密碼2.2.4MySQL字符集的設(shè)置方法3:使用MySQL命令“setnamesgbkSQL基本的執(zhí)行方法(兩種):

\.C:\mysql\init.sqlsourceC:\mysql\init.sql2.2.5SQL腳本文件SQL基本的執(zhí)行方法(兩種):2.2.5SQL腳本文件123

數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象的容器。MySQL數(shù)據(jù)庫(kù)的管理主要包括數(shù)據(jù)庫(kù)的創(chuàng)建、選擇當(dāng)前操作的數(shù)據(jù)庫(kù)、顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)以及刪除數(shù)據(jù)庫(kù)等操作

。查看數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)庫(kù)顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)45選擇當(dāng)前操作的數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)2.3MySQL數(shù)據(jù)庫(kù)管理123數(shù)據(jù)庫(kù)是存儲(chǔ)數(shù)據(jù)庫(kù)對(duì)象的容器。MySQL數(shù)據(jù)庫(kù)

createdatabasechoose;成功創(chuàng)建choose數(shù)據(jù)庫(kù)后,數(shù)據(jù)庫(kù)根目錄下會(huì)自動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)目錄。2.3.1創(chuàng)建數(shù)據(jù)庫(kù)createdatabasechoose;2.3

使用MySQL命令showdatabases;即可查看MySQL服務(wù)實(shí)例上所有的數(shù)據(jù)庫(kù)

2.3.2查看數(shù)據(jù)庫(kù)使用MySQL命令2.3.2查看數(shù)據(jù)庫(kù)

使用MySQL命令showcreatedatabasechoose;可以查看choose數(shù)據(jù)庫(kù)的相關(guān)信息(例如MySQL版本ID號(hào)、默認(rèn)字符集等信息)。2.3.3顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)使用MySQL命令2.3.3顯示數(shù)據(jù)庫(kù)結(jié)構(gòu)

執(zhí)行“usechoose;”命令后,后續(xù)的MySQL命令以及SQL語(yǔ)句將自動(dòng)操作choose數(shù)據(jù)庫(kù)中所有數(shù)據(jù)庫(kù)對(duì)象。2.3.4選擇當(dāng)前操作的數(shù)據(jù)庫(kù)執(zhí)行“usechoose;”命令后,后續(xù)的刪除student數(shù)據(jù)庫(kù),使用SQL語(yǔ)句dropdatabasestudent;2.3.5刪除數(shù)據(jù)庫(kù)刪除student數(shù)據(jù)庫(kù),使用SQL語(yǔ)句2.3.5刪除數(shù)據(jù)123表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象

設(shè)置默認(rèn)的存儲(chǔ)引擎MyISAM和InnoDB存儲(chǔ)引擎創(chuàng)建數(shù)據(jù)庫(kù)表45顯示表結(jié)構(gòu)表記錄的管理2.4MySQL表管理123表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象設(shè)置默認(rèn)的存儲(chǔ)引擎M13267表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象

刪除表InnoDB表空間2.4MySQL表管理67表是數(shù)據(jù)庫(kù)中最為重要的數(shù)據(jù)庫(kù)對(duì)象刪除表InnoDB表空133MySQL提供了插件式(Pluggable)的存儲(chǔ)引擎,存儲(chǔ)引擎是基于表的,同一個(gè)數(shù)據(jù)庫(kù),不同的表,存儲(chǔ)引擎可以不同。甚至同一個(gè)數(shù)據(jù)庫(kù)表,在不同的場(chǎng)合可以應(yīng)用不同的存儲(chǔ)引擎。

2.4.1MyISAM和InnoDB存儲(chǔ)引擎MySQL提供了插件式(Pluggable)的存儲(chǔ)引使用MySQL命令“showengines;”,即可查看MySQL服務(wù)實(shí)例支持的存儲(chǔ)引擎。2.4.1MyISAM和InnoDB存儲(chǔ)引擎使用MySQL命令“showengines1.InnoDB存儲(chǔ)引擎的特點(diǎn)支持外鍵(ForeignKey)支持事務(wù)(Transaction):如果某張表主要提供OLTP支持,需要執(zhí)行大量的增、刪、改操作(insert、delete、update語(yǔ)句),出于事務(wù)安全方面的考慮,InnoDB存儲(chǔ)引擎是更好的選擇。最新版本的MySQL已經(jīng)開(kāi)始支持全文檢索。2.4.1MyISAM和InnoDB存儲(chǔ)引擎1.InnoDB存儲(chǔ)引擎的特點(diǎn)2.4.1MyISAM和In2.MyISAM存儲(chǔ)引擎的特點(diǎn)MyISAM具有檢查和修復(fù)表的大多數(shù)工具。MyISAM表可以被壓縮

MyISAM表最早支持全文索引

但MyISAM表不支持事務(wù)

但MyISAM表不支持外鍵(ForeignKey)。如果需要執(zhí)行大量的select語(yǔ)句,出于性能方面的考慮,MyISAM存儲(chǔ)引擎是更好的選擇。2.4.1MyISAM和InnoDB存儲(chǔ)引擎2.MyISAM存儲(chǔ)引擎的特點(diǎn)2.4.1MyISAM和InMySQL5.6默認(rèn)的默認(rèn)的存儲(chǔ)引擎是InnoDB。使用MySQL命令setdefault_storage_engine=MyISAM;可以“臨時(shí)地”將MySQL“當(dāng)前會(huì)話(huà)的”存儲(chǔ)引擎設(shè)置為MyISAM,使用MySQL命令“showengines;”可以查看當(dāng)前MySQL服務(wù)實(shí)例默認(rèn)的存儲(chǔ)引擎。2.4.2設(shè)置默認(rèn)的存儲(chǔ)引擎MySQL5.6默認(rèn)的默認(rèn)的存儲(chǔ)引擎是InnoDB。使用SQL語(yǔ)句“createtable表名”即可創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表。例如:

usechoose;setdefault_storage_engine=InnoDB;createtablemy_table(todaydatetime,namechar(20));2.4.3創(chuàng)建數(shù)據(jù)庫(kù)表使用SQL語(yǔ)句“createtable表名”即可創(chuàng)成功創(chuàng)建InnoDB存儲(chǔ)引擎的my_table表后,MySQL服務(wù)實(shí)例會(huì)在數(shù)據(jù)庫(kù)目錄choose中自動(dòng)創(chuàng)建一個(gè)名字為表名、后綴名為frm的文件。my_table.frm。2.4.3創(chuàng)建數(shù)據(jù)庫(kù)表成功創(chuàng)建InnoDB存儲(chǔ)引擎的my_table表后,將my_table表的存儲(chǔ)引擎修改為MyISAM。usechoose;altertablemy_tableengine=MyISAM;2.4.3創(chuàng)建數(shù)據(jù)庫(kù)表將my_table表的存儲(chǔ)引擎修改為MyISAM。2.4.3使用MySQL命令“destable_name;”即可查看表名為table_name的表結(jié)構(gòu)。2.4.4顯示表結(jié)構(gòu)使用MySQL命令“destable_name;”使用MySQL命令“showcreatetabletable_name;”,查看名為table_name表的詳細(xì)信息。2.4.4顯示表結(jié)構(gòu)使用MySQL命令“showcreatetablusechoose;insertintomy_tablevalues(now(),'a');insertintomy_tablevalues(now(),'a');insertintomy_tablevalues(now(),NULL);insertintomy_tablevalues(now(),'');select*frommy_table;

2.4.5表記錄的管理usechoose;2.4.5表記錄的管理任務(wù)布置1:完成本書(shū)場(chǎng)景描述1:MyISAM表記錄的管理的任務(wù)要求。任務(wù)布置2:完成本書(shū)場(chǎng)景描述2:InnoDB表記錄的管理的任務(wù)要求。2.4.5表記錄的管理任務(wù)布置1:完成本書(shū)場(chǎng)景描述1:MyISAM表記錄的管理的

1.共享表空間:MySQL服務(wù)實(shí)例承載的所有數(shù)據(jù)庫(kù)的所有InnoDB表的數(shù)據(jù)信息、索引信息、各種元數(shù)據(jù)信息以及事務(wù)的回滾(UNDO)信息,全部存放在共享表空間文件中。默認(rèn)情況下該文件位于數(shù)據(jù)庫(kù)根目錄下,文件名是ibdata1,且文件的初始大小為10M??梢允褂肕ySQL命令“showvariableslike‘innodb_data_file_path’;”查看該文件的的屬性。

2.4.6InnoDB表空間1.共享表空間:MySQL服務(wù)實(shí)例承載的所有數(shù)據(jù)庫(kù)的2.4.6InnoDB表空間2.4.6InnoDB表空間

2.獨(dú)享表空間:如果將全局系統(tǒng)變量innodb_file_per_table的值設(shè)置為ON(innodb_file_per_table的默認(rèn)值為OFF),那么之后再創(chuàng)建InnoDB存儲(chǔ)引擎的新表,這些表的數(shù)據(jù)信息、索引信息都將保存到獨(dú)享表空間文件。2.4.6InnoDB表空間2.獨(dú)享表空間:如果將全局系統(tǒng)變量innodb_fi獨(dú)享表空間的設(shè)置2.4.6InnoDB表空間獨(dú)享表空間的設(shè)置2.4.6InnoDB表空間usechoose;altertablemy_tableengine=InnoDB;createtablesecond_table(todaydatetime,namechar(20));2.4.6InnoDB表空間usechoose;2.4.6InnoDB表空間2.4.6InnoDB表空間2.4.6InnoDB表空間任務(wù)布置3:完成本書(shū)場(chǎng)景描述3的任務(wù)要求。2.4.6InnoDB表空間任務(wù)布置3:完成本書(shū)場(chǎng)景描述3的任務(wù)要求。2.4.6Inn使用SQL語(yǔ)句droptabletable_name;即可刪除名為table_name的表。刪除表后,MySQL服務(wù)實(shí)例會(huì)自動(dòng)刪除該表結(jié)構(gòu)定義文件(例如second_table.frm文件),以及數(shù)據(jù)、索引信息。該命令慎用!

2.4.7刪除表使用SQL語(yǔ)句2.4.7刪除表123MySQL數(shù)據(jù)庫(kù)中,變量分為系統(tǒng)變量(以@@開(kāi)頭)以及用戶(hù)自定義變量(以@開(kāi)頭)。查看系統(tǒng)變量的值全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量設(shè)置系統(tǒng)變量的值2.5系統(tǒng)變量123MySQL數(shù)據(jù)庫(kù)中,變量分為系統(tǒng)變量(以@@開(kāi)頭)以及154每一個(gè)MySQL客戶(hù)機(jī)成功連接MySQL服務(wù)器后,都會(huì)產(chǎn)生與之對(duì)應(yīng)的會(huì)話(huà)。會(huì)話(huà)期間,MySQL服務(wù)實(shí)例會(huì)在MySQL服務(wù)器內(nèi)存中生成與該會(huì)話(huà)對(duì)應(yīng)的會(huì)話(huà)系統(tǒng)變量,這些會(huì)話(huà)系統(tǒng)變量的初始值是全局系統(tǒng)變量值的拷貝。

2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量每一個(gè)MySQL客戶(hù)機(jī)成功連接MySQL服務(wù)器后,都由于各會(huì)話(huà)在會(huì)話(huà)期間所做的操作不盡相同,為了標(biāo)記各個(gè)會(huì)話(huà),會(huì)話(huà)系統(tǒng)變量又新增了12個(gè)變量。2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量由于各會(huì)話(huà)在會(huì)話(huà)期間所做的操作不盡相同,為了標(biāo)記各個(gè)2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量2.5.1全局系統(tǒng)變量與會(huì)話(huà)系統(tǒng)變量

使用“showglobalvariables;”命令即可查看MySQL服務(wù)器內(nèi)存中所有的全局系統(tǒng)變量信息(有393項(xiàng)之多)。使用“showsessionvariables;”命令即可查看與當(dāng)前會(huì)話(huà)相關(guān)的所有會(huì)話(huà)系統(tǒng)變量以及所有的全局系統(tǒng)變量(有405項(xiàng)之多),此處session關(guān)鍵字可以省略。

2.5.2查看系統(tǒng)變量的值使用“show

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論