《MySQL數(shù)據(jù)庫應(yīng)用案例教程》全套教學(xué)課件_第1頁
《MySQL數(shù)據(jù)庫應(yīng)用案例教程》全套教學(xué)課件_第2頁
《MySQL數(shù)據(jù)庫應(yīng)用案例教程》全套教學(xué)課件_第3頁
《MySQL數(shù)據(jù)庫應(yīng)用案例教程》全套教學(xué)課件_第4頁
《MySQL數(shù)據(jù)庫應(yīng)用案例教程》全套教學(xué)課件_第5頁
已閱讀5頁,還剩606頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1數(shù)據(jù)庫概述第章全套可編輯PPT課件第1章數(shù)據(jù)庫概述.pptx第2章MySQL的安裝與配置.pptx第3章數(shù)據(jù)庫基本操作.pptx第4章存儲(chǔ)引擎、數(shù)據(jù)類型和字符集.pptx第5章數(shù)據(jù)表基本操作.pptx第6章數(shù)據(jù)的插入、修改和刪除操作.pptx第7章單表數(shù)據(jù)記錄查詢.pptx第8章多表數(shù)據(jù)記錄查詢.pptx第9章運(yùn)算符.pptx第10章MySQL常用函數(shù).pptx第11章索引.pptx第12章視圖.pptx第13章存儲(chǔ)過程和函數(shù).pptx第14章觸發(fā)器.pptx第15章MySQL日志管理.pptx第16章數(shù)據(jù)的備份與恢復(fù).pptx第17章MySQL的權(quán)限與安全.pptx1.1數(shù)據(jù)庫1631.1數(shù)據(jù)庫1.1.1數(shù)據(jù)庫的概念和作用數(shù)據(jù)庫(Database)是指長期存儲(chǔ)在計(jì)算機(jī)內(nèi),有組織的、可共享的數(shù)據(jù)集合。它可視為一個(gè)電子化的文件柜,用來存儲(chǔ)電子文件,用戶可以對文件中的數(shù)據(jù)進(jìn)行查詢、新增、更新、刪除等操作。表1-1學(xué)生信息表學(xué)生姓名學(xué)生性別學(xué)生年齡所屬班級小美女22大二3班小明男23大四2班小偉男20大一3班1.1數(shù)據(jù)庫1.1.2數(shù)據(jù)庫的特點(diǎn)實(shí)現(xiàn)了數(shù)據(jù)獨(dú)立性1實(shí)現(xiàn)了數(shù)據(jù)共享2減少了數(shù)據(jù)冗余度3實(shí)現(xiàn)了數(shù)據(jù)的集中控制4維護(hù)了數(shù)據(jù)完整性5提高了數(shù)據(jù)的可恢復(fù)性6數(shù)據(jù)獨(dú)立性包括物理獨(dú)立性和邏輯獨(dú)立性。數(shù)據(jù)冗余是指數(shù)據(jù)在存儲(chǔ)器中不必要的重復(fù)存儲(chǔ)。數(shù)據(jù)完整性是指數(shù)據(jù)的一致性、正確性、有效性和相容性。1.1數(shù)據(jù)庫1.1.3數(shù)據(jù)模型數(shù)據(jù)模型的概念1數(shù)據(jù)模型的類型2數(shù)據(jù)模型(DataModel)是對現(xiàn)實(shí)世界數(shù)據(jù)的模擬和抽象,是數(shù)據(jù)庫系統(tǒng)中用于提供信息表示和操作手段的形式構(gòu)架。其主要作用是確定系統(tǒng)中數(shù)據(jù)的定義和格式,使人更容易理解,便于在數(shù)據(jù)庫系統(tǒng)上實(shí)現(xiàn)。概念數(shù)據(jù)模型(ConceptualDataModel):主要用來描述現(xiàn)實(shí)世界數(shù)據(jù)的概念化結(jié)構(gòu)。邏輯數(shù)據(jù)模型(LogixalDataModel):是用戶在數(shù)據(jù)庫中所看到的數(shù)據(jù)模型,反映的是系統(tǒng)設(shè)計(jì)人員對數(shù)據(jù)存儲(chǔ)的觀點(diǎn),是對概念數(shù)據(jù)模型的進(jìn)一步分解和細(xì)化,主要包括層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型和關(guān)系數(shù)據(jù)模型三種類型。物理數(shù)據(jù)模型(PhysicalDataModel):這是描述數(shù)據(jù)在存儲(chǔ)介質(zhì)上的組織結(jié)構(gòu)的數(shù)據(jù)模型。1.1數(shù)據(jù)庫1.1.3數(shù)據(jù)模型數(shù)據(jù)模型的三要素3①數(shù)據(jù)結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)模型的基礎(chǔ),用于描述數(shù)據(jù)庫對象的靜態(tài)特征,包括數(shù)據(jù)的類型、內(nèi)容、性質(zhì)及數(shù)據(jù)之間的聯(lián)系等。②數(shù)據(jù)操作。用于描述數(shù)據(jù)庫對象的動(dòng)態(tài)特征,包括在相應(yīng)數(shù)據(jù)結(jié)構(gòu)上的操作類型和操作方式,主要指查詢、插入、刪除和修改等操作。③數(shù)據(jù)完整性約束。數(shù)據(jù)完整性約束是一組完整性規(guī)則的集合,主要描述數(shù)據(jù)結(jié)構(gòu)內(nèi)數(shù)據(jù)間的語法、詞義聯(lián)系、數(shù)據(jù)之間的制約和依存關(guān)系,并且規(guī)定了數(shù)據(jù)庫狀態(tài)及狀態(tài)變化所應(yīng)滿足的條件,以保證數(shù)據(jù)的正確性、有效性和相容性。1.1數(shù)據(jù)庫1.1.4數(shù)據(jù)庫類型層次模型數(shù)據(jù)庫1目前成熟地應(yīng)用在數(shù)據(jù)庫系統(tǒng)中的數(shù)據(jù)模型有:層次模型、網(wǎng)狀模型和關(guān)系模型。它們之間的根本區(qū)別在于數(shù)據(jù)之間聯(lián)系的表示方式不同,層次模型以“樹結(jié)構(gòu)”表示數(shù)據(jù)之間的聯(lián)系,網(wǎng)狀模型以“網(wǎng)結(jié)構(gòu)”表示數(shù)據(jù)之間的聯(lián)系,關(guān)系模型以“二維表”表示數(shù)據(jù)之間的聯(lián)系。

層次模型是數(shù)據(jù)庫系統(tǒng)最早使用的一種模型,它的數(shù)據(jù)結(jié)構(gòu)就像是一棵“有向樹”。根結(jié)點(diǎn)在最上端,層次最高,子結(jié)點(diǎn)在下,逐層排列,如圖1-1所示。圖1-1層次模型圖1.1數(shù)據(jù)庫1.1.4數(shù)據(jù)庫類型網(wǎng)狀模型數(shù)據(jù)庫2

網(wǎng)狀模型以網(wǎng)狀結(jié)構(gòu)表示實(shí)體與實(shí)體之間的多種復(fù)雜聯(lián)系,能夠更為直接地描述現(xiàn)實(shí)客觀世界。網(wǎng)中的每一個(gè)結(jié)點(diǎn)代表一個(gè)記錄類型,結(jié)點(diǎn)之間的聯(lián)系用鏈接指針來實(shí)現(xiàn),如圖1-2所示。圖1-2網(wǎng)狀模型圖1.1數(shù)據(jù)庫1.1.4數(shù)據(jù)庫類型關(guān)系模型數(shù)據(jù)庫3關(guān)系模型數(shù)據(jù)庫的層次結(jié)構(gòu)可以分為以下四級:數(shù)據(jù)庫(Database)表(Table)記錄(Record)字段(Field)1.1數(shù)據(jù)庫1.1.4數(shù)據(jù)庫類型關(guān)系模型數(shù)據(jù)庫3圖1-3所示為一個(gè)簡單的關(guān)系模型。圖1-3關(guān)系模型圖講授教師課程教師編號上課教室教師編號課程名稱課程編號教師姓名教師性別所屬系別1.1數(shù)據(jù)庫1.1.4數(shù)據(jù)庫類型關(guān)系模型數(shù)據(jù)庫3將圖轉(zhuǎn)換成兩張表,兩張表之間通過教師編號進(jìn)行關(guān)聯(lián),如表1-2和表1-3所示。教師編號姓

名性

別所屬系101劉老師男數(shù)學(xué)系102王老師女文學(xué)系103趙老師男物理系課程編號課程名教師編號上課教室201高等代數(shù)101sx-01202文學(xué)史102wx-03203電磁學(xué)103wl-02表1-2教師表表1-3課程表1.2數(shù)據(jù)庫系統(tǒng)1.2數(shù)據(jù)庫系統(tǒng)1.2.1數(shù)據(jù)庫系統(tǒng)的構(gòu)成數(shù)據(jù)庫系統(tǒng)通常由硬件、軟件、數(shù)據(jù)庫以及用戶構(gòu)成,如圖1-4所示。圖1-4數(shù)據(jù)庫系統(tǒng)的構(gòu)成1.2數(shù)據(jù)庫系統(tǒng)1.2.2數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem,簡稱DBMS)是一種操作和管理數(shù)據(jù)庫的大型軟件,使用它可以創(chuàng)建、使用和維護(hù)數(shù)據(jù)庫。DBMS建立在操作系統(tǒng)之上,對數(shù)據(jù)庫進(jìn)行統(tǒng)一的管理和控制,以保證數(shù)據(jù)庫的安全性和完整性。對數(shù)據(jù)定義;對數(shù)據(jù)進(jìn)行增加、刪除、更新、查詢等操作;對數(shù)據(jù)進(jìn)行組織、存儲(chǔ)與管理;維護(hù)數(shù)據(jù)庫,保證數(shù)據(jù)庫的正常運(yùn)行;保護(hù)數(shù)據(jù)庫中數(shù)據(jù)的安全,數(shù)據(jù)遭到破壞后能夠恢復(fù);負(fù)責(zé)處理數(shù)據(jù)的傳送。1.2數(shù)據(jù)庫系統(tǒng)1.2.3常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)常見的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)有MySQL數(shù)據(jù)庫管理系統(tǒng)、Oracle數(shù)據(jù)庫管理系統(tǒng)、DB2數(shù)據(jù)庫管理系統(tǒng)、SQLServer數(shù)據(jù)庫管理系統(tǒng)等。Oracle1DB22SQLServer3Oracle即OracleRDBMS,是甲骨文公司的一款關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。SQLServer是Microsoft公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是真正的客戶機(jī)/服務(wù)器體系結(jié)構(gòu)DB2是IBM公司出品的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),具有較好的可伸縮性,可支持從大型機(jī)到單用戶環(huán)境,并且支持所有常見的服務(wù)器操作系統(tǒng)平臺(tái)。1.3MySQL數(shù)據(jù)庫管理系統(tǒng)1.3MySQL數(shù)據(jù)庫管理系統(tǒng)MySQL是目前非常流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),關(guān)系型數(shù)據(jù)庫管理系統(tǒng)就是管理關(guān)系型數(shù)據(jù)庫,并將數(shù)據(jù)組織為相關(guān)的行和列的系統(tǒng)。MySQL由瑞典MySQLAB公司開發(fā),目前屬于Oracle公司。MySQL在過去由于性能高、成本低、可靠性好,被廣泛地應(yīng)用在互聯(lián)網(wǎng)上的中小型網(wǎng)站中。不過,隨著MySQL的不斷發(fā)展和完善,它也逐漸用于大型網(wǎng)站和應(yīng)用,例如Baidu,Sina,Tencent,Alibaba,Google,F(xiàn)acebook,Twitter等大型互聯(lián)網(wǎng)公司都用到了MySQL。1.3MySQL數(shù)據(jù)庫管理系統(tǒng)1996年,MySQL1.0誕生。1996年10月份,MySQL3.11.1發(fā)布。1999年,Monty作為創(chuàng)始人之一,成立了MySQLAB公司,并與Sleepycat公司合作,發(fā)布了MySQL3.23版本。2003年3月,MySQL4.0正式發(fā)布。2005年10月,代表MySQL里程碑的版本——MySQL5.0正式問世。2008年1月16日,Sun公司收購MySQL。2009年4月20日,Oracle收購Sun公司。2010年4月,MySQL5.5版本正式對外發(fā)布。2013年2月,MySQL5.6GA版本發(fā)布。2015年10月,MySQL5.7GA版本發(fā)布。1.3.1MySQL的產(chǎn)生與發(fā)展1.3MySQL數(shù)據(jù)庫管理系統(tǒng)MySQL由于其性能優(yōu)秀,已經(jīng)成為最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。1.3.2MySQL的優(yōu)勢運(yùn)行速度快,具有高效的查詢速度;對于大多數(shù)個(gè)人免費(fèi);支持Linux、MacOS、Windows等多種操作系統(tǒng);為C,C++,Python,Java,Perl,PHP,Ruby和.NET等多種編程語言提供了API;支持多線程,充分利用了CPU資源;既能作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端/服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能作為一個(gè)庫嵌入到其他軟件中;支持多種存儲(chǔ)引擎;可復(fù)制全局事務(wù)標(biāo)識,支持自我修復(fù)式集群。1.3MySQL數(shù)據(jù)庫管理系統(tǒng)1.3.3如何學(xué)習(xí)MySQL鞏固基礎(chǔ)1多動(dòng)手操作2多查看資料3對于學(xué)習(xí)MySQL來說,SQL語言是最為基礎(chǔ)的部分,大部分操作都是通過SQL語句來執(zhí)行的,因此熟練使用SQL語句對深入學(xué)習(xí)MySQL有很大的幫助。同一個(gè)功能,往往可以使用不同的SQL語句來實(shí)現(xiàn),只有多動(dòng)手操作,才能檢驗(yàn)自己的想法是否正確,哪種實(shí)現(xiàn)方法最合理。不斷學(xué)習(xí)31.4結(jié)構(gòu)化查詢語言SQL1.4結(jié)構(gòu)化查詢語言SQL1.4.1SQL簡介結(jié)構(gòu)化查詢語言(StructuredQueryLanguage,簡稱SQL)是目前被廣泛使用的關(guān)系型數(shù)據(jù)庫標(biāo)準(zhǔn)語言,用于插入、更新、刪除和查詢數(shù)據(jù),以及管理關(guān)系型數(shù)據(jù)庫系統(tǒng)。SQL語句主要可分為以下4類:數(shù)據(jù)定義語句(DDL)1數(shù)據(jù)操作語句(DML)2數(shù)據(jù)控制語句(DCL)3數(shù)據(jù)定義語句是負(fù)責(zé)定義數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)庫對象的指令集,常用語句關(guān)鍵字包括CREATE、ALTER與DROP。數(shù)據(jù)操作語句是負(fù)責(zé)訪問數(shù)據(jù)庫對象中數(shù)據(jù)的指令集,用戶通過它可以實(shí)現(xiàn)對數(shù)據(jù)庫的基本操作,常用關(guān)鍵字包括INSERT,UPDATE,DELETE和SELECT。事務(wù)處理語句3數(shù)據(jù)控制語句是對數(shù)據(jù)訪問權(quán)進(jìn)行控制的指令集,它可以管理用戶對數(shù)據(jù)表、預(yù)存程序、用戶自定義函數(shù)等數(shù)據(jù)庫對象的使用權(quán)限。常用關(guān)鍵字包括GRANT和REVOKE。1.4結(jié)構(gòu)化查詢語言SQL1.4.2SQL的簡單應(yīng)用下面將通過使用SQL語句創(chuàng)建表,并在表中添加和查詢數(shù)據(jù),來初步認(rèn)識SQL語句的應(yīng)用?!纠?-1】使用SQL語句創(chuàng)建一張表,并在其中插入一條記錄。首先設(shè)計(jì)一張名為students的表格,表中有一條學(xué)生信息,如表1-4所示。表1-4students表編

號姓

名年

齡性

別1小明22男1.4結(jié)構(gòu)化查詢語言SQL1.4.2SQL的簡單應(yīng)用CREATETABLEstudents(idINT(11)UNSIGNED,nameVARCHAR(32),ageINT(4)UNSIGNED,sexVARCHAR(16));根據(jù)表1-4可以編寫一條SQL語句,該語句使用CREATE關(guān)鍵字聲明創(chuàng)建一張名為students的表:

提示MySQL中的SQL語句是不區(qū)分大小寫的,就是說CREATE和create作用相同,但是很多開發(fā)人員習(xí)慣將關(guān)鍵字大寫,將數(shù)據(jù)列和表名小寫。讀者也應(yīng)該養(yǎng)成一個(gè)良好的編程習(xí)慣,這樣寫出來的代碼更容易閱讀和維護(hù)。1.4結(jié)構(gòu)化查詢語言SQL1.4.2SQL的簡單應(yīng)用INSERTINTOstudents(id,name,age,sex)VALUES(1,"小明",22,"男");現(xiàn)在這張表里沒有任何數(shù)據(jù),下面使用INSERT關(guān)鍵字在表中添加一條數(shù)據(jù):SELECT*FROMstudents;添加完成后,可以使用SELECT關(guān)鍵字查詢這張表中的信息:+-------+--------+--------+-------+|id

|name|age|sex

|+-------+--------+--------+-------+|1|小明

|22|男

|+-------+--------+--------+-------+查詢出來的結(jié)果如下:感謝觀看2MySQL的安裝與配置第章2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.1下載MySQL在Windows操作系統(tǒng)下,MySQL官方提供了兩種安裝版本,分別是二進(jìn)制分發(fā)版(.msi文件)和免安裝版(.zip壓縮文件)。在安裝與配置MySQL之前,需要登錄官網(wǎng)下載安裝文件,具體步驟如下:步驟1

打開瀏覽器,在其地址欄中輸入網(wǎng)址“https:///downloads/mysql”,按回車鍵進(jìn)入下載頁面,然后根據(jù)操作系統(tǒng)選擇安裝文件,此處選擇“Windows(x86,64-bit),ZIPArchive”版本,單擊右側(cè)的“Download”按鈕,如圖2-1所示。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.1下載MySQL步驟2

跳轉(zhuǎn)到另一個(gè)頁面后,頁面會(huì)提示用戶選擇登錄或者注冊,不用管它,直接單擊下方的文字鏈接“Nothanks,juststartmydownload.”,即可開始下載,如圖2-2所示。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL步驟1MySQL下載完成后,即可進(jìn)行安裝,具體步驟如下:將下載的壓縮文件“mysql-5.7.18-winx64.zip”解壓到本地磁盤,此處為F盤根目錄。步驟2配置文件是MySQL的核心文件,文件內(nèi)容是MySQL的各項(xiàng)參數(shù)配置文件名一般為“my.ini”。由于MySQL5.7.18版本目錄結(jié)構(gòu)與以前的版本不同,沒有“my.ini”文件或者“my-default.ini”文件,所以需要在目錄中新建一個(gè)文件,命名為“my.ini”,如右圖所示。建立“my.ini”文件

提示W(wǎng)indows10默認(rèn)不顯示文件擴(kuò)展名,可單擊窗口菜單“查看”,然后勾選“文件擴(kuò)展名”復(fù)選框,來顯示文件擴(kuò)展名2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL步驟3使用記事本打開文件“my.ini”,在其中添加以下配置內(nèi)容并保存。[mysqld]

#Removeleading#andsettotheamountofRAMforthemostimportantdata#cacheinMySQL.Startat70%oftotalRAMfordedicatedserver,else10%.#innodb_buffer_pool_size=128M

#Removeleading#toturnonaveryimportantdataintegrityoption:logging#changestothebinarylogbetweenbackups.#log_bin

2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL#Thesearecommonlyset,removethe#andsetasrequired.#設(shè)置MYSQL的安裝目錄basedir=F:\mysql-5.7.18-winx64#設(shè)置MYSQL的數(shù)據(jù)目錄datadir=F:\mysql-5.7.18-winx64\data#設(shè)置端口port=3306#server_id=.....

#Removeleading#tosetoptionsmainlyusefulforreportingservers.#TheserverdefaultsarefasterfortransactionsandfastSELECTs.#Adjustsizesasneeded,experimenttofindtheoptimalvalues.#join_buffer_size=128M#sort_buffer_size=2M#read_rnd_buffer_size=2M#設(shè)置SQL模式sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

提示用戶可以把MySQL安裝在系統(tǒng)盤,也可以安裝在其他盤,但實(shí)際應(yīng)用中,數(shù)據(jù)目錄一般不會(huì)設(shè)在系統(tǒng)盤,因?yàn)殡S著系統(tǒng)運(yùn)行時(shí)間的推移,數(shù)據(jù)量會(huì)越來越大。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL打開命令行窗口步驟4右擊桌面左下角的“開始”按鈕,執(zhí)行“命令提示符(管理員)”命令,打開命令行窗口,如左圖所示。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL步驟5在窗口中輸入“F:”命令并按回車鍵確認(rèn),跳轉(zhuǎn)到F盤根目錄,然后輸入“cdmysql-5.7.18-winx64\bin”并按回車鍵確認(rèn),跳轉(zhuǎn)到“F:\mysql-5.7.18-winx64\bin”目錄,如右圖所示。進(jìn)入bin目錄2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL步驟6在命令行窗口中輸入以下命令,然后按回車鍵確認(rèn),此時(shí)MySQL會(huì)進(jìn)行初始化,自動(dòng)創(chuàng)建“data”文件夾,如下圖所示。初始化MySQL

知識庫MySQL中的日志文件和數(shù)據(jù)庫存放在“data”文件夾中。由于MySQL5.7版本的根目錄缺少“data”文件夾,所以需要進(jìn)行初始化。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL步驟7在命令窗口中輸入以下命令,然后按回車鍵確認(rèn),即可安裝MySQL服務(wù)并指定配置文件位置,此時(shí)系統(tǒng)會(huì)提示服務(wù)安裝成功,如下圖所示。mysqld--installMySQL--defaults-file="F:\mysql-5.7.18-winx64\my.ini"安裝MySQL

提示如果MySQL沒有安裝在系統(tǒng)盤的默認(rèn)位置,那么安裝命令中MySQL配置文件的路徑應(yīng)該為絕對路徑。例如,此處是將MySQL安裝在F:\mysql-5.7.18-winx64目錄下,那么路徑值就應(yīng)該為F:\mysql-5.7.18-winx64\my.ini。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL步驟8右擊“此電腦”圖標(biāo),在彈出的快捷菜單中選擇“屬性”,打開“系統(tǒng)”窗口,然后單擊窗口左側(cè)列表中的“高級系統(tǒng)設(shè)置”項(xiàng),如左圖所示。打開高級系統(tǒng)設(shè)置2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL

步驟9打開“系統(tǒng)屬性”對話框,單擊對話框下方的“環(huán)境變量”按鈕,打開“環(huán)境變量”對話框,在下方的“系統(tǒng)變量”列表框中選擇“Path”,并單擊“編輯”按鈕,打開“編輯環(huán)境變量”對話框,單擊“新建”按鈕,然后在輸入框中輸入路徑“F:\mysql-5.7.18-winx64\bin\”,之后連續(xù)單擊“確定”按鈕完成設(shè)置,如右圖所示。添加環(huán)境變量2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL

知識庫環(huán)境變量是操作系統(tǒng)中一個(gè)具有特定名字的對象,它包含應(yīng)用程序運(yùn)行時(shí)所用到的信息。例如,當(dāng)系統(tǒng)運(yùn)行某個(gè)程序但不知道程序所在的完整路徑時(shí),系統(tǒng)除了會(huì)在當(dāng)前目錄下尋找此程序外,還會(huì)到Path中指定的路徑去尋找。

此處為MySQL配置了環(huán)境變量,這樣就可以在進(jìn)入命令行窗口后直接輸入MySQL命令;否則就需要先跳轉(zhuǎn)到MySQL安裝目錄中的bin目錄下再輸入MySQL命令。2.1在Windows操作系統(tǒng)下安裝與配置MySQL2.1.2安裝與配置MySQL2.2MySQL服務(wù)的基本操作步驟1

右擊桌面左下角的“開始”按鈕,執(zhí)行“運(yùn)行”命令,在輸入框中輸入“services.msc”,并單擊“確定”按鈕,如左圖所示。在Windows系統(tǒng)下,啟動(dòng)MySQL服務(wù)有兩種方法,一種是在服務(wù)管理器中啟動(dòng),還有一種是在命令行窗口中啟動(dòng)。01在服務(wù)管理器中啟動(dòng)MySQL服務(wù)啟動(dòng)MySQL服務(wù)運(yùn)行services.msc2.2MySQL服務(wù)的基本操作2.2.1啟動(dòng)MySQL服務(wù)步驟2打開“服務(wù)”窗口,在其右側(cè)列表中選擇MySQL,單擊左側(cè)出現(xiàn)的“啟動(dòng)”鏈接,即可啟動(dòng)MySQL服務(wù),如右圖所示。在服務(wù)管理器中啟動(dòng)MySQL服務(wù)2.2MySQL服務(wù)的基本操作2.2.1啟動(dòng)MySQL服務(wù)02在命令行窗口中啟動(dòng)MySQL服務(wù)步驟1右擊桌面左下角的“開始”按鈕,執(zhí)行“命令提示符(管理員)”命令,打開命令行窗口。步驟2在命令行窗口中輸入“netstartmysql”命令,按回車鍵確認(rèn),即可啟動(dòng)MySQL服務(wù),如右圖所示。在命令行窗口中啟動(dòng)MySQL服務(wù)2.2MySQL服務(wù)的基本操作2.2.1啟動(dòng)MySQL服務(wù)2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)啟動(dòng)MySQL服務(wù)后,可以通過客戶端的命令行窗口來登錄和退出MySQL。01登錄MySQL步驟1右擊桌面左下角的“開始”按鈕,執(zhí)行“命令提示符”命令,打開命令行窗口,如左圖所示。

知識庫安裝和啟動(dòng)MySQL必須使用管理員身份,登錄MySQL可以使用管理員身份,也可以使用普通用戶,此處使用普通用戶身份登錄。2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)步驟2在命令行窗口中輸入以下命令:mysql–hlocalhost–uroot-p登錄數(shù)據(jù)庫其中“-h”后跟隨的參數(shù)值是服務(wù)端的主機(jī)地址,由于客戶端和服務(wù)端在同一臺(tái)計(jì)算機(jī)上,所以可以輸入“”或者“l(fā)ocalhost”,如果是本機(jī)登錄,也可以省略該參數(shù);“-u”后跟隨的是用戶名稱,此處為“root”;“-p”后跟隨的是用戶登錄密碼,但密碼不需要在本行輸入。按回車鍵確認(rèn)后,系統(tǒng)會(huì)提示輸入密碼:Enterpassword,由于當(dāng)前還沒有設(shè)置密碼,所以直接按回車鍵確認(rèn)就可以登錄了,如上圖所示。2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)登錄MySQL后,會(huì)輸出一段內(nèi)容和一個(gè)“mysql>”命令提示符,下面簡單介紹其中的主要命令及其意義:LOREMCommandsendwith;or\g:可以使用“;”或者“\g”結(jié)束命令。YourMySQLconnectionidis4:提示登錄MySQL服務(wù)的次數(shù),目前是第4次。Serverversion:5.7.18MySQLCommunityServer(GPL):MySQL的版本。Type'help;'or'\h'forhelp:輸入“help;”或者“\h”可以查看幫助信息。Type'\c'toclearthecurrentinputstatement:

輸入“\c”可以清除以前的命令。2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)步驟3初次登錄MySQL默認(rèn)是不需要密碼的,為提高安全性,最好設(shè)置MySQL登錄密碼,命令的格式如下,結(jié)果如下圖所示。SETPASSWORDFORroot@localhost='newpassword';修改登錄密碼2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)02退出MySQL退出MySQL非常簡單,在命令行窗口中執(zhí)行以下命令中的任意一個(gè),均可退出MySQL:①exit。②quit。③\q。

2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)01在服務(wù)管理器中停止MySQL服務(wù)參照2.2.1節(jié)的操作,打開“服務(wù)”窗口。選擇MySQL,單擊左側(cè)的“停止”鏈接,如右圖所示。在服務(wù)管理器中停止MySQL服務(wù)停止MySQL服務(wù)2.2MySQL服務(wù)的基本操作2.2.2登錄和退出MySQL服務(wù)02在命令行窗口中停止MySQL服務(wù)在命令行窗口中停止MySQL服務(wù)右擊桌面左下角的“開始”按鈕,執(zhí)行“命令提示符(管理員)”命令,打開命令行窗口,輸入“netstopmysql”命令,并按回車鍵確認(rèn),即可停止MySQL服務(wù),如左圖所示。2.3MySQL圖形化管理工具2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具M(jìn)ySQL圖形化管理工具有很多種,如香港卓軟數(shù)碼科技有限公司開發(fā)的NavicatforMySQL,MySQL官方開發(fā)的MySQL-Workbench,Webyog公司開發(fā)的SQLyog,還有phpMyAdmin團(tuán)隊(duì)開發(fā)的phpMyAdmin。NavicatforMySQL1MySQL-Workbench2SQLyog3NavicatforMySQL是一款專為MySQL設(shè)計(jì)的強(qiáng)大數(shù)據(jù)庫管理及開發(fā)工具。MySQLWorkbench是MySQLAB公司發(fā)布的圖形化管理軟件。phpMyAdmin4SQLyog是Webyog公司出品的一款簡潔高效、功能強(qiáng)大的圖形化MySQL數(shù)據(jù)庫管理工具。phpMyAdmin是一款基于Web方式,架構(gòu)在網(wǎng)站主機(jī)上的MySQL管理工具。2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具NavicatforMySQL擁有極好的圖形用戶界面,可以更加安全、容易和快速地創(chuàng)建、組織、存取和共享信息。NavicatforMySQL可以連接本地或遠(yuǎn)程MySQL服務(wù)器,用戶可以瀏覽、建立和刪除數(shù)據(jù)庫,增加、刪除、修改和查詢數(shù)據(jù),管理用戶權(quán)限,備份/復(fù)原數(shù)據(jù)庫,導(dǎo)入/導(dǎo)出數(shù)據(jù)(支持CSV,TXT,DBF和XML格式)等。2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具本書將以該軟件為例介紹圖形化管理工具的應(yīng)用,本節(jié)先來介紹其下載和安裝方法,其具體應(yīng)用將穿插在后面的相關(guān)章節(jié)中。NavicatforMySQL下載頁面步驟1在瀏覽器地址欄中輸入網(wǎng)址“/download”,按回車鍵進(jìn)入Navicat下載頁面,選擇“NavicatforMySQL”開始下載,如右圖所示。2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具運(yùn)行安裝程序步驟2運(yùn)行已經(jīng)下載完成的安裝程序,打開“安裝程序”對話框,單擊“下一步”按鈕,如左圖所示。2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具步驟3選擇“我同意”單選項(xiàng),同意許可證中的條款,之后單擊“下一步”按鈕,如右圖所示。許可證條款2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具選擇安裝位置步驟4

在彈出的對話框中單擊“瀏覽”按鈕,選擇軟件的安裝位置,之后單擊“下一步”按鈕,如左圖所示。2.3MySQL圖形化管理工具2.3.1常用的圖形化管理工具步驟5在接下來彈出的對話框中單擊“瀏覽”按鈕,選擇軟件的快捷方式安裝地址,并單擊“下一步”按鈕,如右圖所示。2.3MySQL圖形化管理工具步驟6連續(xù)單擊“下一步”按鈕,直至彈出如左圖所示的對話框,單擊“完成”按鈕,完成安裝。2.3.1常用的圖形化管理工具2.3MySQL圖形化管理工具Navicat只是一個(gè)客戶端軟件,如果需要操作MySQL,必須與MySQL建立連接,具體步驟如下:步驟1打開NavicatforMySQL客戶端軟件,單擊“文件”菜單,在其下拉菜單中執(zhí)行“新建連接”命令,如下圖所示。2.3.2使用Navicat連接MySQL新建連接2.3MySQL圖形化管理工具填寫連接信息步驟2打開“新建連接”窗口,在“常規(guī)”選項(xiàng)卡下輸入正確的主機(jī)名或IP地址、端口、用戶名和密碼之后,單擊“確定”按鈕,就可以和MySQL建立連接了,如左圖所示。

提示為便于記憶,可輸入一個(gè)連接名,如果不輸入連接名,此軟件會(huì)自動(dòng)生成一個(gè)由主機(jī)名和端口組成的名稱。2.3.2使用Navicat連接MySQL2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.1下載MySQLLinux操作系統(tǒng)有許多不同的版本,不同版本的操作系統(tǒng)需要安裝的MySQL版本也不同,目前MySQL主要支持的Linux版本有Ubuntu、SUSE和RedHat。RedHat也分為多種不同的版本,但其安裝過程基本相同,讀者可以根據(jù)不同的操作系統(tǒng)選擇相應(yīng)的安裝包,此處選擇的Linux操作系統(tǒng)版本是CentOS7,它屬于RedHat的社區(qū)版。表2-1Linux操作系統(tǒng)下MySQL安裝包及其特點(diǎn)安裝包簡

介特

點(diǎn)RPM包RPM包(RPMPackageManager)是一種Linux系統(tǒng)下的安裝文件,通過命令可以方便的安裝與卸載安裝簡單,適合初學(xué)者;安裝路徑不能修改;需要分別下載服務(wù)端和客戶端;一臺(tái)服務(wù)器只能安裝一個(gè)MySQL二進(jìn)制包二進(jìn)制包是源代碼經(jīng)過編譯生成的二進(jìn)制軟件包安裝簡單;可安裝到任何路徑下;已經(jīng)經(jīng)過編譯,不能定制編譯參數(shù),性能不是很高;一臺(tái)服務(wù)器可以安裝多個(gè)MySQL源碼包源碼包是MySQL的源代碼,安裝之前需要用戶自己編譯安裝過程復(fù)雜,編譯時(shí)間長;可靈活定制編譯參數(shù),性能相對較高;一臺(tái)服務(wù)器可安裝多個(gè)MySQL2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.1下載MySQL對于初學(xué)者,MySQL推薦使用RPM包,其下載步驟如下:步驟1在瀏覽器地址欄中輸入網(wǎng)址“/downloads/mysql”,按回車鍵進(jìn)入下載頁面,在操作系統(tǒng)下拉列表中選擇“RedHatEnterpriseLinux/OracleLinux”,在系統(tǒng)版本下拉列表中選擇“RedHatEnterpriseLinux7/OracleLinux7(x86,64-bit)”,如圖2-26所示。步驟2單擊“MySQLServer”和“ClientUtilities”右側(cè)的“Download”按鈕,下載RPM安裝包,如圖2-26所示。2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQLMySQL的RPM包分為多個(gè)部件,一般只需安裝“MySQLServer”和“ClientUtilities”即可。“MySQLServer”是MySQL服務(wù)端的部件,為用戶提供核心服務(wù),“ClientUtilities”是連接MySQL服務(wù)端的客戶端工具,方便管理人員對MySQL進(jìn)行操作。步驟1使用ftp工具將下載完成的RPM包上傳到Linux系統(tǒng)中root目錄下,由于安裝過程需要依賴包“SharedLibraries”和“MySQLConfiguration”,所以這兩個(gè)依賴包也需要在網(wǎng)站中下載后上傳到系統(tǒng)中。登錄Linux系統(tǒng)后進(jìn)入root目錄,查看該目錄下的文件,如圖2-27所示。

知識庫Linux和Windows操作系統(tǒng)采用的設(shè)計(jì)模式都是模塊化設(shè)計(jì),也就是說功能互相依賴。例如,安裝某個(gè)軟件又需要一些其他文件,這就說明軟件和這些文件存在依賴關(guān)系。大部分依賴包是庫文件,有動(dòng)態(tài)庫也有靜態(tài)庫,如果一個(gè)程序只安裝了這個(gè)程序本身,而它的依賴包沒有安裝,此程序是不能使用的。2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQL步驟2如果當(dāng)前用戶不是root用戶,需要執(zhí)行“suroot”命令將當(dāng)前用戶切換到root用戶,然后執(zhí)行以下命令安裝“ClientUtilities”包,此時(shí)系統(tǒng)會(huì)提示需要安裝“SharedLibraries”依賴包,如圖2-28所示。rpm-ivhmysql-community-client-5.7.18-1.el7.x86_64.rpm

提示由于MySQL會(huì)不斷更新安裝包,安裝包的文件名也會(huì)隨之改變,所以“rpm-ivh”命令之后的文件名應(yīng)該是實(shí)際下載的文件名。2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQL步驟3執(zhí)行以下命令安裝“SharedLibraries”包時(shí),系統(tǒng)會(huì)提示需要另一個(gè)依賴包“MySQLConfiguration”,如圖2-29所示。rpm-ivhmysql-community-libs-5.7.18-1.el7.x86_64.rpm由于錯(cuò)誤信息提示mariadb-libs與mysql-community-libs沖突,所以安裝依賴包之前需要執(zhí)行以下命令將mariadb-libs卸載。yum-yremovemariadb-libs-5.5.52-1.el7.x86_642.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQL步驟4執(zhí)行以下命令安裝“MySQLConfiguration”包,如圖2-30所示。rpm-ivhmysql-community-common-5.7.18-1.el7.x86_64.rpmrpm-ivhmysql-community-libs-5.7.18-1.el7.x86_64.rpm步驟5執(zhí)行以下命令安裝“SharedLibraries”依賴包,如圖2-31所示。2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQL步驟6執(zhí)行以下命令安裝“ClientUtilities”,如圖2-32所示。rpm-ivhmysql-community-client-5.7.18-1.el7.x86_64.rpmrpm-ivhmysql-community-server-5.7.18-1.el7.x86_64.rpm步驟7執(zhí)行以下命令安裝“MySQLServer”,如圖2-33所示。2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQL步驟8出于安全考慮,Linux系統(tǒng)下,MySQL5.6及以上版本root用戶的初始密碼不為空,在安裝過程中,會(huì)生成一個(gè)隨機(jī)密碼。執(zhí)行以下命令獲取初始密碼,如圖2-34所示。grep"password"/var/log/mysqld.logmysql-hlocalhost-uroot-p步驟9執(zhí)行以下命令,然后輸入初始密碼按回車鍵確認(rèn),即可登錄MySQL,如圖2-35所示。2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.2安裝和配置MySQL

提示在登錄MySQL時(shí),如果系統(tǒng)提示“ERROR2002(HY000):Can'tconnecttolocalMySQLserverthroughsocket'/var/lib/mysql/mysql.sock'(2)”錯(cuò)誤信息,無法登錄MySQL,是因?yàn)椤癿ysql.sock”文件沒有生成,此時(shí)需要執(zhí)行“l(fā)n-s/var/lib/mysqld/mysqld.sock/tmp/mysql.sock”命令,創(chuàng)建一個(gè)軟鏈接,然后登錄MySQL即可。表2-2Linux系統(tǒng)下MySQL相關(guān)目錄文件夾位置文件夾內(nèi)容/usr/bin/mysql客戶端和腳本/usr/sbin/mysqldMySQL服務(wù)器/var/log/mysqld.log錯(cuò)誤日志/etc/fMySQL配置文件/var/lib/mysql日志文件和數(shù)據(jù)庫2.4在Linux操作系統(tǒng)下安裝與配置MySQL2.4.3MySQL服務(wù)基本操作進(jìn)入Linux操作系統(tǒng)后,直接輸入以下命令,即可啟動(dòng)、停止和重啟MySQL。啟動(dòng)MySQL:servicemysqldstart;停止MySQL:servicemysqldstop;重啟MySQL:servicemysqldrestart。感謝觀看3數(shù)據(jù)庫基本操作第章3.1創(chuàng)建數(shù)據(jù)庫3.1創(chuàng)建數(shù)據(jù)庫3.1.1數(shù)據(jù)庫的構(gòu)成在MySQL中,數(shù)據(jù)庫可以分為系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫兩大類。

知識庫數(shù)據(jù)庫對象是指存儲(chǔ)、管理和使用數(shù)據(jù)的不同結(jié)構(gòu)形式,主要包括表、索引、視圖、缺省值、規(guī)則、觸發(fā)器、存儲(chǔ)過程和函數(shù)等。系統(tǒng)數(shù)據(jù)庫1系統(tǒng)數(shù)據(jù)庫是指MySQL安裝配置完成之后,系統(tǒng)自動(dòng)創(chuàng)建的一些數(shù)據(jù)庫??梢允褂肧HOWDATABASES語句查看當(dāng)前系統(tǒng)中存在的數(shù)據(jù)庫,輸入的語句及其執(zhí)行結(jié)果如下。mysql>SHOWDATABASES;+--------------------------------------+|Database |+--------------------------------------+|information_schema ||mysql ||performance_schema ||sys |+---------------------------------------+4rowsinset(0.00sec)用戶數(shù)據(jù)庫2用戶數(shù)據(jù)庫是用戶根據(jù)實(shí)際需求手動(dòng)創(chuàng)建的數(shù)據(jù)庫。3.1創(chuàng)建數(shù)據(jù)庫3.1.2使用命令行窗口創(chuàng)建數(shù)據(jù)庫一般由字母和下劃線組成,不允許有空格,可以是英文單詞、英文短語或相應(yīng)縮寫;不允許是MySQL關(guān)鍵字;長度最好不超過128位;創(chuàng)建數(shù)據(jù)庫的關(guān)鍵字為CREATE,語法形式如下:CREATEDATABASEdatabase_name;不能與其他數(shù)據(jù)庫同名。【實(shí)例3-1】使用CREATE關(guān)鍵字創(chuàng)建數(shù)據(jù)庫db_shop。mysql>CREATEDATABASEdb_shop;QueryOK,1rowaffected(0.00sec)3.1創(chuàng)建數(shù)據(jù)庫3.1.3使用圖形化工具創(chuàng)建數(shù)據(jù)庫步驟1

打開NavicatforMySQL軟件,連接MySQL。步驟2

右擊左側(cè)列表中已建立的連接,在彈出的快捷菜單中執(zhí)行“新建數(shù)據(jù)庫”命令,如圖3-1所示。步驟3

打開“新建數(shù)據(jù)庫”對話框,在“數(shù)據(jù)庫名”文本框中輸入數(shù)據(jù)庫名,此處為“book”,如圖3-2所示。圖3-1新建數(shù)據(jù)庫圖3-2填寫數(shù)據(jù)庫名3.1創(chuàng)建數(shù)據(jù)庫3.1.3使用圖形化工具創(chuàng)建數(shù)據(jù)庫步驟3

單擊“確定”按鈕,即可創(chuàng)建一個(gè)新的數(shù)據(jù)庫,如圖3-3所示。圖3-3成功創(chuàng)建數(shù)據(jù)庫3.2查看和選擇數(shù)據(jù)庫3.2查看和選擇數(shù)據(jù)庫3.2.1查看數(shù)據(jù)庫執(zhí)行以下命令,可查看數(shù)據(jù)庫管理系統(tǒng)中所有的數(shù)據(jù)庫。mysql>SHOWDATABASES;+--------------------------------------+|Database |+--------------------------------------+|information_schema ||book ||db_shop ||mysql ||performance_schema ||sys |+--------------------------------------+6rowsinset(0.00sec)SHOWDATABASES;【實(shí)例3-2】查看數(shù)據(jù)庫。3.2查看和選擇數(shù)據(jù)庫3.2.2選擇數(shù)據(jù)庫選擇數(shù)據(jù)庫的語法形式如下:USEdatabase_name;【實(shí)例3-3】選擇數(shù)據(jù)庫。mysql>USEdb_shop;Databasechanged其中,database_name表示數(shù)據(jù)庫名稱。3.3刪除數(shù)據(jù)庫3.3刪除數(shù)據(jù)庫DROPDATABASEdatabase_name;【實(shí)例3-4】刪除數(shù)據(jù)庫。mysql>DROPDATABASEdb_shop;QueryOK,0rowsaffected(0.07sec)其中,database_name表示數(shù)據(jù)庫名稱。刪除數(shù)據(jù)庫的關(guān)鍵字為DROPDATABASE,語法形式如下:使用命令行窗口刪除數(shù)據(jù)庫13.3刪除數(shù)據(jù)庫使用圖形化工具刪除數(shù)據(jù)庫,需要右擊數(shù)據(jù)庫名稱,在彈出的快捷菜單中執(zhí)行“刪除數(shù)據(jù)庫”命令,如圖3-4所示。使用圖形化工具刪除數(shù)據(jù)庫2圖3-4刪除數(shù)據(jù)庫感謝觀看4存儲(chǔ)引擎、數(shù)據(jù)類型和字符集第章4.1存儲(chǔ)引擎4.1存儲(chǔ)引擎存儲(chǔ)引擎是MySQL體系結(jié)構(gòu)的重要組成部分,作用是指定表的類型,規(guī)定表如何存儲(chǔ)和索引數(shù)據(jù)、是否支持事務(wù)等。4.1.1MySQL存儲(chǔ)引擎概述MySQL支持的存儲(chǔ)引擎1MySQL支持的存儲(chǔ)引擎包括InnoDB,MRG_MYISAM,MEMORY,BLACKHOLE,MyISAM,CSV,ARCHIVE,PERFORMANCE_SCHEMA,F(xiàn)EDERATED,可以在登錄MySQL后執(zhí)行以下命令查看:mysql>SHOWENGINES\G***************************1.row***************************Engine:InnoDBSupport:DEFAULTComment:Supportstransactions,row-levellocking,andforeignkeysTransactions:YESXA:YESSavepoints:YES***************************2.row***************************Engine:MRG_MYISAM省略部分……

提示上述命令以“\G”結(jié)尾,其作用是將查詢結(jié)果按列顯示。4.1存儲(chǔ)引擎4.1.1MySQL存儲(chǔ)引擎概述查看MySQL默認(rèn)存儲(chǔ)引擎2MySQL5.5之前版本的默認(rèn)存儲(chǔ)引擎為MyISAM,MySQL5.5及之后版本的默認(rèn)存儲(chǔ)引擎為InnoDB,可以執(zhí)行以下命令查看默認(rèn)存儲(chǔ)引擎:mysql>SHOWVARIABLESLIKE'default_storage_engine';+----------------------------+-----------+|Variable_name|Value|+----------------------------+-----------+|default_storage_engine|InnoDB|+----------------------------+-----------+1rowinset,1warning(0.00sec)4.1存儲(chǔ)引擎4.1.1MySQL存儲(chǔ)引擎概述修改MySQL默認(rèn)存儲(chǔ)引擎3創(chuàng)建新表時(shí)如果不指定存儲(chǔ)引擎,則系統(tǒng)使用默認(rèn)存儲(chǔ)引擎。如果用戶想改變默認(rèn)存儲(chǔ)引擎,可以通過修改配置文件來實(shí)現(xiàn)。打開my.ini配置文件,在“[mysqld]”組下面添加以下內(nèi)容,然后保存文件即完成修改。#設(shè)置MySQL服務(wù)器的默認(rèn)存儲(chǔ)引擎default_storage_engine=MyISAM修改完畢后,需要重啟MySQL服務(wù),修改才能生效。可以重啟并重新登錄MySQL,并采用前面的方法查詢修改結(jié)果。4.1存儲(chǔ)引擎4.1.2常用的存儲(chǔ)引擎InnoDB1InnoDB為MySQL提供具有提交、回滾、崩潰恢復(fù)能力和多版本并發(fā)控制的事務(wù)安全型表,能夠高效地處理大量數(shù)據(jù)。適用于需要事務(wù)支持、高并發(fā)、數(shù)據(jù)更新頻繁、對數(shù)據(jù)的一致性和完整性要求較高的計(jì)費(fèi)系統(tǒng)或者財(cái)務(wù)系統(tǒng)等。MyISAM2MyISAM存儲(chǔ)引擎基于ISAM,并對其進(jìn)行擴(kuò)展。具有較高的插入和查詢速度,但不支持事務(wù)和外鍵。每個(gè)使用MyISAM存儲(chǔ)引擎創(chuàng)建的數(shù)據(jù)表都會(huì)生成3個(gè)文件,文件名和數(shù)據(jù)表名稱相同,但擴(kuò)展名不同,各個(gè)文件及其作用分別如下:.frm:存儲(chǔ)表定義;.MYD:存儲(chǔ)數(shù)據(jù);.MYI:存儲(chǔ)索引。MEMORY3MEMORY存儲(chǔ)引擎主要用于內(nèi)容變化不頻繁的表。另外,由于MEMORY存儲(chǔ)引擎是將數(shù)據(jù)存儲(chǔ)到內(nèi)存中,所以太大的表無法使用此存儲(chǔ)引擎。對于數(shù)據(jù)更新不頻繁、存活周期不長和需要對統(tǒng)計(jì)結(jié)果進(jìn)行分析的數(shù)據(jù)表可以使用MEMORY存儲(chǔ)引擎。對事務(wù)完整性沒有要求、并發(fā)相對較低、數(shù)據(jù)更新不頻繁、以讀為主和對數(shù)據(jù)一致性要求不高的數(shù)據(jù)表,推薦使用MyISAM存儲(chǔ)引擎。4.2數(shù)據(jù)類型4.2數(shù)據(jù)類型數(shù)據(jù)表由多個(gè)字段構(gòu)成,每個(gè)字段可以指定不同的數(shù)據(jù)類型,數(shù)據(jù)類型用于規(guī)定數(shù)據(jù)的存儲(chǔ)格式、約束和有效范圍。在定義數(shù)據(jù)表字段時(shí),應(yīng)根據(jù)實(shí)際情況選擇合適的數(shù)據(jù)類型。MySQL提供的數(shù)據(jù)類型主要包括數(shù)值類型、日期和時(shí)間類型、字符串類型以及JSON類型?!緦?shí)例4-1】參照表4-1的信息,創(chuàng)建數(shù)據(jù)表tb_demo。表4-1tb_demo表中各字段及其數(shù)據(jù)類型字

段數(shù)據(jù)類型注

釋idINT(11)編

號nameVARCHAR(30)姓

名ageTINYINT(4)年

齡scoreFLOAT(4,1)分

數(shù)sexENUM('w','m',)性

別hobbySET('football','basketball','volleyball')愛

好photoVARBINARY(255)相

片spendDECIMAL(5,1)生活費(fèi)addressJSON住

址IntroTEXT簡

介4.2數(shù)據(jù)類型4.2.1數(shù)值類型數(shù)值類型用于存儲(chǔ)數(shù)字型數(shù)據(jù),包括整數(shù)類型(TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT)、浮點(diǎn)數(shù)類型(FLOAT,DOUBLE)和定點(diǎn)數(shù)類型(DECIMAL)。其中,整數(shù)類型的字段用于存儲(chǔ)整數(shù),浮點(diǎn)數(shù)和定點(diǎn)數(shù)類型的字段用于存儲(chǔ)小數(shù)。不同的數(shù)值類型提供不同的存儲(chǔ)范圍,并且每種類型可以設(shè)置兩種格式,分別為有符號和無符號,有符號表示可以存儲(chǔ)負(fù)數(shù),無符號表示只能存儲(chǔ)0或正數(shù)。4.2數(shù)據(jù)類型4.2.1數(shù)值類型表4-2整數(shù)類型數(shù)據(jù)類型所占字節(jié)存儲(chǔ)范圍(有符號)存儲(chǔ)范圍(無符號)TINYINT1字節(jié)-128~1270~255SMALLINT2字節(jié)-32768~327670~65535MEDIUMINT3字節(jié)-8388608~83886070~16777215INT4字節(jié)-2147483648~21474836470~4294967295BIGINT8字節(jié)-9223372036854775808

~92233720368547758070~18446744073709551615表4-3TINYINT類型二進(jìn)制正整數(shù)最大值01111111表4-4TINYINT類型二進(jìn)制負(fù)整數(shù)最小值10000000整數(shù)類型14.2數(shù)據(jù)類型4.2.1數(shù)值類型以tb_demo表為例,其中有一個(gè)age字段,它的數(shù)據(jù)類型為TINYINT,此處向age字段插入數(shù)據(jù),當(dāng)插入的數(shù)值在TINYINT類型的存儲(chǔ)范圍內(nèi)時(shí),可以正常插入,如果插入的數(shù)據(jù)長度超出所選數(shù)據(jù)類型的存儲(chǔ)范圍,或者為其他類型的數(shù)據(jù)時(shí),系統(tǒng)就會(huì)提示“Outofrange”錯(cuò)誤信息,如下所示。mysql>INSERTINTOtb_demo(age)VALUES(123);QueryOK,1rowaffected(0.27sec)mysql>INSERTINTOtb_demo(age)VALUES(1234);ERROR1264(22003):Outofrangevalueforcolumn'age'atrow1mysql>SELECTageFROMtb_demo;+------+|age|+------+|123|+------+1rowsinset(0.02sec)4.2數(shù)據(jù)類型4.2.1數(shù)值類型mysql>HELPCONTENTS;Youaskedforhelpabouthelpcategory:"Contents"Formoreinformation,type'help<item>',where<item>isoneofthefollowingcategories:AccountManagementAdministrationCompoundStatementsDataDefinitionDataTypes#部分內(nèi)容省略【實(shí)例4-2】查看系統(tǒng)幫助。首先使用“HELPCONTENTS”查看MySQL幫助文檔支持的目錄列表。然后根據(jù)需要查看的條目輸入相關(guān)命令進(jìn)行查看,例如,執(zhí)行“HELPDATATYPES”可以查看MySQL支持的所有數(shù)據(jù)類型。最后以“HELP”開頭,加上任意一個(gè)數(shù)據(jù)類型,可以查看其存儲(chǔ)范圍,如以下代碼所示:mysql>HELPDATATYPES;Youaskedforhelpabouthelpcategory:"DataTypes"Formoreinformation,type'help<item>',where<item>isoneofthefollowingtopics:AUTO_INCREMENT#部分內(nèi)容省略mysql>HELPTINYINT;Name:'TINYINT'Description:TINYINT[(M)][UNSIGNED][ZEROFILL]Averysmallinteger.Thesignedrangeis-128to127.Theunsignedrangeis0to255.4.2數(shù)據(jù)類型4.2.1數(shù)值類型浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型2浮點(diǎn)數(shù)類型分為兩種,單精度(FLOAT)和雙精度(DOUBLE),而定點(diǎn)數(shù)類型只有DECIMAL一種。浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型都可以使用類型名稱后面加“(M,D)”的形式來定義,其中M稱為精度,表示數(shù)值的位數(shù)(整數(shù)位+小數(shù)位);D稱為標(biāo)度,表示小數(shù)點(diǎn)后的位數(shù)。例如,tb_demo表中score字段的數(shù)據(jù)類型為FLOAT(4,1),表示可正常插入的數(shù)據(jù)長度最大是4位,小數(shù)點(diǎn)后保留1位,例如,123.4這樣的小數(shù)符合要求。小數(shù)類型的數(shù)據(jù)占用字節(jié)和存儲(chǔ)范圍如表4-5所示。表4-5小數(shù)類型數(shù)據(jù)類型占用字節(jié)負(fù)數(shù)存儲(chǔ)范圍非負(fù)數(shù)存儲(chǔ)范圍FLOAT4字節(jié)-3.402823466E+38

~-1.175494351E-380和1.175494351E-38

~3.402823466E+38DOUBLE8字節(jié)-1.7976931348623157E+308

~-2.2250738585072014E-3080和2.2250738585072014E-308

~1.7976931348623157E+308DECIMALM+2字節(jié)與DOUBLE相同與DOUBLE相同4.2數(shù)據(jù)類型4.2.1數(shù)值類型【實(shí)例4-3】浮點(diǎn)數(shù)類型和定點(diǎn)數(shù)類型的區(qū)別。mysql>INSERTINTOtb_demo(score,spend)VALUES(90.16,2000.16);QueryOK,1rowaffected,1warning(0.10sec)mysql>SHOWwarnings;+-------+------+--------------------------------------------------------------+|Level|Code|Message |+-------+------+--------------------------------------------------------------+|Note|1265|Datatruncatedforcolumn'spend'atrow1 |+-------+------+---------------------------------------------------------------+1rowinset(0.00sec)mysql>selectscore,spendfromtb_demo;+----------+-------------+|score|spend |+----------+-------------+|90.2|2000.2 |+-----------+------------+1rowinset(0.01sec)4.2數(shù)據(jù)類型4.2.2日期和時(shí)間類型MySQL5.7版本中用于存儲(chǔ)日期和時(shí)間的數(shù)據(jù)類型有YEAR,DATE,TIME,DATETIME和TIMESTAMP,每一種類型都有固定的存儲(chǔ)范圍。表4-6日期和時(shí)間類型數(shù)據(jù)類型占用字節(jié)存儲(chǔ)格式存儲(chǔ)范圍YEAR1字節(jié)YYYY1901~2155DATE3字節(jié)YYYY-MM-DD1000-01-01~9999-12-31TIME3字節(jié)+小數(shù)秒存儲(chǔ)HH:MM:SS-838:59:59~838:59:59DATETIME5字節(jié)+小數(shù)秒存儲(chǔ)YYYY-MM-DDHH:MM:SS1000-01-0100:00:00

~9999-12-3123:59:59TIMESTAMP4字節(jié)+小數(shù)秒存儲(chǔ)YYYY-MM-DDHH:MM:SS1970-01-0100:00:01UTC

~2038-01-1903:14:07UTC

提示向日期和時(shí)間類型的字段插入數(shù)據(jù)時(shí),最好使用引號將值包含起來。4.2數(shù)據(jù)類型4.2.2日期和時(shí)間類型YEAR1YEAR類型用于存儲(chǔ)只有年份的值,存儲(chǔ)格式為YYYY,它可以被聲明為YEAR或YEAR(4),具有四個(gè)字符的顯示寬度。在向數(shù)據(jù)庫中插入YEAR類型的數(shù)據(jù)時(shí),可以輸入不嚴(yán)格的值,如17,系統(tǒng)會(huì)自動(dòng)轉(zhuǎn)換為2017,轉(zhuǎn)換規(guī)則有以下幾點(diǎn):數(shù)值1~69和70~99自動(dòng)轉(zhuǎn)換為2001~2069和1970~1999。字符串’1’~’69’和’70’~’99’自動(dòng)轉(zhuǎn)換為2001~2069和1970~1999。字符串’0’或’00’自動(dòng)轉(zhuǎn)換為2000。DATE2DATE類型用于存儲(chǔ)具有日期部分但沒有時(shí)間部分的值,存儲(chǔ)格式為YYYY-MM-DD。格式為’YYYY-DD-MM’和’YYYYDDMM’的字符串會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)格式。格式為YYYYDDMM和YYDDMM的數(shù)值會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)格式。格式為’YY-DD-MM’和’YYDDMM’的字符串會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)格式。

提示’2017/10/10’,’2017.10.10’和’2017#10#10’都會(huì)被系統(tǒng)轉(zhuǎn)換為’2017-10-10’格式。4.2數(shù)據(jù)類型4.2.2日期和時(shí)間類型TIME3TIME類型用于存儲(chǔ)具有時(shí)間部分但沒有日期部分的值,存儲(chǔ)格式為HH:MM:SS。TIME類型的存儲(chǔ)范圍是-838:59:59到838:59:59,其不僅可用于表示一天中的時(shí)間(小于24小時(shí)),而且可用于表示兩個(gè)事件之間的時(shí)間間隔(可能遠(yuǎn)遠(yuǎn)大于24小時(shí),或者為負(fù))。TIME類型支持’DHH:MM:SS’格式,D表示日,可以在0~34之間取值,會(huì)被轉(zhuǎn)換為小時(shí),即D*24+HH。TIME類型支持沒有分隔符的字符串或數(shù)值的格式。例如,113050會(huì)被系統(tǒng)轉(zhuǎn)換為11:30:50。當(dāng)數(shù)據(jù)為TIME類型的縮寫值時(shí),如果沒有分隔符,MySQL會(huì)認(rèn)為值的最右邊兩位表示秒,例如,’1010’會(huì)被轉(zhuǎn)換成00:10:10;如果有分隔符,MySQL會(huì)認(rèn)為值的最左邊兩位表示小時(shí),例如,’10:10’會(huì)被轉(zhuǎn)換為10:10:00。4.2數(shù)據(jù)類型4.2.2日期和時(shí)間類型DATETIME4DATETIME類型用于存儲(chǔ)同時(shí)具有日期和時(shí)間的值,存儲(chǔ)格式為YYYY-MM-DDHH:MM:SS。格式為YYYYMMDDHHMMSS和YYMMDDHHMMSS的數(shù)值會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)格式。格式為’YYYYMMDDHHMMSS’和’YYMMDDHHMMSS’的字符串會(huì)轉(zhuǎn)換為標(biāo)準(zhǔn)格式。TIMESTAMP5TIMESTAMP類型與DATETIME類型相似,用于存儲(chǔ)同時(shí)具有日期和時(shí)間的值,存儲(chǔ)格式為YYYY-MM-DDHH:MM:SS,但是TIMESTAMP類型的存儲(chǔ)范圍較小。TIMESTAMP類型與DATETIME類型最大的區(qū)別是:DATETIME類型存儲(chǔ)的數(shù)據(jù)是什么,顯示的就是什么;而TIMESTAMP類型的時(shí)間可以根據(jù)時(shí)區(qū)進(jìn)行轉(zhuǎn)換,在查詢時(shí),當(dāng)前時(shí)區(qū)不同,顯示的時(shí)間值也不同。4.2數(shù)據(jù)類型4.2.3字符串類型MySQL支持的字符串?dāng)?shù)據(jù)類型包括CHAR,VARCHAR,BINARY,VARBINARY,BLOB,TEXT,ENUM和SET等。表4-7字符串類型類型名稱占用字節(jié)存儲(chǔ)范圍CHAR(M)M*w字節(jié)0<=M<=255VARCHAR(M)L+1字節(jié)0<=M<=65535BINARY(N)N字節(jié)0<=N<=255VARBINARY(N)L+1字節(jié)0<=N<=65535BLOBL+2字節(jié)L<216TEXTL+2字節(jié)L<216ENUM1或2字節(jié)0~65535SET1、2、3、4或8字節(jié)最多64個(gè)成員4.2數(shù)據(jù)類型4.2.3字符串類型CHAR和VARCHAR1CHAR和VARCHAR類型都是用于存儲(chǔ)較短的字符串,兩者的主要區(qū)別是存儲(chǔ)方式不同。BINARY和VARBINARY2BINARY和VARBINARY類型用于存儲(chǔ)較短的二進(jìn)制字符串。例如,tb_demo中photo字段存儲(chǔ)的是一張圖片轉(zhuǎn)換而成的二進(jìn)制碼。BINARY類型的長度是固定的,當(dāng)數(shù)據(jù)長度不足時(shí),系統(tǒng)將自動(dòng)在它的右邊填充“\0”,直至指定長度。例如,當(dāng)數(shù)據(jù)類型為BINARY(4)時(shí),插入數(shù)據(jù)為“a”,存儲(chǔ)的內(nèi)容實(shí)際為“a\0\0\0”。CHAR類型的長度是固定的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論