MySQL教程(新體系-綜合應(yīng)用實(shí)例視頻)(第4版) 課件全套 鄭阿奇 第1-10章 數(shù)據(jù)庫(kù)基礎(chǔ)- 用戶與權(quán)限_第1頁(yè)
MySQL教程(新體系-綜合應(yīng)用實(shí)例視頻)(第4版) 課件全套 鄭阿奇 第1-10章 數(shù)據(jù)庫(kù)基礎(chǔ)- 用戶與權(quán)限_第2頁(yè)
MySQL教程(新體系-綜合應(yīng)用實(shí)例視頻)(第4版) 課件全套 鄭阿奇 第1-10章 數(shù)據(jù)庫(kù)基礎(chǔ)- 用戶與權(quán)限_第3頁(yè)
MySQL教程(新體系-綜合應(yīng)用實(shí)例視頻)(第4版) 課件全套 鄭阿奇 第1-10章 數(shù)據(jù)庫(kù)基礎(chǔ)- 用戶與權(quán)限_第4頁(yè)
MySQL教程(新體系-綜合應(yīng)用實(shí)例視頻)(第4版) 課件全套 鄭阿奇 第1-10章 數(shù)據(jù)庫(kù)基礎(chǔ)- 用戶與權(quán)限_第5頁(yè)
已閱讀5頁(yè),還剩783頁(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章

數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)和數(shù)據(jù)模型MySQL+實(shí)用教程(第4版)01數(shù)據(jù)庫(kù)系統(tǒng)1.?dāng)?shù)據(jù)庫(kù)2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)一般由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)、應(yīng)用系統(tǒng)、數(shù)據(jù)庫(kù)管理員和用戶構(gòu)成。DBMS是數(shù)據(jù)庫(kù)系統(tǒng)的基礎(chǔ)和核心。如圖1.1所示。數(shù)據(jù)庫(kù)系統(tǒng)1.?dāng)?shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。是一個(gè)可長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)的、有組織的、可共享的、統(tǒng)一管理的大量數(shù)據(jù)的集合。2.?dāng)?shù)據(jù)庫(kù)管理系統(tǒng)數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)是數(shù)據(jù)庫(kù)系統(tǒng)的核心組成部分,主要完成對(duì)數(shù)據(jù)庫(kù)的操作與管理功能,實(shí)現(xiàn)數(shù)據(jù)庫(kù)對(duì)象的創(chuàng)建、數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)的查詢、添加、修改與刪除操作和數(shù)據(jù)庫(kù)的用戶管理、權(quán)限管理等。簡(jiǎn)單地說(shuō),DBMS就是管理數(shù)據(jù)庫(kù)的系統(tǒng)(軟件)。數(shù)據(jù)庫(kù)系統(tǒng)管理員(DBA)通過(guò)DBMS對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。02數(shù)據(jù)模型1.層次模型2.網(wǎng)狀模型3.關(guān)系模型數(shù)據(jù)模型1.層次模型將數(shù)據(jù)組織成一對(duì)多關(guān)系的結(jié)構(gòu),用樹(shù)形結(jié)構(gòu)表示實(shí)體及實(shí)體間的聯(lián)系

。如圖1.2所示為按層次模型組織的數(shù)據(jù)示例。2.網(wǎng)狀模型用連接指令或指針來(lái)確定數(shù)據(jù)間的網(wǎng)狀連接關(guān)系,是具有多對(duì)多類型的數(shù)據(jù)組織方式。如圖1.3所示為按網(wǎng)狀模型組織的數(shù)據(jù)示例。

數(shù)據(jù)模型3.關(guān)系模型例如,網(wǎng)上商城管理系統(tǒng)所涉及的商品類別、商品、供貨商、用戶、訂單、訂單項(xiàng)等表中,其中商品表主要信息包括商品編號(hào)、商品名稱、價(jià)格、庫(kù)存量和商品圖片等,部分?jǐn)?shù)據(jù)如表1.1所示。商品編號(hào)商品名稱價(jià)格庫(kù)存量1A0101洛川紅富士蘋果冰糖心10斤箱裝44.8036011A0201煙臺(tái)紅富士蘋果10斤箱裝29.8056981A0302阿克蘇蘋果冰糖心5斤箱裝29.80126801B0501庫(kù)爾勒香梨10斤箱裝69.8089021B0601碭山梨10斤箱裝大果19.90145321B0602碭山梨5斤箱裝特大果16.9068341GA101智利車?yán)遄?斤大櫻桃整箱順豐包郵59.8054202A1602[王明公]農(nóng)家散養(yǎng)豬冷凍五花肉3斤裝118.003752B1701Tyson/泰森雞胸肉454g*5去皮冷凍包郵139.0016822B1702[周黑鴨]鹵鴨脖15g*50袋99.0059633BA301波士頓龍蝦特大鮮活1斤149.0028003C2205[參王朝]大連6-7年深海野生干海參1188.0012034A1601農(nóng)家散養(yǎng)草雞蛋40枚包郵33.906904C2402青島啤酒500ml*24聽(tīng)整箱112.0023427數(shù)據(jù)模型關(guān)系模型是近年來(lái)整個(gè)數(shù)據(jù)模型領(lǐng)域的重要支撐,是目前數(shù)據(jù)庫(kù)中常用的數(shù)據(jù)模型。但隨著數(shù)據(jù)庫(kù)應(yīng)用領(lǐng)域的進(jìn)一步拓展與深入,對(duì)象數(shù)據(jù)、空間數(shù)據(jù)、圖像與圖形數(shù)據(jù)、聲音數(shù)據(jù)、關(guān)聯(lián)文本數(shù)據(jù)及海量倉(cāng)庫(kù)數(shù)據(jù)等出現(xiàn),為了適應(yīng)應(yīng)用需要,數(shù)據(jù)模型向下列幾個(gè)發(fā)展。對(duì)傳統(tǒng)關(guān)系模型的擴(kuò)充,以實(shí)現(xiàn)關(guān)系模型嵌套,支持關(guān)系繼承及關(guān)系函數(shù)等。用面向?qū)ο蟮乃季S方式與方法來(lái)描述客觀實(shí)體,支持面向?qū)ο蠼?,支持?duì)象存取與持久化,支持代碼級(jí)面向?qū)ο髷?shù)據(jù)操作,成為面向?qū)ο髷?shù)據(jù)模型。XML從數(shù)據(jù)交換領(lǐng)域發(fā)展到了數(shù)據(jù)存儲(chǔ)與業(yè)務(wù)描述領(lǐng)域,數(shù)據(jù)庫(kù)系統(tǒng)都已支持對(duì)XML的存儲(chǔ)與處理。研究新的數(shù)據(jù)模型,在數(shù)據(jù)構(gòu)造器與數(shù)據(jù)處理原語(yǔ)上都有了新的突破。(1)(2)(3)(4)第1章

數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)設(shè)計(jì)01概念模型1.一對(duì)一的聯(lián)系(1∶1)2.一對(duì)多的聯(lián)系(1∶n)3.多對(duì)多的聯(lián)系(m∶n)概念模型實(shí)體集中的實(shí)體彼此是可區(qū)別的。如果實(shí)體集中的屬性或最小屬性組合的值能唯一標(biāo)識(shí)其對(duì)應(yīng)實(shí)體,則將該屬性或?qū)傩越M合稱為碼。碼可能有多個(gè),對(duì)于每一個(gè)實(shí)體集,可指定一個(gè)碼為主碼。如果用矩形框表示實(shí)體集,用帶橢圓框表示屬性,用線段連接實(shí)體集與屬性,當(dāng)一個(gè)屬性或?qū)傩越M合指定為主碼時(shí),在實(shí)體集與屬性的連接線上標(biāo)記一斜線,則可以用如圖1.4所示的形式描述網(wǎng)上商城管理系統(tǒng)中的實(shí)體集及每個(gè)實(shí)體集涉及的屬性。概念模型1.一對(duì)一的聯(lián)系(1∶1)A中的一個(gè)實(shí)體至多與B中的一個(gè)實(shí)體相聯(lián)系,B中的一個(gè)實(shí)體也至多與A中的一個(gè)實(shí)體相聯(lián)系。例如,“用戶”與“收件人”這兩個(gè)實(shí)體集之間的聯(lián)系是一對(duì)一的聯(lián)系,因?yàn)橐粋€(gè)用戶對(duì)應(yīng)一個(gè)收件人,反過(guò)來(lái),一個(gè)收件人對(duì)應(yīng)一個(gè)用戶,“用戶”與“收件人”兩個(gè)實(shí)體集的E-R模型如圖1.5(a)所示。2.一對(duì)多的聯(lián)系(1∶n)A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體至多與A中的一個(gè)實(shí)體相聯(lián)系。例如,“供貨商”與“商品”這兩個(gè)實(shí)體集之間的聯(lián)系是一對(duì)多的聯(lián)系,因?yàn)橐粋€(gè)供貨商戶可提供若干商品,反過(guò)來(lái),一個(gè)特定商品只能屬于一個(gè)供貨商。“供貨商”與“商品”兩個(gè)實(shí)體集的E-R模型如圖1.5(b)所示。3.多對(duì)多的聯(lián)系(m∶n)A中的一個(gè)實(shí)體可以與B中的多個(gè)實(shí)體相聯(lián)系,而B中的一個(gè)實(shí)體也可與A中的多個(gè)實(shí)體相聯(lián)系。例如,“用戶”與“商品”這兩個(gè)實(shí)體集之間的聯(lián)系是多對(duì)多的聯(lián)系,因?yàn)橐粋€(gè)用戶可購(gòu)買多個(gè)商品,反過(guò)來(lái),一個(gè)商品可被多個(gè)用戶購(gòu)買。“用戶”與“商品”兩個(gè)實(shí)體集的E-R模型如圖1.5(c)所示。概念模型圖1.5兩個(gè)實(shí)體集的E-R模型概念模型實(shí)際應(yīng)用中,用戶訂貨產(chǎn)生訂單,在訂單中下單對(duì)應(yīng)商品,并確定數(shù)量。如圖1.6所示。02邏輯模型1.(1∶1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換2.(1∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換3.(m∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換邏輯模型1.(1∶1)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對(duì)于(1∶1)的聯(lián)系,既可單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,也可以不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式。聯(lián)系單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,則由聯(lián)系屬性、參與聯(lián)系的各實(shí)體集的主碼屬性構(gòu)成關(guān)系模式,聯(lián)系不單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,聯(lián)系的屬性及一方的主碼加入另一方實(shí)體集對(duì)應(yīng)的關(guān)系模式中。其主碼可選參與聯(lián)系的實(shí)體集的任一方的主碼。例如,考慮圖1.5(a)描述的“用戶(user”與“收件人(reci)”實(shí)體集關(guān)系模式如下:user(帳戶名,姓名,性別,密碼,手機(jī)號(hào),身份證號(hào),有效期,職業(yè),關(guān)注)reci(手機(jī)號(hào),姓名,常用地址,投遞位置,帳戶名)其中,下橫線表示該字段為主碼。邏輯模型3.(m∶n)聯(lián)系的E-R圖到關(guān)系模式的轉(zhuǎn)換對(duì)于(m∶n)的聯(lián)系,單獨(dú)對(duì)應(yīng)一個(gè)關(guān)系模式,該關(guān)系模式包括聯(lián)系的屬性、參與聯(lián)系的各實(shí)體集的主碼屬性,該關(guān)系模式的主碼由各實(shí)體集的主碼屬性共同組成。例如,圖1.5(c)描述的“用戶(user)”與“商品(commodity)”實(shí)體集之間的聯(lián)系購(gòu)買(buy)可設(shè)計(jì)如下關(guān)系模式:user(帳戶名,姓名,性別,密碼,手機(jī)號(hào),身份證號(hào),有效期,職業(yè),關(guān)注)commodity(商品編號(hào),商品名稱、價(jià)格、庫(kù)存量、商品圖片,供貨商編號(hào))buy(帳戶名,商品編號(hào),數(shù)量)關(guān)系模式buy的主碼是由“帳戶名”和“商品編號(hào)”兩個(gè)屬性組合起來(lái)構(gòu)成的一個(gè)主碼,一個(gè)關(guān)系模式只能有一個(gè)主碼。實(shí)際應(yīng)用中,用戶訂貨產(chǎn)生訂單(orders),然后在訂單中下單對(duì)應(yīng)商品(orderitems),并確定數(shù)量。orders(訂單編號(hào),帳戶名,支付金額,下單時(shí)間)orderitems(訂單編號(hào),商品編號(hào),訂貨數(shù)量,發(fā)貨否)03物理模型物理模型

物理模型是面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。每一種邏輯數(shù)據(jù)模型在實(shí)現(xiàn)時(shí)都有其對(duì)應(yīng)的物理數(shù)據(jù)模型。DBMS為了保證其獨(dú)立性與可移植性,大部分物理數(shù)據(jù)模型的實(shí)現(xiàn)工作由系統(tǒng)自動(dòng)完成,而設(shè)計(jì)者只設(shè)計(jì)索引、聚集等特殊結(jié)構(gòu)。第1章

數(shù)據(jù)庫(kù)基礎(chǔ)——數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)01數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)結(jié)構(gòu)1.B/S架構(gòu)的應(yīng)用系統(tǒng)2.C/S架構(gòu)的應(yīng)用系統(tǒng)3.移動(dòng)客戶端APP數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)結(jié)構(gòu)1.B/S架構(gòu)的應(yīng)用系統(tǒng)基于Web的數(shù)據(jù)庫(kù)應(yīng)用采用三層(瀏覽器/Web服務(wù)器/數(shù)據(jù)庫(kù)服務(wù)器)模式,也稱B/S架構(gòu),如圖1.7所示。其中,瀏覽器(Browser)是用戶輸入數(shù)據(jù)和顯示結(jié)果的交互界面,用戶在瀏覽器表單中輸入數(shù)據(jù),然后將表單中的數(shù)據(jù)提交并發(fā)送到Web服務(wù)器,Web服務(wù)器接收并處理用戶的數(shù)據(jù),通過(guò)數(shù)據(jù)庫(kù)服務(wù)器,從數(shù)據(jù)庫(kù)中查詢需要的數(shù)據(jù)(或把數(shù)據(jù)錄入數(shù)據(jù)庫(kù))回送Web服務(wù)器,Web服務(wù)器把返回的結(jié)果插入HTML頁(yè)面,傳送給客戶端,在瀏覽器中顯示出來(lái)。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)結(jié)構(gòu)2.C/S架構(gòu)的應(yīng)用系統(tǒng)C/S架構(gòu)的應(yīng)用系統(tǒng)要求客戶端上安裝應(yīng)用程序。應(yīng)用程序與數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)之間的關(guān)系如圖1.8所示。數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)結(jié)構(gòu)3.移動(dòng)客戶端APP目前,移動(dòng)客戶端APP應(yīng)用非常流行,但從結(jié)構(gòu)上仍然可認(rèn)為是C/S結(jié)構(gòu)。普通的C/S結(jié)構(gòu)的數(shù)據(jù)庫(kù)應(yīng)用程序安裝在PC機(jī)上,而移動(dòng)客戶端APP安裝在移動(dòng)端(手機(jī))上。后面章節(jié)采用Android平臺(tái)開(kāi)發(fā)MySQL數(shù)據(jù)庫(kù)網(wǎng)上商城商品購(gòu)買APP。移動(dòng)端也可通過(guò)瀏覽器運(yùn)行B/S端應(yīng)用程序。02應(yīng)用系統(tǒng)的數(shù)據(jù)接口1.ODBC數(shù)據(jù)庫(kù)接口2.ADO.NET數(shù)據(jù)庫(kù)接口3.JDBC數(shù)據(jù)庫(kù)接口4.WebService應(yīng)用系統(tǒng)的數(shù)據(jù)接口1.ODBC數(shù)據(jù)庫(kù)接口ODBC即開(kāi)放式數(shù)據(jù)庫(kù)互連(OpenDataBaseConnectivity),是微軟公司推出的一種實(shí)現(xiàn)應(yīng)用程序和關(guān)系數(shù)據(jù)庫(kù)之間通信的接口標(biāo)準(zhǔn)。符合該標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)就可以通過(guò)SQL語(yǔ)句編寫的程序?qū)?shù)據(jù)庫(kù)進(jìn)行操作,但只針對(duì)關(guān)系數(shù)據(jù)庫(kù)。目前,所有的關(guān)系數(shù)據(jù)庫(kù)都符合該標(biāo)準(zhǔn)。ODBC本質(zhì)上是一組數(shù)據(jù)庫(kù)訪問(wèn)API(應(yīng)用程序編程接口),由一組函數(shù)調(diào)用組成,核心是SQL語(yǔ)句。應(yīng)用系統(tǒng)的數(shù)據(jù)接口2.ADO.NET數(shù)據(jù)庫(kù)接口ADO.NET數(shù)據(jù)模型由ADO發(fā)展而來(lái),但它不只是對(duì)ADO的改進(jìn),而是采用了一種全新的技術(shù)。ADO.NET提供了面向?qū)ο蟮臄?shù)據(jù)庫(kù)視圖,并且在其對(duì)象中封裝了許多數(shù)據(jù)庫(kù)屬性和關(guān)系。最重要的是,它通過(guò)多種方式封裝和隱藏了很多數(shù)據(jù)庫(kù)訪問(wèn)的細(xì)節(jié)??梢酝耆恢缹?duì)象在與ADO.NET對(duì)象交互,也不用擔(dān)心數(shù)據(jù)移動(dòng)到另一個(gè)數(shù)據(jù)庫(kù)或者從另一個(gè)數(shù)據(jù)庫(kù)獲得數(shù)據(jù)等細(xì)節(jié)問(wèn)題。圖1.9顯示了通過(guò)ADO.NET訪問(wèn)數(shù)據(jù)庫(kù)的接口模型。應(yīng)用系統(tǒng)的數(shù)據(jù)接口3.JDBC數(shù)據(jù)庫(kù)接口JDBC(JavaDataBaseConnectivity)是JavaSoft開(kāi)發(fā)的,以Java語(yǔ)言編寫的用于數(shù)據(jù)庫(kù)連接和操作的類和接口,可為多種關(guān)系數(shù)據(jù)庫(kù)提供統(tǒng)一的訪問(wèn)方式。通過(guò)JDBC對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)包括4個(gè)主要組件:Java應(yīng)用程序、JDBC驅(qū)動(dòng)器管理器、驅(qū)動(dòng)器和數(shù)據(jù)源。在JDBCAPI中有兩層接口:應(yīng)用程序?qū)雍万?qū)動(dòng)程序?qū)印G罢呤归_(kāi)發(fā)人員可以通過(guò)SQL調(diào)用數(shù)據(jù)庫(kù)和取得結(jié)果,后者處理與具體數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序的所有通信。使用JDBC接口操作數(shù)據(jù)庫(kù)有如下優(yōu)點(diǎn):(1)(2)(3)JDBCAPI與ODBC十分相似,有利于用戶理解。使編程人員從復(fù)雜的驅(qū)動(dòng)器調(diào)用命令和函數(shù)中解脫出來(lái),而致力于應(yīng)用程序功能的實(shí)現(xiàn)。JDBC支持不同的關(guān)系數(shù)據(jù)庫(kù),增強(qiáng)了程序的可移植性。應(yīng)用系統(tǒng)的數(shù)據(jù)接口4.WebServiceWebService能使得運(yùn)行在不同機(jī)器上的不同應(yīng)用無(wú)須借助附加的、專門的第三方軟件或硬件,就可相互交換數(shù)據(jù)或集成。它是自描述、自包含的可用網(wǎng)絡(luò)模塊,并可以執(zhí)行具體的業(yè)務(wù)功能。WebService也很容易部署,為整個(gè)企業(yè)甚至多個(gè)組織之間的業(yè)務(wù)流程的集成提供了一個(gè)通用機(jī)制。第2章MySQL安裝、運(yùn)行和工具——MySQL簡(jiǎn)介MySQL+實(shí)用教程(第4版)MySQL簡(jiǎn)介MySQL有多個(gè)不同用途的版本,其主要區(qū)別如下:(1)MySQLCommunityServer(社區(qū)版),開(kāi)源免費(fèi),但不提供官方技術(shù)支持。(2)MySQLEnterpriseEdition(企業(yè)版),需付費(fèi),可以試用30天。(3)MySQLCluster(集群版),開(kāi)源免費(fèi)。(4)MySQLClusterCGE(高級(jí)集群版),需付費(fèi)。第2章MySQL安裝、運(yùn)行和工具——MySQL8.0安裝與運(yùn)行01安裝包方式安裝1.安裝包方式安裝2.MySQL8.0安裝完成3.MySQL8.0的配置文件4.版本升級(jí)安裝包方式安裝1.安裝包方式安裝在在官方網(wǎng)站下載MySQL8.0安裝包,然后根據(jù)界面信息一步一步進(jìn)行。(1)選擇MySQL8.0的安裝類型。包括:DeveloperDefault(開(kāi)發(fā)者默認(rèn))、Serveronly(只安裝MySQL服務(wù)器)、Clientonly(僅作為客戶端)、Full(完全安裝)和Custom(自定義安裝)。(2)如果選擇Full(完全安裝),可選擇的安裝的組件包括:MySQLServer:MySQL8數(shù)據(jù)庫(kù)服務(wù)器MySQLShell:MySQL命令行工具M(jìn)ySQLRouter:MySQL路由器

MySQLWorkbench:專為MySQL設(shè)計(jì)的集成化桌面軟件MySQLConnectors:ODBC、C++、Java、.NET客戶端程序連接MySQL需要的驅(qū)動(dòng)程序Examplesandtutorials:MySQL例子和教程Documentation:MySQL文檔。安裝包方式安裝(3)在Custom(自定義)安裝類型下,于SelectProductsandFeatures頁(yè)右下方就會(huì)出現(xiàn)“AdvancedOptions”鏈接,可將系統(tǒng)默認(rèn)的MySQL安裝路徑及數(shù)據(jù)存儲(chǔ)目錄設(shè)定自己指定目錄。MySQL8默認(rèn)安裝目錄如下:C:\ProgramFiles\MySQL\MySQLServer8.0若MySQL8.0服務(wù)安裝成功,進(jìn)入“ProductConfiguration”頁(yè),自動(dòng)轉(zhuǎn)入配置階段。(4)在TypeandNetworking頁(yè)配置MySQL服務(wù)器類型和網(wǎng)絡(luò)連接。一般采用系統(tǒng)默認(rèn)配置,其中服務(wù)端口“3306”。如果一臺(tái)計(jì)算機(jī)上安裝一個(gè)以上的MySQL服務(wù)器實(shí)例,需要修改服務(wù)端口。(5)AccountsandRoles頁(yè):設(shè)置root帳戶密碼,筆者設(shè)置密碼為“123456”。(6)WindowsService頁(yè):將MySQL8.0服務(wù)器配置成一個(gè)Windows服務(wù),默認(rèn)服務(wù)名稱為“MySQL80”,讀者也可以自己指定服務(wù)名稱。(7)在InstallationComplete頁(yè)單擊“Finish”按鈕完成MySQL8.0的整個(gè)安裝配置過(guò)程。安裝包方式安裝2.MySQL8.0安裝完成(1)對(duì)于桌面操作系統(tǒng),在MySQL8.0安裝完成后,系統(tǒng)開(kāi)始菜單中產(chǎn)生下列菜單項(xiàng),如圖2.1所示。其中:MySQLConnectorNet:.NET驅(qū)動(dòng)程序。MySQLInstaller-Community:MySQL共享版本的安裝程序,供離線安裝時(shí)使用。通過(guò)它可以增加、修改、更新MySQL及其有關(guān)組件。MySQL8.0CommandLineClient:可進(jìn)入MySQL8.0命令行客戶端窗口,并且直接登錄MySQL。MySQL8.0CommandLineClient-Uncode:進(jìn)入MySQL8.0命令行客戶端窗口,采用Unicode編碼。安裝包方式安裝3.MySQL8.0的配置文件采用MySQL8.0的常規(guī)安裝后,在其安裝目錄中沒(méi)有my.ini配置文件,但如果需要修改系統(tǒng)的默認(rèn)設(shè)置,一般在my.ini配置文件中進(jìn)行。MySQL啟動(dòng)時(shí)在其安裝目錄中查找該文件,如果找到,就用my.ini配置文件中指定的內(nèi)容替換默認(rèn)值。Linux下MySQL的配置文件是f,一般會(huì)放在/etc/f,/etc/mysql/f。如果找不到,可以用find命令查找。4.版本升級(jí)已經(jīng)安裝的MySQL8.0.x,如果小的版本號(hào)x不同,重新安裝就可以對(duì)其小版本進(jìn)行更新。02MySQL8.0運(yùn)行1.啟動(dòng)MySQL服務(wù)2.本地連接MySQL8系統(tǒng)3.操作MySQL4.提升根用戶權(quán)限MySQL8.0運(yùn)行1.啟動(dòng)MySQL服務(wù)在計(jì)算機(jī)系統(tǒng)中,MySQL是以服務(wù)實(shí)例的方式工作的,故要運(yùn)行MySQL必須首先保證服務(wù)已經(jīng)啟動(dòng)。通常在安裝好MySQL后,MySQL服務(wù)會(huì)自行啟動(dòng),如果沒(méi)有啟動(dòng),用戶可通過(guò)Windows任務(wù)管理器、計(jì)算機(jī)管理窗口和Windows命令行啟動(dòng)MySQL服務(wù)。2.本地連接MySQL8系統(tǒng)步驟如下:(1)打開(kāi)Windows命令行,進(jìn)入Windows的命令行窗口。(2)進(jìn)入MySQL安裝的bin目錄有兩種方法:①直接通過(guò)“cd目錄名”命令逐級(jí)進(jìn)入;②設(shè)置系統(tǒng)環(huán)境變量讓操作系統(tǒng)自動(dòng)識(shí)別。在進(jìn)入Windows命令行窗口后,初始的當(dāng)前目錄為C:\Users\Administrator>,MySQL默認(rèn)安裝后,其命令行客戶端文件mysql.exe存放在C:\ProgramFiles\MySQL\MySQLServer8.0\bin目錄中,我們指定MySQL8安裝在E:\MySQL8\mysql-8.0.21-winx64目錄中,需要用“cd目錄名”命令,將當(dāng)期目錄變成MySQL安裝的bin目錄:C:\Users\Administrator>E:E:\>cd\MySQL8\mysql-8.0.21-winx64\binE:\MySQL8\mysql-8.0.21-winx64\bin>這樣,下面執(zhí)行mysql.exe文件時(shí),操作系統(tǒng)在當(dāng)前目錄中才能找到。MySQL8.0運(yùn)行(3)連接本地MySQL8服務(wù)器登錄MySQL系統(tǒng)。有兩種方法:①由Windows命令行連接登入MySQL服務(wù)器。例如:E:\MySQL8\mysql-8.0.21-winx64\bin>mysql-uroot-pEnterpassword:123456其中,-uroot啟動(dòng)選項(xiàng)表示以root用戶(安裝后就存在)登錄MySQL,密碼“123456”是筆者安裝MySQL時(shí)設(shè)定的。用戶輸入的密碼字符顯示“*”,回車后顯示MySQL登錄歡迎屏,如圖2.2所示。②由“MySQL8.0CommandLineClient”客戶端窗口登入。通過(guò)選擇Windows開(kāi)始菜單中的“MySQL8.0CommandLineClient”菜單項(xiàng)可進(jìn)入MySQL8.0命令行客戶端窗口,并且直接登錄MySQL。MySQL8.0運(yùn)行3.操作MySQL在MySQL提示符下就可以輸入MySQL命令操作數(shù)據(jù)庫(kù),下面初步練習(xí)一下基本的MySQL語(yǔ)句。系統(tǒng)進(jìn)入MySQL的命令行模式,命令提示符為“mysql>”,此后可以輸入MySQL命令(不區(qū)分大小寫),這些命令是由MySQL8數(shù)據(jù)庫(kù)服務(wù)器解析執(zhí)行的。MySQL8.0安裝后,自動(dòng)生成了4個(gè)系統(tǒng)使用的數(shù)據(jù)庫(kù),下面輸入命令,顯示系統(tǒng)數(shù)據(jù)庫(kù)名稱。mysql>SHOWDATABASES;打回車,命令執(zhí)行結(jié)果如圖2.3所示。命令后面如果沒(méi)有輸入“;”就直接回車,表示命令還沒(méi)有結(jié)束,可以在下一行繼續(xù)輸入。一般在命令太長(zhǎng)一行輸不完時(shí)采用,如圖2.4所示。MySQL8.0運(yùn)行說(shuō)明:(1)上面列出的是MySQL8.0系統(tǒng)數(shù)據(jù)庫(kù),在安裝MySQL8.0后就產(chǎn)生了。(2)實(shí)際應(yīng)用中,用戶根據(jù)需要可以創(chuàng)建多個(gè)不同的數(shù)據(jù)庫(kù),同時(shí)系統(tǒng)有多個(gè)數(shù)據(jù)庫(kù),為了確認(rèn)其后的操作在哪個(gè)數(shù)據(jù)庫(kù)中進(jìn)行,可以使用下列語(yǔ)句指定當(dāng)前數(shù)據(jù)庫(kù):USE數(shù)據(jù)庫(kù)名;(3)輸入“QUIT”回車,可退出MySQL命令狀態(tài)返回Windows的命令行狀態(tài)。MySQL8.0運(yùn)行4.提升根用戶權(quán)限在操作MySQL時(shí),由于不同操作系統(tǒng)默認(rèn)的權(quán)限差異可能導(dǎo)致用戶無(wú)法使用某些功能,為避免給初學(xué)者造成不必要的困擾,建議采用下列方法賦予MySQL系統(tǒng)根用戶(即默認(rèn)名為root的用戶)最高權(quán)限。在MySQL命令行模式下依次輸入執(zhí)行如下命令:USEmysql;CREATEUSER'root'@'%'identifiedby'ross123456';GRANTALLPRIVILEGESon*.*to'root'@'%';FLUSHPRIVILEGES;說(shuō)明:(1)USEmysql:打開(kāi)系統(tǒng)自帶的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)的名稱為mysql,對(duì)MySQL的權(quán)限控制就保存在該數(shù)據(jù)庫(kù)中。(2)CREATEUSER...:創(chuàng)建root用戶,root用戶的密碼“ross123456”是筆者安裝MySQL時(shí)設(shè)置的,讀者執(zhí)行命令時(shí)請(qǐng)使用自己設(shè)置的密碼。注意,該命令執(zhí)行后,不能再重復(fù)執(zhí)行,否則會(huì)顯示錯(cuò)誤信息。(3)GRANTALL…:為root用戶分配所有權(quán)限。(4)FLUSHPRIVILEGES:刷新MySQL的系統(tǒng)權(quán)限相關(guān)表,讓root分配的權(quán)限立即起作用。否則,重新啟動(dòng)mysql服務(wù)器,才能使新設(shè)置生效。-MySQL8.0運(yùn)行執(zhí)行成功的命令行窗口如圖2.5所示。第2章MySQL安裝、運(yùn)行和工具——MySQL操作工具01MySQL客戶端工具M(jìn)ySQL客戶端工具在安裝“MySQLServer8.0”后,系統(tǒng)默認(rèn)安裝MySQL8.0CommandLineClient(客戶端命令行工具)。通過(guò)該工具,就可以使用MySQL命令操作MySQL。但僅僅是只能在安裝MySQLServer8.0的主機(jī)(一般是服務(wù)器)上進(jìn)行。如果需要在其他主機(jī)上操作MySQL,就需要在其他主機(jī)上安裝MySQL8.0CommandLineClient(客戶端命令行工具)??梢栽诎惭bMySQL8.0時(shí),選擇安裝類型為“Client”,系統(tǒng)僅僅安裝MySQL8.0CommandLineClient。安裝完成后,Windows開(kāi)始菜單顯示如圖2.6所示。02MySQL第三方界面工具1.MySQL的界面工具2.MySQL的圖形化界面工具:NavicatMySQL第三方界面工具1.MySQL的界面工具M(jìn)ySQL的界面工具可分為兩大類:圖形化客戶端和基于Web的管理工具。(1)圖形化客戶端這類工具采用C/S架構(gòu),用戶通過(guò)安裝在桌面計(jì)算機(jī)上的客戶端軟件連接并操作后臺(tái)的MySQL數(shù)據(jù)庫(kù),原理如圖2.7所示,客戶端是圖形化用戶界面(GUI)。(2)基于Web的管理工具這類工具采用B/S架構(gòu),用戶計(jì)算機(jī)上無(wú)須安裝客戶端,管理工具運(yùn)行于Web服務(wù)器上,見(jiàn)圖2.8所示。用戶機(jī)器只要帶有瀏覽器,就能以訪問(wèn)Web頁(yè)的方式操作MySQL數(shù)據(jù)庫(kù)中的數(shù)據(jù)。MySQL第三方界面工具2.MySQL的圖形化界面工具:Navicat(1)創(chuàng)建連接要操作MySQL,首先需要?jiǎng)?chuàng)建MySQL的連接,如圖2.9所示。MySQL第三方界面工具其中:連接名:是NavicatforMySQL自己定義的連接MySQL服務(wù)器的名稱。一個(gè)MySQL可能有不同用戶訪問(wèn)它,不同用戶因?yàn)闄?quán)限不同,需要?jiǎng)?chuàng)建不同的連接。在系統(tǒng)開(kāi)發(fā)時(shí)可能使用一個(gè)以上的MySQL服務(wù)器,操作不同的MySQL服務(wù)器,也需要?jiǎng)?chuàng)建不同的連接。主機(jī)名或IP地址:指定MySQL服務(wù)器對(duì)應(yīng)的計(jì)算機(jī)。如果MySQL服務(wù)器就在本機(jī)(筆者主機(jī)名HUAWEI)上,主機(jī)名可以使用HUAWEI,也可使用localhost或IP地址。如果MySQL服務(wù)器在當(dāng)前計(jì)算機(jī)所在局域網(wǎng)上,就使用服務(wù)器的主機(jī)名或IP地址。端口:我們?cè)诎惭bMySQL8.0時(shí),選擇默認(rèn)通過(guò)“TCP/IP”協(xié)議3306端口號(hào)訪問(wèn)MySQL服務(wù)器,所以這里指定端口號(hào)3306。MySQL第三方界面工具(2)打開(kāi)連接雙擊創(chuàng)建的連接即可打開(kāi)。雙擊上面創(chuàng)建的連接(例如:M8-Local),系統(tǒng)顯示該連接對(duì)應(yīng)的MySQL服務(wù)器上包含的數(shù)據(jù)庫(kù)(一開(kāi)始僅僅包含系統(tǒng)數(shù)據(jù)庫(kù))。單擊一個(gè)數(shù)據(jù)庫(kù),左邊就會(huì)以樹(shù)形結(jié)構(gòu)顯示其中包含的各種對(duì)象類型,右邊顯示當(dāng)前指定類型中的各種對(duì)象,如圖2.10所示。(3)顯示連接屬性。選擇連接名,右擊,在快捷菜單中單擊“連接屬性”。第2章MySQL安裝、運(yùn)行和工具——數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作1.數(shù)據(jù)庫(kù)創(chuàng)建CREATEDATABASE數(shù)據(jù)庫(kù)名[選項(xiàng)]2.表創(chuàng)建和記錄簡(jiǎn)單操作(1)表創(chuàng)建CREATETABLE表名(

列定義, ... [表屬性])[表選項(xiàng)]其中:列定義描述列的屬性,表屬性和表選項(xiàng)描述表的特征,不寫就采用默認(rèn)值。表創(chuàng)建后,可以通過(guò)“ALTERTABLE…”語(yǔ)句修改其屬性??梢酝ㄟ^(guò)“SHOWCREATETABLE表名”語(yǔ)句顯示其創(chuàng)建表的屬性。可以通過(guò)“DROPTABLE表名”語(yǔ)句刪除表。數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作(2)向表中插入記錄INSERTINTO表名[(列名,...)]VALUES(值,...)(3)修改表符合條件的記錄UPDATE表名 SET列名=值,... WHERE條件若沒(méi)有WHERE子句,則修改所有記錄。(4)刪除表符合條件的記錄DELETEFROM表名WHERE條件若沒(méi)有WHERE子句,則刪除所有記錄。數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作3.表記錄數(shù)據(jù)查詢SELECT語(yǔ)句可以從表中查詢符合條件的行和選擇輸出列。SELECT

輸出列名表 #“*”表示所有列 [FROM表名] #指定查詢的表 [WHERE條件] #指定查詢條件 [ORDERBY列名] #指定輸出記錄排列順序其中,“#”表示注釋。數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作【例2.1】臨時(shí)實(shí)例數(shù)據(jù)庫(kù)(mydb)和表創(chuàng)建及其簡(jiǎn)單操作。1)編寫代碼段。CREATEDATABASEUSEmydb; #(a)DROPTABLEIFEXISTSmytab; #(b)CREATETABLEmytab #(c)( t1 int, t2 char(20), t3 float(6,2));INSERTINTOmytabVALUES #(d) (1,'A',3.45), (2,'B',3.99), (3,'A',10.99), (1,'B',1.45);SELECT*FROMmytabORDERBYt1; #(e.1)SELECTt1,t3FROMmytabWHEREt2='A'; #(e.2)DELETEFROMmytabWHEREt2='A'; #(f.1)SELECT*FROMmytab; #(f.2)SELECTcount(*)FROMmytab; #(g)數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作說(shuō)明:(a)USEmydb:打開(kāi)mydb數(shù)據(jù)庫(kù)。(b)DROPTABLEIFEXISTSmytab:如果mytab表存在,則刪除它。這樣首次執(zhí)行沒(méi)有mytab表,本語(yǔ)句不會(huì)出錯(cuò)。重復(fù)執(zhí)行這段SQL語(yǔ)句也不會(huì)由于mydb數(shù)據(jù)庫(kù)中mytab表已經(jīng)存在而出錯(cuò)。(c)CREATETABLEmytab(...):定義的mytab表包含下面3列:t1int:整數(shù)類型。t2char(20):定長(zhǎng)20個(gè)字符。t3float(6,2):浮點(diǎn)數(shù)類型,總的顯示長(zhǎng)度6位,含2位小數(shù)。(d)INSERTINTOmytabVALUES…:向mytab表插入4條記錄。(e)SELECT*FROMmytabORDERBYt1:查詢mytab表的所有記錄,共有4條記錄,按照t1列從小到大排序輸出顯示所有列。如果需要輸出項(xiàng)按t1列從大到小排序需要“ORDERBYt1DESC”。(f)DELETEFROMmytabWHEREt2='A':刪除符合t2='A'的2條記錄。SELECT*FROMmytab:查詢所有記錄。顯示剩余的2條記錄,按照插入記錄時(shí)的先后順序排列。(g)SELECTcount(*)FROMmytab:顯示mytab表的記錄個(gè)數(shù)。數(shù)據(jù)庫(kù)和表創(chuàng)建及簡(jiǎn)單操作2)在Navicat中執(zhí)行該代碼段。打開(kāi)Navicat→連接本機(jī)MySQL8→打開(kāi)連接→單擊一個(gè)數(shù)據(jù)庫(kù)→展開(kāi)該數(shù)據(jù)庫(kù)對(duì)象類型→單擊一個(gè)對(duì)象類型(例如表)→單擊上面工具欄“查詢”按鈕→單擊“新建查詢”按鈕,在“查詢編輯器”中輸入上述代碼段,單擊“運(yùn)行”,該段SQL語(yǔ)句執(zhí)行結(jié)果如圖2.11所示。

第3章

數(shù)據(jù)類型——數(shù)值類型及實(shí)例MySQL+實(shí)用教程(第4版)MySQL8.0包含豐富的數(shù)據(jù)類型,可以方便處理各種數(shù)據(jù)。系統(tǒng)數(shù)據(jù)類型如表3.1所示。數(shù)據(jù)類型符號(hào)標(biāo)識(shí)整數(shù)類型tinyint,smallint,mediumint,int,bigint向下兼容:bool(boolean)實(shí)數(shù)類型float,double,decimal,numeric日期與時(shí)間類型year,time,date,datetime,timestamp字符串類型char,varchar,tinytext,text,mediumtext,longtextbit,binary,varbinary,tinyblob,blob,mediumblob,longblob枚舉、集合類型enum,setJSON數(shù)據(jù)類型json空間數(shù)據(jù)類型point,multipoint,polygon,multipolygon,geometry,geometrycollection,linestring,multilinestring,01整數(shù)類型整數(shù)類型整數(shù)類型可表示有符號(hào)或無(wú)符號(hào)的整數(shù)數(shù)值,其最大值和最小值(含符號(hào)位)確定了默認(rèn)的顯示位數(shù)。表3.2列出了MySQL中所有的整數(shù)類型主要屬性。數(shù)據(jù)類型字節(jié)數(shù)有符號(hào)范圍無(wú)符號(hào)范圍tinyint1-128~127(-27~27-1)0~255(0~28-1)smallint2-32768~32767(-215~215-1)0~65535(0~216-1)mediumint3-8388608~8388607(-223~223-1)0~16777215(0~224-1)intinteger4-2147483648~2147483647(-231~231-1)0~4294967295(0~232-1)bigint8±9.22×1018(-263~263-1)0~1.84×1019(0~264-1)(1)上表“數(shù)據(jù)類型”定義的都是有符號(hào)的,加上unsigned關(guān)鍵字,定義成無(wú)符號(hào)的類型。(2)MySQL中是沒(méi)有布爾類型的,但為了兼容SQL標(biāo)準(zhǔn),也可以定義聲明bool(boolean)類型,但它們最終都會(huì)被轉(zhuǎn)換成tinyint(1)類型存儲(chǔ)。02實(shí)數(shù)類型1.浮點(diǎn)數(shù)2.定點(diǎn)數(shù)3.數(shù)值顯示長(zhǎng)度實(shí)數(shù)類型1.浮點(diǎn)數(shù)浮點(diǎn)數(shù)又有兩種格式:?jiǎn)尉雀↑c(diǎn)數(shù)(float)和雙精度浮點(diǎn)數(shù)(double),遵循IEEE754標(biāo)準(zhǔn)。real是double的同義詞,除非啟用了real_as_float模式才能作為單精度浮點(diǎn)數(shù)使用。在IEEE754標(biāo)準(zhǔn)下,浮點(diǎn)格式主要分為四種類型,即單精度格式、雙精度格式、擴(kuò)展單精度格式和擴(kuò)展雙精度格式。其中32位單精度格式與64位雙精度格式作為基礎(chǔ)格式更為常用,擴(kuò)展格式則有特殊目的,一般對(duì)用戶透明。浮點(diǎn)格式可分為符號(hào)位s、指數(shù)位e以及尾數(shù)位f三部分,如圖3.1所示。實(shí)數(shù)類型2.定點(diǎn)數(shù)定點(diǎn)數(shù)有decimal和numeric兩種類型,在MySQL中,numeric被實(shí)現(xiàn)為decimal,因此兩者具有相同的性質(zhì)。decimal類型通常寫為decimal(m,d),用于存儲(chǔ)必須為確切精度的數(shù)值,占用m+2字節(jié)空間。其中:m:精度,表示總共的位數(shù),取值范圍1~65,取0時(shí)會(huì)被設(shè)為默認(rèn)值,超出范圍會(huì)報(bào)錯(cuò)。m的默認(rèn)取值為10。d:標(biāo)度(d≤m),表示小數(shù)的位數(shù),取值范圍0~30,超出范圍會(huì)報(bào)錯(cuò)。d的默認(rèn)取值為0。3.數(shù)值顯示長(zhǎng)度創(chuàng)建表的時(shí)候,MySQL會(huì)為每種數(shù)值類型設(shè)定默認(rèn)的長(zhǎng)度,這個(gè)默認(rèn)長(zhǎng)度值是根據(jù)該類型所能表示取值范圍內(nèi)的最大數(shù)值位數(shù)確定的,有符號(hào)的整數(shù)類型tinyint、smallint和int在其取值范圍內(nèi)最大可能的數(shù)值位數(shù)分別為3、5、11,這就是它們的默認(rèn)長(zhǎng)度。實(shí)數(shù)類型【例3.1】定義類型設(shè)置的長(zhǎng)度與顯示長(zhǎng)度的關(guān)系。USEmydb;DROPTABLEIFEXISTStest;CREATETABLEtest( i1 smallint, i2 smallint(3), f1 float, f2 float(6,2), f3 float(9,3), d1 decimal(9,3), c1 float(10,2) AS(f3*10), c2 decimal(10,2) AS(d1*10));INSERTINTOtest(i1,i2,f1,f2,f3,d1) VALUES(12345,-12345,1234567,1234.567,123456.734,123456.734);SELECT*FROMtest;實(shí)數(shù)類型運(yùn)行結(jié)果如圖3.2所示。說(shuō)明:(1)i1smallint列:最大長(zhǎng)度為5位,123456就超過(guò)表達(dá)范圍。(2)i2smallint(3)列:雖然定義3位顯示長(zhǎng)度,但-123456沒(méi)有超過(guò)表達(dá)范圍仍然可以存儲(chǔ)。(3)f1float列:最大有效位數(shù)6位,無(wú)法精確表達(dá)1234567,而只能將第7位四舍五入為123457存儲(chǔ)。(4)f2float(6,2)列:精度6位、小數(shù)2位,整數(shù)部分只能表達(dá)4位,超過(guò)無(wú)法表達(dá)。小數(shù)后3位四舍五入。(5)f3float(9,3)列:精度9位、小數(shù)3位,整數(shù)部分可表達(dá)6位,超過(guò)無(wú)法表達(dá)。即使精度定義超過(guò)9位,整數(shù)部分也不能超過(guò)6位,因?yàn)樽畲笥行粩?shù)6位。(6)計(jì)算列c1:因?yàn)槌^(guò)了float最大有效位數(shù)6位,數(shù)值計(jì)算結(jié)果就不準(zhǔn)確了。(7)計(jì)算列c2:定點(diǎn)數(shù)decimal沒(méi)有最大有效位數(shù)只有最大表達(dá)范圍,因?yàn)樵谄浔磉_(dá)范圍,計(jì)算結(jié)果準(zhǔn)確。03位

型位型【例3.2】表位(bit)型類型列存儲(chǔ)數(shù)據(jù)測(cè)試。(1)創(chuàng)建測(cè)試表,bit類型列可以顯式指定位長(zhǎng),也可不指定。USEmydb;DROPTABLEIFEXISTStest;CREATETABLEtest( b1 bit, b2 bit(6));位型(3)當(dāng)插入數(shù)據(jù)的位數(shù)超出定義的位長(zhǎng),在嚴(yán)格模式下將被拒絕并提示錯(cuò)誤,非嚴(yán)格模式時(shí),當(dāng)超出位長(zhǎng),從低位(右)起往高位取定義位長(zhǎng)的串,若超出部分(左)子串中含1,則存儲(chǔ)定義長(zhǎng)度的全1串;否則,存儲(chǔ)從低位起取到的定義位長(zhǎng)的串。(2)插入bit型數(shù)據(jù)其實(shí)就是存入二進(jìn)制的值,類似010110??梢栽赟QL語(yǔ)句中直接寫二進(jìn)制串,也可以使用b'x'符號(hào),其中x是使用0和1編寫的二進(jìn)制值。INSERTINTOtest(b1,b2)VALUES(0,1);INSERTINTOtest(b1,b2)VALUES(1,001);INSERTINTOtest(b1,b2)VALUES(0,b'101');SELECT*FROMtest;運(yùn)行結(jié)果如圖3.3所示。第3章

數(shù)據(jù)類型——日期與時(shí)間類型及實(shí)例日期與時(shí)間類型及實(shí)例MySQL8.0的日期時(shí)間類型較為豐富,能表達(dá)多種多樣不同格式的日期時(shí)間信息。日期時(shí)間類型及其主要屬性如表3.3所示。類型名格

式日

圍存儲(chǔ)空間yearyyyy1901~21551字節(jié)timehh:mm:ss-838:59:59~838:59:593字節(jié)dateyyyy-mm-dd1000-01-01~9999-12-313字節(jié)datetimeyyyy-mm-ddhh:mm:ss1000-01-0100:00:00~9999-12-3123:59:598字節(jié)timestampyyyy-mm-ddhh:mm:ss1970-01-0100:00:01utc~2038-01-1903:14:07utc4字節(jié)日期與時(shí)間類型及實(shí)例1.年(year)year(4)是四位數(shù)格式的一年。MySQL以yyyy格式顯示年份值,但允許使用字符串或數(shù)字將值賦給數(shù)據(jù)庫(kù)表year類型列。值顯示為1901到2155或0000。2.日期[時(shí)間]日期[時(shí)間]類型包含了date、datetime和timestamp這3種子類型。(1)date:僅表示一個(gè)日期,支持的范圍是“1000-01-01”到“9999-12-31”。(2)datetime:表示日期和時(shí)間的組合,支持的范圍是“1000-01-0100:00:00.000000”到“9999-12-3123:59:59.999999”。(3)timestamp:表示一個(gè)時(shí)間戳,能夠自動(dòng)存儲(chǔ)記錄修改的時(shí)間,范圍是“1970-01-0100:00:01.000000UTC”到“2038-01-1903:14:07.999999UTC”。其中,UTC(UniversalTimeCoordinated)為世界標(biāo)準(zhǔn)時(shí)間,時(shí)間戳不能表示值'1970-01-0100:00:00',因?yàn)樗扔陂_(kāi)始的0秒,而值0保留用于表示'00:00-00-0000:00:00'(即"0"時(shí)間戳值),將它設(shè)為null默認(rèn)為當(dāng)前的日期和時(shí)間。日期與時(shí)間類型及實(shí)例3.時(shí)間(time)(1)表示一段時(shí)間,范圍是'-838:59:59.000000'到'838:59:59.000000'。MySQL以'hh:mm:ss[.微秒]'格式顯示時(shí)間值,并允許使用字符串或數(shù)值兩種方式為時(shí)間列分配值??梢越o出0到6長(zhǎng)度范圍內(nèi)的可選fsp值,以指定小數(shù)秒精度。(2)如果開(kāi)啟了嚴(yán)格模式(STRICT_TRANS_TABLES),并且年月日中任何一個(gè)可為0,但不允許插入零日期(NO_ZERO_DATE),'0000-00-00'除外。SETSQL_MODE='STRICT_TRANS_TABLES,NO_ZERO_DATE';(3)帶冒號(hào)字符串表示時(shí)間,最常見(jiàn)的是以標(biāo)準(zhǔn)的'hh:mm:ss'格式檢索和顯示時(shí)間值,對(duì)于較大的小時(shí)值可采用'hhh:mm:ss'或'dhh:mm:ss'格式。此外,MySQL還支持一些簡(jiǎn)短的“非嚴(yán)格”語(yǔ)法,如:'hh:mm'、'dhh:mm'、'dhh'或'ss'等(這里d表示日,取值范圍0~31)。(4)'hhmmss'格式的沒(méi)有冒號(hào)間隔符的字符串表示時(shí)間,與此對(duì)應(yīng)的數(shù)值也可表達(dá)時(shí)間。日期與時(shí)間類型及實(shí)例【例3.3】日期、時(shí)間類型插入、存儲(chǔ)和顯示。USEmydb;DROPTABLEIFEXISTStest;CREATETABLEtest(

日期 date,

日期時(shí)間 datetime,

時(shí)間戳 timestamp,

時(shí)間 time);INSERTINTOtest VALUES('1983-09-2507:25:16','1983-9-257:25:16','2013-11-3','8:5:9');#(a)INSERTINTOtest VALUES('19830925','19830925072516','20130113','144908'); #(b)INSERTINTOtest VALUES('99-9-25','990925072516','131103','29:28'); #(c)INSERTINTOtes VALUES(990925,19990925072516,19700101080001,'520'); #(d)SELECT*FROMtest;日期與時(shí)間類型及實(shí)例運(yùn)行結(jié)果如圖3.4所示。說(shuō)明:(a)用'yyyy-mm-dd'或'yyyy-mm-ddhh:mm:ss'標(biāo)準(zhǔn)字符串格式表示日期時(shí)間值,其中,yyyy表示年,mm表示月,dd表示日,hh表示時(shí),mm表示分,ss表示秒。(b)用不含間隔符的字符串格式表示日期時(shí)間,形如'yyyymmdd'或'yyyymmddhhmmss',其中的字符含義與標(biāo)準(zhǔn)字符串的相同,但這種寫法中的每個(gè)字符位置須嚴(yán)格對(duì)應(yīng),不可再用單獨(dú)一位數(shù)表示小于10的值,例如,日期'2013-11-3'必須寫成'20131103',簡(jiǎn)寫成'2013113'系統(tǒng)就無(wú)法識(shí)別,只能插入默認(rèn)“零”值。(c)用兩位年值的字符串格式表示日期時(shí)間,可以包含也可不含間隔符,例如,'yy-mm-dd'、'yymmdd'、'yymmddhhmmss'等,其中兩位年值的轉(zhuǎn)換規(guī)則同前“year”類型,'01'~'69'對(duì)應(yīng)'2001'~'2069','70'~'99'對(duì)應(yīng)'1970'~'1999'。(d)這是以數(shù)字格式表示的日期時(shí)間,如果一個(gè)數(shù)字是8或14位長(zhǎng),則假定為yyyymmdd或yyyymmddhhmmss格式,前4位數(shù)表示年;如果數(shù)字是6或12位長(zhǎng),則假定為yymmdd或yymmddhhmmss格式,前2位數(shù)表示年。其它數(shù)字被解釋為仿佛用零填充到了最近的長(zhǎng)度。第3章

數(shù)據(jù)類型——字符串類型及實(shí)例01文本字符串型1.常用的文本字符串型2.字符和文本存儲(chǔ)舉例文本字符串型MySQL8中根據(jù)保存的文本長(zhǎng)度用途不同,可以選擇不同的文本數(shù)據(jù)類型。表3.4列出了MySQL文本字符串?dāng)?shù)據(jù)類型及其屬性。類

稱存

儲(chǔ)

間(實(shí)際字符數(shù)L)最

數(shù)char(m)m255varchar(m)L+165535tinytext(m)L+1255text(m)L+265535mediumtext(m)L+316777215longtext(m)L+44294967295(4GB)enum1(≤255個(gè)枚舉)2(≤65535個(gè)枚舉)65535set1、2、3、4或864個(gè)成員文本字符串型1.常用的文本字符串型最常用的文本字符串型包括char、varchar及各種text類型。(1)固定長(zhǎng)度字符串型:charchar通常定義成char(m)的形式,m是字符串長(zhǎng),m≤255,實(shí)際占用的存儲(chǔ)空間為m*n,n為一個(gè)字符在字符集中的字節(jié)數(shù)。當(dāng)保存時(shí)字符個(gè)數(shù)L不足m,則在右側(cè)填充空格,以達(dá)到指定的長(zhǎng)度m。當(dāng)檢索到char(m)值時(shí),尾部的空格將被刪除。SQL語(yǔ)句定義表時(shí),可不設(shè)定長(zhǎng)度,默認(rèn)m值為1。(2)可變長(zhǎng)度字符串型:varcharvarchar通常定義成varchar(m)存儲(chǔ),m表示定義的字符串長(zhǎng)度,m≤65535。當(dāng)保存時(shí)字符個(gè)數(shù)L不足m,實(shí)際存儲(chǔ)的字符串為L(zhǎng)個(gè)字符和一個(gè)字符串結(jié)束符。varchar在值保存和檢索時(shí)尾部的空格仍保留。SQL語(yǔ)句定義表時(shí),必須用(m)指定長(zhǎng)度。(3)變長(zhǎng)度文本型text也是變長(zhǎng)字符串類型,其存儲(chǔ)需求取決于字符串值的實(shí)際長(zhǎng)度而不是最大可能尺寸。text類型又分為4種(tinytext、text、mediumtext和longtext),不同種類的text類型的存儲(chǔ)空間和最大數(shù)據(jù)長(zhǎng)度不同。文本字符串型2.字符和文本存儲(chǔ)舉例【例3.4】創(chuàng)建表,包含3種類型的文本字符串列,然后對(duì)其進(jìn)行測(cè)試。1)創(chuàng)建測(cè)試表,包含3種類型的文本字符串列。USEmydb;DROPTABLEIFEXISTStest;CREATETABLEtest( c1 char(8), c2 varchar(8), c3 text);2)插入帶空格的字符串。INSERTINTOtest VALUES('hello','hello','hello');文本字符串型3)插入數(shù)值、數(shù)字、中英文等各種類型數(shù)據(jù)。DELETEFROMtest;INSERTINTOtest VALUES(3.14,12345678,2.718281828459); #(a)SETSESSIONsql_mode='';INSERTINTOtest VALUES(3.1415926,1234567890,2.718E02); #(b)INSERTINTOtest VALUES('Hi中國(guó)夢(mèng)我的夢(mèng)','2022北京冬奧','Hello!世界!'); #(c)SELECT*FROMtest;運(yùn)行結(jié)果如圖3.5所示。說(shuō)明:(a)對(duì)于不超過(guò)類型長(zhǎng)度的數(shù)值,MySQL將其以原樣字符串形式存儲(chǔ)。(b)對(duì)于超過(guò)類型長(zhǎng)度的數(shù)值,在嚴(yán)格模式下插入會(huì)出錯(cuò);非嚴(yán)格模式下,MySQL將其截?cái)嘀炼x長(zhǎng)度存儲(chǔ)。以科學(xué)記數(shù)法表示的數(shù)值,MySQL會(huì)自動(dòng)計(jì)算出其值并保存為字符串形式。(c)MySQL8.0中每個(gè)中文漢字與單個(gè)英文字母或數(shù)字一樣,都只占一個(gè)字符長(zhǎng)度。02字符集編碼1.MySQL8字符集2.MySQL8字符集系統(tǒng)變量字符集編碼1.MySQL8字符集在MySQL8中,不同的編碼方案對(duì)應(yīng)不同的紙飛機(jī),比較常用字符集如下:(1)ascii字符集:基于羅馬字母表的一套ASCII碼字符集,它采用1個(gè)字節(jié)的低7位表示字符,高位始終為0。(2)latin1字符集:相對(duì)于ASCII碼字符集做了擴(kuò)展,仍然使用一個(gè)字節(jié)表示字符,但啟用了高位,擴(kuò)展了字符集的表示范圍。(3)gb2312字符集:是GB2312-80中文編碼的字符集。(4)gbk字符集:支持中文,字符有一字節(jié)編碼和兩字節(jié)編碼兩種方式。(5)utf8字符集:采用1~3個(gè)字節(jié)表示UTF-8字符。utf8字符集表示Unicode中的基本多文種平面(BMP),任何不在BMP的Unicode字符都無(wú)法使用utf8字符集存儲(chǔ),包括Emoji表情和很多不常用的漢字以及任何新增的Unicode字符等。而Emoji是一種特殊的Unicode編碼,常見(jiàn)于iOS和Android手機(jī)上(如微信程序)。(6)utf8mb4字符集:MySQL8默認(rèn)字符集為utf8mb4,采用1~4個(gè)字節(jié)表示UTF-8編碼的所有字符,還擴(kuò)展了其他字符??赏ㄟ^(guò)下列語(yǔ)句:SHOWCHARACTERSET;字符集編碼【例3.5】創(chuàng)建表,設(shè)置4個(gè)列分別采用4種不同語(yǔ)言文字的字符集編碼,然后對(duì)其進(jìn)行操作。1)創(chuàng)建測(cè)試表。USEmydb;DROPTABLEIFEXISTStest;CREATETABLEtest( id int, c1 char(10) CHARACTERSETutf8, #通用編碼 c2 char(10) CHARACTERSETgb2312, #中文編碼 c3 char(10) CHARACTERSETsjis, #日文編碼 c4 char(10) CHARACTERSETeuckr #韓文編碼);說(shuō)明:創(chuàng)建表時(shí)如果不顯式指定字符集,MySQL會(huì)采用默認(rèn)的字符集。MySQL5及更早前版本默認(rèn)字符集是utf8,從MySQL8.0開(kāi)始,默認(rèn)采用增強(qiáng)的utf8mb4編碼,它是對(duì)utf8的擴(kuò)充,為每個(gè)字符分配4字節(jié)長(zhǎng)度,可以表示Unicode中一些不常用的字符。字符集編碼2)輸入字符集測(cè)試。INSERTINTOtest(id,c1,c2) VALUES(1,'駿馬奔騰','駿馬奔騰');INSERTINTOtest(id,c1,c3) VALUES(2,'駿馬ペンティアム','駿馬ペンティアム');INSERTINTOtest(id,c1,c4) VALUES(3,'??????','??????');SELECT*FROMtest;INSERTINTOtest(id,c3)VALUES(4,'駿馬奔騰');INSERTINTOtest(id,c4)VALUES(5,'駿馬奔騰');INSERTINTOtest(id,c2)VALUES(6,'駿馬ペンティアム');INSERTINTOtest(id,c4)VALUES(7,'馬に乘る');INSERTINTOtest(id,c2)VALUES(8,'??????');INSERTINTOtest(id,c3)VALUES(9,'??????');SELECT*FROMtest;顯示結(jié)果如圖3.6所示。字符集編碼3)混合文字測(cè)試。DELETEFROMtest;INSERTINTOtest(id,c1,c2) VALUES(1,'駿馬ペンティアム','駿馬ペンティアム'); #中日混合INSERTINTOtest(id,c1,c4) VALUES(2,'???ペンティアム','???ペンティアム’); #韓日混合INSERTINTOtest(id,c1,c4) VALUES(3,'駿馬???','駿馬???'); #韓中混合SELECT*FROMtest;運(yùn)行結(jié)果如圖3.7所示。字符集編碼說(shuō)明:(1)c1列采用utf8編碼,中、日、韓三種文字皆可輸入,當(dāng)然包括英文等各種文字和各種符號(hào)。(2)c2列采用GB2312編碼,只能插入GB2312編碼中包含的6763個(gè)漢字和字符,不包含在其中的漢字是不能進(jìn)入的。而《康熙字典》共收錄漢字47035個(gè),絕大多數(shù)漢字無(wú)法保存到這種編碼列。如果需要數(shù)據(jù)庫(kù)保存更多的漢字,需要采用GBK、GB18030等編碼,或者使用Unicode編碼。因?yàn)橹形腉B2312編碼基本集中本身就有日文平假名和片假名的編碼字符區(qū),如圖3.8所示。(3)c3列采用sjis編碼,只能輸入日文編碼字符,不能輸入中文和韓文(注意:該列也不能存放中文輸入法輸入的日文字符)。日文編碼中部分中文字符(繁體中文)是日文的組成部分,它們當(dāng)然可與日文一起混合插入日文字符集編碼的列中,因?yàn)榇藭r(shí)的這些中文字符本身就是日文。(4)c4列采用euckr編碼,可以存放韓文編碼字符。韓文編碼集中也有部分中文字符(繁體中文)和日文字符,這部分中日文也可與韓文一起混合錄。字符集編碼2.MySQL8字符集系統(tǒng)變量在MySQL8.0中,從服務(wù)器、數(shù)據(jù)庫(kù)、表和表列等均可指定字符集,并通過(guò)系統(tǒng)變量指定默認(rèn)字符集。從客戶端輸入命令到最終顯示查詢結(jié)果也通過(guò)不同系統(tǒng)變量對(duì)應(yīng)字符集,如圖3.9所示。03字符排序規(guī)則1.規(guī)則名和排序集2.默認(rèn)字符集及排序規(guī)則3.查看字符排序規(guī)則字符排序規(guī)則1.規(guī)則名和排序集字符排序又稱字符序,由collation指定排序的規(guī)則名,MySQL中眾多的排序規(guī)則名可以歸納為以下兩大類排序集:(1)字符集_語(yǔ)言/other_ci/cs這是默認(rèn)的排序集,當(dāng)字符無(wú)須區(qū)分大小寫時(shí)采用該集合中的規(guī)則,規(guī)則命名以其對(duì)應(yīng)的字符集作為前綴,例如:字符序utf8_general_ci,表明它是字符集utf8的字符序。ci即對(duì)大小寫不敏感,cs對(duì)大小寫敏感。utf8字符集對(duì)應(yīng)的collation沒(méi)有cs。(2)字符集_bin當(dāng)字符需要區(qū)分大小寫時(shí),選擇該排序集。每個(gè)字符集對(duì)應(yīng)一定數(shù)量的排序規(guī)則,collation用于指定數(shù)據(jù)集如何排序以及字符串的排序規(guī)則。字符排序規(guī)則2.默認(rèn)字符集及排序規(guī)則兩個(gè)不同的字符集不能有相同的排序規(guī)則。【例3.6】字符集的排序規(guī)則。1)大小寫不敏感排序規(guī)則設(shè)置和查詢。USEmydb;DROPTABLEIFEXISTSmytab; CREATETABLEmytab ( t1 int, t2 char(20)CHARACTERSETgbk, t3 float(6,2));SELECTcolumn_name,character_set_name,collation_nameFROMinformation_schema.columnsWHEREtable_name='mytab'; #(a)INSERTINTOmytab(t1,t2,t3)VALUES (3,'a',3.45), (4,'b',3.10), (5,'A',10.23);SELECT*FROMmytabWHEREt2='a'; #(b)SELECT*FROMmytabORDERBYt2; #(c)字符排序規(guī)則運(yùn)行結(jié)果如圖3.10所示。

說(shuō)明:(a)雖然t2列僅僅設(shè)置字符集(gbk),但同時(shí)也就設(shè)置了對(duì)應(yīng)的默認(rèn)排序規(guī)則(gbk_chinese_cs)。通過(guò)查詢information_schema.columns(系統(tǒng)數(shù)據(jù)庫(kù)表)可以獲取當(dāng)前t2列的字符排序規(guī)則對(duì)應(yīng)不區(qū)分大小寫。(b)由于mytab表t2列排序規(guī)則不區(qū)分大小寫,所以該語(yǔ)句將t2列值為“'A'”的記錄也顯示出來(lái)。(c)雖然ASCII碼'A'<'a',但由于mytab表t2列的排序規(guī)則不區(qū)分大小寫,誰(shuí)排列在前取決于查詢時(shí)先遇到的行,這里它把“'a'”排在前面。字符排序規(guī)則2)大小寫敏感排序規(guī)則設(shè)置和查詢。USEmydb;ALTERTABLEmytab MODIFYt2char(20)CHARACTERSETgbkCOLLATEgbk_bin; #(a)SELECT*FROMmytabWHEREt2='a'; #(b)SELECT*FROMmytabORDERBYt2; #(c)運(yùn)行結(jié)果如圖3.11所示。

說(shuō)明:(a)修改設(shè)置t2列為字符集(gbk)對(duì)應(yīng)區(qū)分大小寫排序規(guī)則(gbk_bin)。(b)由于mytab表t2列排序規(guī)則區(qū)分大小寫,所以該語(yǔ)句僅顯示t2列值為'a'的記錄。(c)由于ASCII碼大寫字符小于小寫字符,而ORDERBYt2默認(rèn)從小到大排列,故這里把字符為'A'記錄排在前面,然后是字符為'a'和“'b'”記錄。字符排序規(guī)則3.查看字符排序規(guī)則(1)查看所有的字符排序規(guī)則,用下面語(yǔ)句:SHOWCOLLATION;(2)查看當(dāng)前字符集CHARACTER_SET_CONNECT、CHARACTER_SET_DATABASE、CHARACTER_SET_SERVER對(duì)應(yīng)的排序規(guī)則環(huán)境變量,用下面語(yǔ)句:SHOWVARIABLESLIKE'COLLATION_%';運(yùn)行結(jié)果如圖3.12所示。字符排序規(guī)則(3)查詢字符集匹配的所有排序規(guī)則,用下面語(yǔ)句:SHOWcollationLIKE'字符集名%'例如,查詢以u(píng)tf8mb4打頭和_cs結(jié)尾的排序規(guī)則:showcollationlike'utf8mb4%_cs';上述語(yǔ)句相對(duì)于條件查詢information_schema系統(tǒng)數(shù)據(jù)庫(kù)collations表記錄:select*frominformation_schema.collationswherecollation_namelike'utf8%';(4)查看指定表列的排序規(guī)則,例如:SHOWFULLCOLUMNSFROMmytab;可看到表mytab的完整結(jié)構(gòu)屬性及列上定義的排序規(guī)則,如圖3.13所示。04二進(jìn)制字符串類型1.二進(jìn)制字符串類型介紹2.二進(jìn)制字符串的性質(zhì)3.二進(jìn)制字符串存儲(chǔ)不同類型二進(jìn)制字符串類型1.二進(jìn)制字符串類型介紹二進(jìn)制字符串類型一般用于存儲(chǔ)圖像、聲音、視頻等內(nèi)容,MySQL中可以定義的二進(jìn)制字符串類型如表3.5所示。類

稱存

儲(chǔ)

求(實(shí)際字符數(shù)L)最

數(shù)(m≤)binary(m)m255varbinary(m)m+165535tinyblob(m)L+1255blob(m)L+265535mediumblob(m)L+316777215longblob(m)L+44294967295或4GB說(shuō)明:(1)binary和varbinary類型類似于char和varchar,不同點(diǎn)在于它們存儲(chǔ)的是二進(jìn)制字節(jié)形式的字符串。(2)blob是一個(gè)二進(jìn)制大對(duì)象,用來(lái)存儲(chǔ)可變數(shù)量的數(shù)據(jù),它又分tinyblob、blob、mediumblob和longblob幾種,每種可容納值的最大長(zhǎng)度不同。二進(jìn)制字符串類型2.二進(jìn)制字符串的性質(zhì)【例3.7】創(chuàng)建表,測(cè)試二進(jìn)制字符串?dāng)?shù)據(jù)的性質(zhì)。1)創(chuàng)建測(cè)試表。USEmydb;DROPTABLEIFEXISTStest;CREATETABLEtest( b1 binary(8), b2 varbinary(8), b3 blob);二進(jìn)制字符串類型2)插入整數(shù)數(shù)值。INSERTINTOtestVALUES(13,13,13);SELECTBIN(b1+0),BIN(b2+0),BIN(b3+0)FROMtest; #(a)SELECTLENGTH(b1),LENGTH(b2),LENGTH(b3)FROMtest; #(b)說(shuō)明:(a)專用于查看對(duì)應(yīng)列內(nèi)容的二進(jìn)制串,可通過(guò)Navicat查看表中數(shù)據(jù),運(yùn)行結(jié)果如圖3.14所示。

其中,blob數(shù)據(jù)不是直接可見(jiàn)的,只顯示了類型和字節(jié)數(shù),13的二進(jìn)制1101占一個(gè)字節(jié),blob在此基礎(chǔ)上加1,即2字節(jié)存儲(chǔ)。所有二進(jìn)制字符串型數(shù)據(jù)都無(wú)法直接通過(guò)Navicat表查看器更改。(b)用于查看二進(jìn)制字符串列內(nèi)容占用的字節(jié)長(zhǎng),運(yùn)行結(jié)果如圖3.15所示。二進(jìn)制字符串類型3.二進(jìn)制字符串存儲(chǔ)不同類型【例3.7續(xù)】采用上例test表,測(cè)試二進(jìn)制字符串型對(duì)各種不同類型數(shù)據(jù)的存儲(chǔ)性質(zhì)。1)插入字符串、數(shù)值。USEmydb;DELETEFROMtest;INSERTINTOtestVALUES('hello','hello',

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論