MySQL數(shù)據(jù)庫(kù)教程PPT完整全套教學(xué)課件_第1頁(yè)
MySQL數(shù)據(jù)庫(kù)教程PPT完整全套教學(xué)課件_第2頁(yè)
MySQL數(shù)據(jù)庫(kù)教程PPT完整全套教學(xué)課件_第3頁(yè)
MySQL數(shù)據(jù)庫(kù)教程PPT完整全套教學(xué)課件_第4頁(yè)
MySQL數(shù)據(jù)庫(kù)教程PPT完整全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩626頁(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)介

第一章數(shù)據(jù)庫(kù)概述第1章數(shù)據(jù)庫(kù)概述第2章MySQL數(shù)據(jù)庫(kù)安裝與配置第3章MySQL支持的數(shù)據(jù)類(lèi)型第4章數(shù)據(jù)庫(kù)的基本操作第5章表的基本操作第6章索引第7章插入、更新和刪除數(shù)據(jù)第8章單表查詢(xún)操作第9章多表查詢(xún)操作第10章事務(wù)全套PPT課件本章主要內(nèi)容數(shù)據(jù)庫(kù)簡(jiǎn)介MySQL簡(jiǎn)介主要內(nèi)容121.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.1數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程

人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)管理技術(shù)三個(gè)階段人工管理階段文件系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)階段1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.1數(shù)據(jù)管理技術(shù)的發(fā)展過(guò)程

1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.2數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)概念

數(shù)據(jù)data數(shù)字,文字,圖形,圖像,聲音等。凡是計(jì)算機(jī)中用來(lái)描述事物的記錄,都可以統(tǒng)稱(chēng)為數(shù)據(jù)。例數(shù)據(jù)的形式與其內(nèi)容不一定一致。數(shù)據(jù)與其語(yǔ)義是不可分割的。(李明,男,19,上海,信息管理)數(shù)據(jù)庫(kù)是一些長(zhǎng)期儲(chǔ)存的信息的聚集。是長(zhǎng)期存儲(chǔ)在計(jì)算機(jī)內(nèi)、有組織的、可共享的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)中的數(shù)據(jù)按一定的數(shù)據(jù)模型組織、描述和存儲(chǔ),具有較小的冗余度,較高的數(shù)據(jù)獨(dú)立性和易擴(kuò)展性,可為各種用戶(hù)共享。數(shù)據(jù)庫(kù)就是由DBMS管理的數(shù)據(jù)的聚集。數(shù)據(jù)庫(kù)database,DB1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.2數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)概念

Databasemanagementsystem,DBMS數(shù)據(jù)庫(kù)管理系統(tǒng),簡(jiǎn)稱(chēng)DBMS,是專(zhuān)門(mén)用于建立和管理數(shù)據(jù)庫(kù)的一套軟件,介于應(yīng)用程序和操作系統(tǒng)之間。DBMS不僅具有最基本的數(shù)據(jù)管理功能,還能保證數(shù)據(jù)的完整性、安全性,提供多用戶(hù)的并發(fā)控制,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí)對(duì)系統(tǒng)進(jìn)行恢復(fù)。數(shù)據(jù)庫(kù)管理系統(tǒng)1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1.1.2數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)概念

數(shù)據(jù)庫(kù)系統(tǒng),包括與數(shù)據(jù)庫(kù)有關(guān)的整個(gè)系統(tǒng):數(shù)據(jù)庫(kù)、DBMS、應(yīng)用程序以及數(shù)據(jù)庫(kù)管理員和用戶(hù)等。數(shù)據(jù)庫(kù)系統(tǒng)Databasesystem,DBS用戶(hù)用戶(hù)用戶(hù)...應(yīng)用系統(tǒng)應(yīng)用開(kāi)發(fā)工具數(shù)據(jù)庫(kù)管理系統(tǒng)操作系統(tǒng)數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理員DBS1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1.1.2數(shù)據(jù)庫(kù)系統(tǒng)相關(guān)概念

1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.3什么是SQL語(yǔ)言

SQL結(jié)構(gòu)化查詢(xún)語(yǔ)言StructuredQueryLanguage

1974年,IBM公司Boyce和Chamberlin提出1981年,IBM推出關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)SQL/DS,廣泛應(yīng)用1982年,ANSI著手制定SQL標(biāo)準(zhǔn)1987年,ISO通過(guò)SQL86標(biāo)準(zhǔn)1989年,ISO制定SQL89標(biāo)準(zhǔn);在SQL86基礎(chǔ)上增補(bǔ)完整性描述1990年,我國(guó)制定等同SQL89的國(guó)家標(biāo)準(zhǔn)1992年,ISO制定SQL92標(biāo)準(zhǔn),即SQL21999年,ANSI制定SQL3標(biāo)準(zhǔn)1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1.1.3什么是SQL語(yǔ)言

SQL語(yǔ)言分為5部分(1)數(shù)據(jù)查詢(xún)語(yǔ)言(DataQueryLanguage,DQL):DQL主要用于數(shù)據(jù)的查詢(xún),其基本結(jié)構(gòu)是使用SELECT子句,F(xiàn)ROM子句和WHERE子句的組合來(lái)查詢(xún)一條或多條數(shù)據(jù);(2)數(shù)據(jù)操作語(yǔ)言(DataManipulationLanguage,DML):DML主要用于對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行增加、修改和刪除的操作;1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.3什么是SQL語(yǔ)言

(3)數(shù)據(jù)定義語(yǔ)言(DataDefinitionLanguage,DDL):DDL主要用針對(duì)是數(shù)據(jù)庫(kù)對(duì)象(表、索引、視圖、觸發(fā)器、存儲(chǔ)過(guò)程、函數(shù)、表空間等)進(jìn)行創(chuàng)建、修改和刪除操作;(4)數(shù)據(jù)控制語(yǔ)言(DataControlLanguage,DCL):DCL用來(lái)授予或回收訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限;(5)事務(wù)控制語(yǔ)言(TransactionControlLanguage,TCL):TCL用于數(shù)據(jù)庫(kù)的事務(wù)管理。1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1.1.4如何訪問(wèn)數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)管理系統(tǒng)可以使用SQL語(yǔ)句來(lái)操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)。其實(shí),應(yīng)用程序中也可以嵌套使用SQL語(yǔ)句來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的操作,但是如何才能讓程序中的SQL語(yǔ)句發(fā)揮作用。多種數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),如ODBC(OpenDataBaseConnectivity,開(kāi)放數(shù)據(jù)庫(kù)互連)、DAO(DataAccessObject,數(shù)據(jù)訪問(wèn)對(duì)象)、RDO(RemoteDataObject,遠(yuǎn)程數(shù)據(jù)對(duì)象)、OLEDB(ObjectLinkingandEmbeddingDataBase,對(duì)象鏈接和嵌入數(shù)據(jù)庫(kù))、ADO(ActiveDataObject,活動(dòng)數(shù)據(jù)對(duì)象)、JDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)庫(kù)連接)等等。1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.4如何訪問(wèn)數(shù)據(jù)庫(kù)

(1)ODBC,Microsoft創(chuàng)建了ODBC技術(shù),它為編寫(xiě)關(guān)系型數(shù)據(jù)庫(kù)的應(yīng)用程序提供了一種統(tǒng)一的接口。1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1.1.4如何訪問(wèn)數(shù)據(jù)庫(kù)

(2)OLEDB是對(duì)ODBC的拓展,前者在后者基礎(chǔ)上提供了COM接口,讓?xiě)?yīng)用程序能夠以統(tǒng)一的方式存取各種不同的數(shù)據(jù)源。實(shí)際開(kāi)發(fā)中,數(shù)據(jù)可能存儲(chǔ)在Excel、Email或者非關(guān)系型數(shù)據(jù)庫(kù)中,而并非傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),但是ODBC只能訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù),所以O(shè)LEDB技術(shù)便應(yīng)運(yùn)而生。1.1數(shù)據(jù)庫(kù)簡(jiǎn)介

1.1.4如何訪問(wèn)數(shù)據(jù)庫(kù)

(3)ADO看成是對(duì)OLEDB的封裝。雖然OLEDB允許程序員訪問(wèn)各種類(lèi)型的數(shù)據(jù)源,但是其非常底層化,編程非常困難,對(duì)程序員的水平有很高的要求。為了解決這個(gè)問(wèn)題,Microsoft推出了ADO技術(shù),大大簡(jiǎn)化了程序員的工作量,因此ADO越來(lái)越被程序員所喜愛(ài)。1.1數(shù)據(jù)庫(kù)簡(jiǎn)介1.1.4如何訪問(wèn)數(shù)據(jù)庫(kù)

(4)JDBC是專(zhuān)門(mén)針對(duì)Java語(yǔ)言的一種數(shù)據(jù)庫(kù)訪問(wèn)技術(shù),是一種用于執(zhí)行SQL語(yǔ)句的JavaAPI。1.2MySQL簡(jiǎn)介

1.2.1數(shù)據(jù)庫(kù)的分類(lèi)

關(guān)系型數(shù)據(jù)庫(kù)關(guān)系型數(shù)據(jù)庫(kù)模型是將復(fù)雜的數(shù)據(jù)結(jié)構(gòu)用較為簡(jiǎn)單的二元關(guān)系(二維表)來(lái)表示。該類(lèi)型數(shù)據(jù)庫(kù)中,對(duì)數(shù)據(jù)的操作基本上都建立在一個(gè)或多個(gè)表格上,我們可以采用結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。關(guān)系型數(shù)據(jù)庫(kù)是目前主流的數(shù)據(jù)庫(kù)技術(shù),其中具有代表性的數(shù)據(jù)庫(kù)管理系統(tǒng)有:Oracle、DB2、SQLServer、MySQL等。1.2MySQL簡(jiǎn)介

1.2.1數(shù)據(jù)庫(kù)的分類(lèi)

非關(guān)系型數(shù)據(jù)庫(kù)NOSQL(NotOnlySQL)泛指非關(guān)系型數(shù)據(jù)庫(kù)。關(guān)系型數(shù)據(jù)庫(kù)在超大規(guī)模和高并發(fā)的web2.0純動(dòng)態(tài)網(wǎng)站已經(jīng)顯得力不從心,暴露了很多難以克服的問(wèn)題。NOSQL數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類(lèi)帶來(lái)的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。常見(jiàn)的非關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)有Memcached、MongoDB、Redis等。1.2MySQL簡(jiǎn)介1.2.2常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)

(1)Oracle

Oracle數(shù)據(jù)庫(kù)是由美國(guó)的甲骨文(Oracle)公司開(kāi)發(fā)的世界上第一款支持SQL語(yǔ)言的關(guān)系型數(shù)據(jù)庫(kù)。經(jīng)過(guò)多年的完善與發(fā)展,Oracle數(shù)據(jù)庫(kù)已經(jīng)成為世界上最流行的數(shù)據(jù)庫(kù),也是甲骨文公司的核心產(chǎn)品。Oracle數(shù)據(jù)庫(kù)具有很好的開(kāi)放性,能在所有的主流平臺(tái)上運(yùn)行,并且性能高、安全性高、風(fēng)險(xiǎn)低;但是其對(duì)硬件的要求很高、管理維護(hù)和操作比較復(fù)雜而且價(jià)格昂貴,所以一般用在滿(mǎn)足對(duì)銀行、金融、保險(xiǎn)等行業(yè)大型數(shù)據(jù)庫(kù)的需求上。1.2MySQL簡(jiǎn)介1.2.2常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)

(2)DB2

DB2是IBM公司著名的關(guān)系型數(shù)據(jù)庫(kù)產(chǎn)品。DB2無(wú)論穩(wěn)定性,安全性,恢復(fù)性等等都無(wú)可挑剔,而且從小規(guī)模到大規(guī)模的應(yīng)用都可以使用,但是用起來(lái)非常繁瑣,比較適合大型的分布式應(yīng)用系統(tǒng)。(3)SQLServerSQLServer是由Microsoft開(kāi)發(fā)和推廣的關(guān)系型數(shù)據(jù)庫(kù),SQLServer的功能比較全面、效率高,可以作為中型企業(yè)或單位的數(shù)據(jù)庫(kù)平臺(tái)。SQLServer可以與Windows操作系統(tǒng)緊密繼承,無(wú)論是應(yīng)用程序開(kāi)發(fā)速度還是系統(tǒng)事務(wù)處理運(yùn)行速度,都能得到大幅度提升。但是,SQLServer只能在Windows系統(tǒng)下運(yùn)行,毫無(wú)開(kāi)放性可言。1.2MySQL簡(jiǎn)介1.2.2常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)

(3)MySQL

MySQL是一種開(kāi)放源代碼的輕量級(jí)關(guān)系型數(shù)據(jù)庫(kù),MySQL數(shù)據(jù)庫(kù)使用最常用的結(jié)構(gòu)化查詢(xún)語(yǔ)言(SQL)對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理。由于MySQL是開(kāi)放源代碼的,因此任何人都可以在GeneralPublicLicense的許可下下載并根據(jù)個(gè)人需要對(duì)其缺陷進(jìn)行修改。由于MySQL數(shù)據(jù)庫(kù)體積小、速度快、成本低、開(kāi)放源碼等優(yōu)點(diǎn),現(xiàn)已被廣泛應(yīng)用于互聯(lián)網(wǎng)上的中小型網(wǎng)站中,并且大型網(wǎng)站也開(kāi)始使用MySQL數(shù)據(jù)庫(kù),如網(wǎng)易、新浪等。1.2MySQL簡(jiǎn)介1.2.3MySQL的優(yōu)勢(shì)

(1)開(kāi)放源代碼

MySQL最強(qiáng)大的優(yōu)勢(shì)之一在于它是一個(gè)開(kāi)放源代碼的數(shù)據(jù)庫(kù)管理系統(tǒng)。開(kāi)源的特點(diǎn)是給予了用戶(hù)根據(jù)自己需要修改DBMS的自由。MySQL采用了GeneralPublicLicense,這意味著授予用戶(hù)閱讀、修改和優(yōu)化源代碼的權(quán)利,這樣即使是免費(fèi)版的MySQL的功能也足夠強(qiáng)大,這也是為什么MySQL越來(lái)越受歡迎的主要原因。1.2MySQL簡(jiǎn)介

1.2.3MySQL的優(yōu)勢(shì)

(2)可移植

MySQL可以在不同的操作系統(tǒng)下運(yùn)行,簡(jiǎn)單地說(shuō),MySQL可以支持Windows系統(tǒng)、UNIX系統(tǒng)、Linux系統(tǒng)等多種操作系統(tǒng)平臺(tái)。這意味著在一個(gè)操作系統(tǒng)中實(shí)現(xiàn)的應(yīng)用程序可以很方便地移植到其他的操作系統(tǒng)下。1.2MySQL簡(jiǎn)介

1.2.3MySQL的優(yōu)勢(shì)

(3)輕量級(jí)

MySQL的核心程序完全采用多線程編程,這些線程都是輕量級(jí)的進(jìn)程,它在靈活地為用戶(hù)提供服務(wù)的同時(shí),又不會(huì)占用過(guò)多的系統(tǒng)資源。因此MySQL能夠更快速、高效的處理數(shù)據(jù)。1.2MySQL簡(jiǎn)介1.2.3MySQL的優(yōu)勢(shì)

(4)成本低

MySQL分為社區(qū)版和企業(yè)版,社區(qū)版是完全免費(fèi)的,而企業(yè)版是收費(fèi)的。即使在開(kāi)發(fā)中需要用到一些付費(fèi)的附加功能,價(jià)格相對(duì)于昂貴的Oracle、DB2等也是有很大優(yōu)勢(shì)的。其實(shí)免費(fèi)的社區(qū)版也支持多種數(shù)據(jù)類(lèi)型和正規(guī)的SQL查詢(xún)語(yǔ)言,能夠?qū)?shù)據(jù)進(jìn)行各種查詢(xún)、增加、刪除、修改等操作,所以一般情況下社區(qū)版就可以滿(mǎn)足開(kāi)發(fā)需求了,而對(duì)數(shù)據(jù)庫(kù)可靠性要求比較高的企業(yè)可以選擇企業(yè)版。另外,PHP中提供了一整套的MySQL函數(shù),對(duì)MySQL進(jìn)行了全方位的強(qiáng)力支持。本章總結(jié)數(shù)據(jù)管理技術(shù)總共歷經(jīng)了三個(gè)階段:人工管理階段、文件系統(tǒng)階段、數(shù)據(jù)庫(kù)系統(tǒng)階段。目前,仍然處于數(shù)據(jù)庫(kù)系統(tǒng)階段。數(shù)據(jù)庫(kù)(Database,DB)指的是以一定格式存放、能夠?qū)崿F(xiàn)多個(gè)用戶(hù)共享、與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合。數(shù)據(jù)庫(kù)系統(tǒng)(DatabaseSystem,DBS)一般是由數(shù)據(jù)庫(kù)、數(shù)據(jù)庫(kù)管理系統(tǒng)、數(shù)據(jù)庫(kù)應(yīng)用程序、數(shù)據(jù)庫(kù)管理員和最終用戶(hù)構(gòu)成。SQL語(yǔ)言分為五個(gè)部分:數(shù)據(jù)查詢(xún)語(yǔ)言(DQL)、數(shù)據(jù)操作語(yǔ)言(DML)、數(shù)據(jù)定義語(yǔ)言(DDL)、數(shù)據(jù)控制語(yǔ)言(DCL)、事務(wù)控制語(yǔ)言(TCL)。數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)主要有ODBC、OLEDB、ADO、JDBC等。根據(jù)數(shù)據(jù)的組織結(jié)構(gòu)不同,數(shù)據(jù)庫(kù)主要分為網(wǎng)狀數(shù)據(jù)庫(kù)、層次數(shù)據(jù)庫(kù)、關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)庫(kù)四種。MySQL的主要優(yōu)勢(shì):開(kāi)放源代碼、開(kāi)放性、輕量級(jí)、成本低等。本章作業(yè)1.簡(jiǎn)述數(shù)據(jù)庫(kù)管理技術(shù)的發(fā)展過(guò)程。2.數(shù)據(jù)庫(kù)系統(tǒng)包括哪幾部分?3.SQL語(yǔ)言主要分為幾類(lèi)?4.Java中如何訪問(wèn)數(shù)據(jù)庫(kù)?5.常見(jiàn)的關(guān)系型數(shù)據(jù)庫(kù)有哪幾種?6.簡(jiǎn)述MySQL的優(yōu)勢(shì)。第二章MySQL數(shù)據(jù)庫(kù)安裝與配置本章主要內(nèi)容下載MySQL軟件Windows平臺(tái)下安裝與配置MySQLWindows平臺(tái)下ZIP版配置MySQLLinux平臺(tái)下安裝與配置MySQLMySQL的常用操作123456主要內(nèi)容常用圖形化管理工具—Navicat2.1下載MySQL

2.1.1Windows平臺(tái)下載MySQL

(1)進(jìn)入MySQL的官網(wǎng):/。點(diǎn)擊DOWNLOADS導(dǎo)航欄,再點(diǎn)擊Community(社區(qū)版),切換到社區(qū)版的下載頁(yè)面,最后點(diǎn)擊MySQLCommunityServer下邊的DOWNLOAD按鈕即可進(jìn)入MySQL數(shù)據(jù)庫(kù)下載頁(yè)面。2.1下載MySQL

2.1.1Windows平臺(tái)下載MySQL

2.1下載MySQL

2.1.1Windows平臺(tái)下載MySQL

(2)進(jìn)入MySQL數(shù)據(jù)庫(kù)的下載界面后,首先在“SelectOperatingSystem”下拉菜單中選擇“MicrosoftWindows”平臺(tái),然后進(jìn)入MySQL下載頁(yè)面。2.1下載MySQL

2.1.1Windows平臺(tái)下載MySQL

MySQL安裝版下載2.1下載MySQL

2.1.1Windows平臺(tái)下載MySQL

MySQLZIP版下載2.1下載MySQL

2.1.2Linux平臺(tái)下載MySQL

Linux操作系統(tǒng)的版本有很多種,如RedHatEnterprise、Ubnutu、Debian、CentOS等,我們需要針對(duì)自己電腦選擇適合的操作平臺(tái),然后再選擇是下載32位的還是64位的文件。下面以64位的CentOS7系統(tǒng)進(jìn)行演示,由于CentOS系統(tǒng)是來(lái)自于RedHatEnterpriseLinux依照開(kāi)放源代碼規(guī)定釋出的源代碼編譯而成的,所以下載時(shí)可以按照RedHat平臺(tái)進(jìn)行選擇版本的下載。2.1下載MySQL

2.1.2Linux平臺(tái)下載MySQL

需要注意的是,CentOS7系統(tǒng)不能只下載服務(wù)器端和客戶(hù)端軟件,還要下載一些依賴(lài)包,所以在此直接下載“RPMBundle”壓縮包。最后使用xftp或其他工具,將下載的壓縮包上傳到Linux服務(wù)器中的“download”目錄中。2.1下載MySQL

2.1.2Linux平臺(tái)下載MySQL

2.2安裝與配置MySQL

2.2.1安裝MySQL

雙擊安裝程序mysql-installer-community-.msi,此時(shí)會(huì)彈出MySQL許可協(xié)議界面。單擊選中復(fù)選框“Iacceptthelicenseterms”后,點(diǎn)擊“Next”按鈕,進(jìn)入安裝類(lèi)型選擇界面。2.2安裝與配置MySQL

2.2.1安裝MySQL

2.2安裝與配置MySQL

2.2.1安裝MySQL

選擇自定義安裝類(lèi)型“Custom”(此類(lèi)型可以根據(jù)用戶(hù)自己的需求選擇安裝需要的產(chǎn)品),然后單擊“Next”按鈕。2.2安裝與配置MySQL

2.2.1安裝MySQL

在選擇安裝版本界面,展開(kāi)第一個(gè)節(jié)點(diǎn)“MySQLServers”,找到并點(diǎn)擊“MySQLServer8.0.12-X64”,之后向右的箭頭會(huì)變成綠色,點(diǎn)擊該綠色的箭頭,將選中的產(chǎn)品添加到右邊的待安裝列表框中,然后在展開(kāi)安裝列表中的MySQLServer8.0.12-X64節(jié)點(diǎn),取消“DevelopmentComponents”選項(xiàng)前邊的“√”,然后點(diǎn)擊“Next”按鈕進(jìn)入安裝列表界面。2.2安裝與配置MySQL

2.2.1安裝MySQL

2.2安裝與配置MySQL

2.2.1安裝MySQL

點(diǎn)擊安裝列表界面的“Execute”按鈕后,要安裝的產(chǎn)品右邊會(huì)顯示一個(gè)進(jìn)度百分比,安裝完成之后會(huì)前邊會(huì)出現(xiàn)綠色個(gè)的“√”,之后繼續(xù)點(diǎn)擊“Next”按鈕即可。2.2安裝與配置MySQL

2.2.1安裝MySQL

2.2安裝與配置MySQL

2.2.2配置MySQL

直接點(diǎn)擊“Next”按鈕,直接進(jìn)入?yún)?shù)配置頁(yè)面中的“TypeandNetWorking”界面。2.2安裝與配置MySQL

2.2.2配置MySQL

進(jìn)入“TypeandNetworking”界面后,我們要選擇的是“StandaloneMySQLServer/ClassicMySQLReplication”選項(xiàng),然后點(diǎn)擊“Next”按鈕服務(wù)器配置類(lèi)型“ConfigType”選擇“Developmentmachine”,不同的選擇將決定系統(tǒng)為MySQL服務(wù)器實(shí)例分配資源的大小,“Developmentmachine”占用的內(nèi)存是最少的;連接方式保持默認(rèn)的TCP/IP,端口號(hào)也保持默認(rèn)的3306即可;點(diǎn)擊“Next”按鈕。2.2安裝與配置MySQL

2.2.2配置MySQL

2.2安裝與配置MySQL

2.2.2配置MySQL

2.2安裝與配置MySQL

2.2.2配置MySQL

設(shè)置MySQL數(shù)據(jù)庫(kù)Root賬戶(hù)密碼,需要輸入兩遍。這個(gè)密碼必須記住,后邊會(huì)用到。此處我們將密碼設(shè)置成“bjsxt”,之后點(diǎn)擊“Next”按鈕。2.2安裝與配置MySQL

2.2.2配置MySQL

在配置Windows服務(wù)時(shí),需要以下幾部操作:勾選“ConfigureMySQLServerasaWindowsService”選項(xiàng),將MySQL服務(wù)器配置為Windows服務(wù);取消“StarttheMySQLServeratSystemStartup”選項(xiàng)前邊的“√”(該選項(xiàng)是設(shè)置是否開(kāi)機(jī)自啟動(dòng)MySQL服務(wù),在此我們選擇開(kāi)機(jī)不啟動(dòng),大家也可以根據(jù)自己的需要來(lái)選擇);勾選“StandardSystemAccount”選項(xiàng),該選項(xiàng)是標(biāo)準(zhǔn)系統(tǒng)賬戶(hù),推薦使用該賬戶(hù);點(diǎn)擊“Next”按鈕。2.2安裝與配置MySQL

2.2.2配置MySQL

2.2安裝與配置MySQL

2.2.2配置MySQL

最后執(zhí)行上述一系列配置的時(shí)候了,直接點(diǎn)擊“Execute”按鈕。等到所有的配置完成之后,點(diǎn)擊“Finish”按鈕即可完成配置。2.2安裝與配置MySQL

2.2.2配置MySQL

2.3

zip版MySQL的安裝

2.3.1減壓配置MySQL將下載的zip版安裝文件解壓到你想放到的磁盤(pán)處,例如(E:\mysql-8.0.12-winx64)。在mysql-8.0.12-winx64文件夾下找到my.ini,進(jìn)行配置。如果沒(méi)有.ini結(jié)尾的文件那么就新增。注意basedir和datadir是我自己的路徑位置,根據(jù)自己的定奪。記得新增一個(gè)文件data文件夾2.3

zip版MySQL的安裝

2.3.1減壓配置MySQLmy.ini文件內(nèi)容[mysqld]#設(shè)置3306端口port=3306#設(shè)置mysql的安裝目錄basedir=E:\\mysql-8.0.12-winx64#設(shè)置mysql數(shù)據(jù)庫(kù)的數(shù)據(jù)的存放目錄datadir=E:\\mysql-8.0.12-winx64\\Data#允許最大連接數(shù)max_connections=200#允許連接失敗的次數(shù)。這是為了防止有人從該主機(jī)試圖攻擊數(shù)據(jù)庫(kù)系統(tǒng)max_connect_errors=102.3

zip版MySQL的安裝

2.3.1減壓配置MySQL#服務(wù)端使用的字符集默認(rèn)為UTF8character-set-server=utf8#創(chuàng)建新表時(shí)將使用的默認(rèn)存儲(chǔ)引擎default-storage-engine=INNODB#默認(rèn)使用“mysql_native_password”插件認(rèn)證default_authentication_plugin=mysql_native_password[mysql]#設(shè)置mysql客戶(hù)端默認(rèn)字符集default-character-set=utf8[client]#設(shè)置mysql客戶(hù)端連接服務(wù)端時(shí)默認(rèn)使用的端口port=3306default-character-set=utf82.3

zip版MySQL的安裝

2.3.1減壓配置MySQLcmd打開(kāi)命令窗口,初始化mysql,初始化語(yǔ)句:mysqld--defaults-file=E:\mysql-8.0.12-winx64\my.ini--initialize–console執(zhí)行該語(yǔ)句后會(huì)出下日志內(nèi)容,找到root@localhost,冒號(hào)后面的為mysql的初始密碼,一定要先記住,下面用來(lái)登錄修改密碼。2.3

zip版MySQL的安裝

2.3.1減壓配置MySQL安裝MySQL當(dāng)前服務(wù),2.3

zip版MySQL的安裝

2.3.1減壓配置MySQL接著啟動(dòng)服務(wù)我們來(lái)修改密碼,執(zhí)行mysql-uroot-p登錄mysql,回車(chē)后輸入我們記下來(lái)的初始密碼,回車(chē)后進(jìn)入mysql命令,輸入修改密碼命令A(yù)LTERUSER'root'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'root';

root是你自己定義的密碼。至此mysql免安裝版的配置已完成。2.3

zip版MySQL的安裝

2.3.1減壓配置MySQL查看默認(rèn)安裝的數(shù)據(jù)庫(kù)。執(zhí)行如下命令:showdatabases;2.4

Linux平臺(tái)下安裝與配置MySQL

2.4.1安裝MySQL查看有沒(méi)有安裝包。執(zhí)行如下命令:yumlistmysql*;2.4

Linux平臺(tái)下安裝與配置MySQL

2.4.1安裝MySQL安裝mysql,執(zhí)行yuminstallmysql-server.x86_64

2.4

Linux平臺(tái)下安裝與配置MySQL

2.4.1安裝MySQL2.4

Linux平臺(tái)下安裝與配置MySQL

2.4.2

配置MySQL開(kāi)啟MySQL服務(wù)。輸入如下命令啟動(dòng):servicemysqldstart2.4

Linux平臺(tái)下安裝與配置MySQL

2.4.2

配置MySQL連接數(shù)據(jù)庫(kù)。輸入如下命令:mysql-uroot-pmysql是登錄數(shù)據(jù)庫(kù)的命令;-u后邊填寫(xiě)的是連接數(shù)據(jù)庫(kù)的用戶(hù)名,在此為root用戶(hù);-p后邊是設(shè)置的root用戶(hù)的密碼(密碼不需要直接寫(xiě)在-p后邊)。2.4

Linux平臺(tái)下安裝與配置MySQL

2.4.2

配置MySQL修改密碼。一般情況下,我們安裝MySQL主要是用于自己學(xué)習(xí)或者測(cè)試,沒(méi)有必要把密碼設(shè)置的很復(fù)雜,即可設(shè)置一些簡(jiǎn)單的密碼,命令如下:setpassword=password('root');2.5

MySQL的常用操作

2.5.1

啟動(dòng)與關(guān)閉MySQL服務(wù)首先點(diǎn)開(kāi)“開(kāi)始”菜單,在最下邊的“搜索程序和文件”搜索框中輸入cmd,回車(chē)即可進(jìn)入DOS窗口。在DOS窗口中輸入命令“netstart”,回車(chē)后即可查看Windows系統(tǒng)目前已經(jīng)開(kāi)啟的服務(wù)有哪些,2.5

MySQL的常用操作

2.5.1

啟動(dòng)與關(guān)閉MySQL服務(wù)如果列表中有“MySQL8012”這一項(xiàng),說(shuō)明該服務(wù)已經(jīng)啟動(dòng);如果沒(méi)有,則說(shuō)明還尚未啟動(dòng),那么我們就可以使用命令“netstartMySQL8012”來(lái)啟動(dòng)服務(wù)。2.5

MySQL的常用操作

2.5.1

啟動(dòng)與關(guān)閉MySQL服務(wù)使用簡(jiǎn)便的圖形化界面來(lái)啟動(dòng)與關(guān)閉MySQL服務(wù)。打開(kāi)服務(wù)列表窗口:依次點(diǎn)擊“開(kāi)始”菜單—>“控制面板”—>“管理工具”—>“服務(wù)”,進(jìn)入服務(wù)列表窗口選中MySQL8012服務(wù),點(diǎn)擊左側(cè)的“啟動(dòng)”按鈕,或者右鍵選擇“啟動(dòng)”選項(xiàng),則可以啟動(dòng)該服務(wù),此時(shí)服務(wù)狀態(tài)會(huì)更改為“已啟動(dòng)”。2.5

MySQL的常用操作

2.5.2

登錄與退出MySQL數(shù)據(jù)庫(kù)1.Windows平臺(tái)在“開(kāi)始”菜單中按照如下操作:“所有程序”—>“MySQL”—>“MySQLServer8.0”—>“MySQL8.0CommandLineClient”,便可打開(kāi)MySQL客戶(hù)端。輸入正確的密碼然后回車(chē)即可登錄成功。2.5

MySQL的常用操作

2.5.2

登錄與退出MySQL數(shù)據(jù)庫(kù)1.Windows平臺(tái)

登錄成功后,我們可以使用“quit”或者“exit”退出登錄。在執(zhí)行完“quit”或者“exit”命令后,客戶(hù)端窗口會(huì)直接消息。2.5

MySQL的常用操作

2.5.2

登錄與退出MySQL數(shù)據(jù)庫(kù)2.Linux平臺(tái)

使用root用戶(hù)進(jìn)行了登錄操作,登錄命令為:mysql-uroot-p退出MySQL的命令與Windows系統(tǒng)相同,均是“exit”或者“quit”2.6MySQL常用圖形化管理工具—Navicat

2.6.1下載Navicat軟件

在/en/download/navicat-for-mysql官網(wǎng)下載Navicat軟件,根據(jù)自己電腦的版本選擇一個(gè)直接下載。2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件(1)雙擊“navicat120_mysql_en_x64.exe”文件,就可以進(jìn)入Navicat的歡迎界面,點(diǎn)擊“Next”按鈕,進(jìn)入許可協(xié)議界面。2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件(2)在許可協(xié)議界面中,選中“Iaccepttheagreement”,然后繼續(xù)點(diǎn)擊“Next”按鈕,進(jìn)入選擇安裝路徑界面。(3)根據(jù)自己的喜好選擇Navicat的安裝路徑(建議大家安裝到除C盤(pán)以外的路徑),之后點(diǎn)擊“Next”按鈕。2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件(4)需要我們選擇在哪里創(chuàng)建快捷方式,直接保持默認(rèn)路徑即可(也可以根據(jù)自己的喜好修改),點(diǎn)擊“Next”按鈕。(5)選中“Createadesktopicon”選項(xiàng)(該選項(xiàng)是在詢(xún)問(wèn)用戶(hù)是否在桌面創(chuàng)建圖標(biāo),這個(gè)不影響后續(xù)的操作,可以根據(jù)自己的需求選擇),點(diǎn)擊“Next”按鈕。2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件(6)點(diǎn)擊“Install”按鈕,開(kāi)始進(jìn)行安裝,此時(shí)會(huì)顯示安裝進(jìn)度,等安裝完成后點(diǎn)擊“Finish”按鈕后安裝成功。2.6MySQL常用圖形化管理工具—Navicat

2.6.2安裝Navicat軟件2.6MySQL常用圖形化管理工具—Navicat

2.6.3通過(guò)Navicat軟件登錄MySQL數(shù)據(jù)庫(kù)(1)雙擊桌面的程序圖標(biāo),在菜單欄中點(diǎn)擊“Connection”功能模塊后,會(huì)彈出選擇框,選擇“MySQL”。2.6MySQL常用圖形化管理工具—Navicat

2.6.3通過(guò)Navicat軟件登錄MySQL數(shù)據(jù)庫(kù)(2)在彈出的“NewCollection”界面中,填入正確的HostName/IPAddress(主機(jī)名/IP地址)、Port(端口號(hào))、UserName(用戶(hù)名)、Password(密碼)等信息,然后點(diǎn)擊“TestConnection”按鈕,在提示我們連接成功后,點(diǎn)擊“OK”即可,2.6MySQL常用圖形化管理工具—Navicat

2.6.3通過(guò)Navicat軟件登錄MySQL數(shù)據(jù)庫(kù)本章總結(jié)學(xué)會(huì)在Windows平臺(tái)和Linux平臺(tái)下MySQL的安裝與配置過(guò)程。學(xué)會(huì)使用my.ini(Linux平臺(tái)中為f)配置文件更改MySQL配置。在使用MySQL數(shù)據(jù)庫(kù)之前,一定要先開(kāi)啟MySQL服務(wù)。通過(guò)Navicat圖形化管理工具來(lái)操作MySQL數(shù)據(jù)庫(kù)更加方便、靈活。本章作業(yè)1.在Windows平臺(tái)下安裝與配置MySQL數(shù)據(jù)庫(kù)。2.在Linux平臺(tái)下安裝與配置MySQL數(shù)據(jù)庫(kù)。3.在Windows平臺(tái)下安裝Navicat軟件。4.分別使用DOS窗口、MySQL自帶客戶(hù)端、Navicat軟件登錄與退出MySQL數(shù)據(jù)庫(kù)。第三章MySQL支持的數(shù)據(jù)類(lèi)型本章主要內(nèi)容數(shù)值類(lèi)型日期和時(shí)間類(lèi)型字符串類(lèi)型JSON類(lèi)型123主要內(nèi)容43.1數(shù)值類(lèi)型

3.1.1整數(shù)類(lèi)型

整數(shù)類(lèi)型,顧名思義是用來(lái)存儲(chǔ)整數(shù)的。MySQL支持的整數(shù)類(lèi)型有SQL標(biāo)準(zhǔn)中的整數(shù)類(lèi)型INTEGER和SMALLINT,并在此基礎(chǔ)上拓展了新的整數(shù)類(lèi)型,如TINYINT、MEDIUMINT、BIGINT。不同的整數(shù)類(lèi)型所占用的存儲(chǔ)空間大小不同,所以表示的數(shù)據(jù)范圍不同。3.1數(shù)值類(lèi)型

3.1.1整數(shù)類(lèi)型整數(shù)類(lèi)型大小表數(shù)范圍(有符號(hào))表數(shù)范圍(無(wú)符號(hào))作用TINYINT1字節(jié)(-128,127)(0,255)小整數(shù)值SMALLINT2字節(jié)(-32768,32767)(0,65535)大整數(shù)值MEDIUMINT3字節(jié)(-8388608,8388607)(0,16777215)大整數(shù)值INT/INTEGER4字節(jié)(-2147483648,2147483647)(0,4294967295)大整數(shù)值BIGINT8字節(jié)(-9233372036854775808,9223372036854775807)(0,18446744073709551615)極大整數(shù)值整數(shù)類(lèi)型特征3.1數(shù)值類(lèi)型

3.1.1整數(shù)類(lèi)型

整數(shù)類(lèi)型,顧名思義是用來(lái)存儲(chǔ)整數(shù)的。MySQL支持的整數(shù)類(lèi)型有SQL標(biāo)準(zhǔn)中的整數(shù)類(lèi)型INTEGER和SMALLINT,并在此基礎(chǔ)上拓展了新的整數(shù)類(lèi)型,如TINYINT、MEDIUMINT、BIGINT。不同的整數(shù)類(lèi)型所占用的存儲(chǔ)空間大小不同,所以表示的數(shù)據(jù)范圍不同。3.1數(shù)值類(lèi)型

3.1.2浮點(diǎn)數(shù)和定點(diǎn)數(shù)類(lèi)型

如果想要在數(shù)據(jù)庫(kù)中存儲(chǔ)小數(shù)類(lèi)型,則需要學(xué)習(xí)下面兩種MySQL指出的數(shù)據(jù)類(lèi)型:浮點(diǎn)數(shù)類(lèi)型和定點(diǎn)數(shù)類(lèi)型。浮點(diǎn)數(shù)類(lèi)型在數(shù)據(jù)庫(kù)中存放的是近似值,因此也稱(chēng)為近似值類(lèi)型,而定點(diǎn)數(shù)類(lèi)型在數(shù)據(jù)庫(kù)中存放的是精確值。浮點(diǎn)數(shù)類(lèi)型包括FLOAT(單精度)和DOUBLE(雙精度)兩種,定點(diǎn)數(shù)類(lèi)型只包括DEC/DECIMAL/NUMERIC一種(DEC/DECIMAL與NUMERIC表示的是同一種數(shù)據(jù)類(lèi)型,習(xí)慣上使用DEC或DECIMAL)。3.1數(shù)值類(lèi)型

3.1.2浮點(diǎn)數(shù)和定點(diǎn)數(shù)類(lèi)型浮點(diǎn)數(shù)類(lèi)型大小表數(shù)范圍(有符號(hào))表數(shù)范圍(無(wú)符號(hào))作用FLOAT4字節(jié)(-3.402823466E+38,-1.175494351E-38),0,(1.175494351E-38,3.402823466351E+38)0,(1.175494351E-38,3.402823466E+38)單精度浮點(diǎn)數(shù)值DOUBLE8字節(jié)(-1.7976931348623157E+308,-2.2250738585072014E-308),0,(2.2250738585072014E-308,1.7976931348623157E+308)0,(2.2250738585072014E-308,1.7976931348623157E+308)雙精度浮點(diǎn)數(shù)值浮點(diǎn)類(lèi)型特征3.1數(shù)值類(lèi)型

3.1.2浮點(diǎn)數(shù)和定點(diǎn)數(shù)類(lèi)型

定點(diǎn)數(shù)類(lèi)型在數(shù)據(jù)庫(kù)中是以字符串形式存的,因此是精確值。定點(diǎn)數(shù)只有一種數(shù)據(jù)類(lèi)型,即DECIMAL,該數(shù)據(jù)類(lèi)型用于精度要求非常高的計(jì)算中,如涉及金錢(qián)操作的領(lǐng)域。3.1數(shù)值類(lèi)型

3.1.2浮點(diǎn)數(shù)和定點(diǎn)數(shù)類(lèi)型浮點(diǎn)數(shù)類(lèi)型大小表數(shù)范圍作用DECIMAL(M,D)M+2最小最大取值范圍與DOUBLE相同;指定M和D時(shí),有效取值范圍由M和D的大小決定精度較高的小數(shù)值定點(diǎn)類(lèi)型特征3.1數(shù)值類(lèi)型

3.1.2浮點(diǎn)數(shù)和定點(diǎn)數(shù)類(lèi)型

DECIMAL(M,D)與浮點(diǎn)數(shù)類(lèi)型(M,D)的用法不同處:(1)DECIMAL類(lèi)型的M默認(rèn)值為10,D默認(rèn)值為0。如果在創(chuàng)建表時(shí),定義某字段為DECIMAL類(lèi)型而沒(méi)有帶任何參數(shù),則等同于DECIMAL(10,0),比如我們要存儲(chǔ)的數(shù)據(jù)是1.23,則保存到數(shù)據(jù)庫(kù)中的實(shí)際是1,而不是1.23。如果只帶一個(gè)參數(shù),則該參數(shù)為M值,D則取默認(rèn)值0。(2)M的取值范圍為1~65,取0時(shí)會(huì)被設(shè)為默認(rèn)值10,超出范圍則會(huì)報(bào)錯(cuò)。(3)D的取值范圍為0~30,同時(shí)必須滿(mǎn)足D<=M,否則會(huì)報(bào)錯(cuò)。3.1數(shù)值類(lèi)型

3.1.3BIT類(lèi)型

MySQL5.0以前,BIT與TINYINT表示同一種數(shù)據(jù)類(lèi)型。但是在MySQL5.0以及之后的版本中,BIT是一個(gè)完全不同的數(shù)據(jù)類(lèi)型。我們可以使用使用BIT數(shù)據(jù)類(lèi)型保存位字段值,即BIT可以方便的存儲(chǔ)二進(jìn)制數(shù)據(jù)。BIIT類(lèi)型大小表數(shù)范圍作用BIT(M)1~8字節(jié)BIT(1)~BIT(64)位字段值BIT類(lèi)型特性3.2日期和時(shí)間類(lèi)型

MySQL提供了5種不同的日期時(shí)間類(lèi)型:TIME、DATE、YEAR.、DATETIME和TIMESTAMP。每種日期與時(shí)間類(lèi)型都有一個(gè)取值范圍和一個(gè)“0”值。在非嚴(yán)格模式下,當(dāng)存儲(chǔ)的數(shù)據(jù)格式不合法時(shí),系統(tǒng)會(huì)給出警告,并將0值插入到數(shù)據(jù)庫(kù)中;當(dāng)插入的數(shù)據(jù)格式合法,但是超出數(shù)據(jù)類(lèi)型的范圍時(shí),該數(shù)據(jù)將被裁剪為范圍最接近的端點(diǎn)(最大值或最小值)。但是在嚴(yán)格模式下,非法或合法但超出范圍的數(shù)據(jù)是不允許存入數(shù)據(jù)庫(kù)的,系統(tǒng)會(huì)提示錯(cuò)誤。3.2日期和時(shí)間類(lèi)型

日期與時(shí)間類(lèi)型類(lèi)型格式取值范圍0值TIME'HH:MM:SS'('-838:59:59','838:59:59')'00:00:00'DATE'YYYY-MM-DD'('1000-01-01','9999-12-31')'0000-00-00'YEARYYYY(1901,2155),00000000DATETIME'YYYY-MM-DDHH:MM:SS'('1000-01-0100:00:00','9999-12-3123:59:59')'0000-00-0000:00:00'TIMESTAMP'YYYY-MM-DDHH:MM:SS'('1970-01-0100:00:01'UTC,'2038-01-1903:14:07'UTC)'0000-00-0000:00:00'3.2日期和時(shí)間類(lèi)型

3.2.1TIME類(lèi)型

TIME類(lèi)型專(zhuān)門(mén)用來(lái)存儲(chǔ)時(shí)間數(shù)據(jù),如果不需要記錄日期而只需要記錄時(shí)間的話,選擇TIME類(lèi)型是最合適的。MySQL中使用'HH:MM:SS'(如果所要表示的時(shí)間值較大,也可以使用'HHH:MM:SS')的形式來(lái)檢索和顯示TIME數(shù)據(jù)類(lèi)型。其中HH表示小時(shí),取值范圍為-838~838(因?yàn)門(mén)IME類(lèi)型不僅可以表示一天中的某個(gè)時(shí)間,此時(shí)小時(shí)取值為0~23;TIME還可以表示兩個(gè)事件的時(shí)間間隔,此時(shí)小時(shí)的取值可能會(huì)比23大,甚至是負(fù)數(shù));MM表示分,取值范圍為0~59;SS表示秒,取值范圍為0~59。3.2日期和時(shí)間類(lèi)型

3.2.1TIME類(lèi)型TIME值四種表示方式:(1)'DHH:MM:SS[.fraction]'有分隔符格式的字符串。其中D表示天數(shù),取值范圍為0~34;fraction表示小數(shù)部分。比如我們指定數(shù)據(jù)類(lèi)型為T(mén)IME,要存儲(chǔ)的值為'114:13:12.8',則實(shí)際存儲(chǔ)到數(shù)據(jù)庫(kù)中的值為'38:13:13',這是因?yàn)樵诒4鏀?shù)據(jù)時(shí),小時(shí)的值為(D*24+HH);而SS后邊的小數(shù)部分則會(huì)四舍五入(這是因?yàn)槲覀儧](méi)有指定小數(shù)部分的位數(shù),所以默認(rèn)沒(méi)有小數(shù)部分)。(2)'HHMMSS[.fraction]'無(wú)分隔符的字符串。如果是個(gè)有意義的時(shí)間值,如'101112',則會(huì)被解析為'10:11:12';但如果是個(gè)沒(méi)有意義的時(shí)間值,如'109712'(非法時(shí)間值,其分鐘部分的數(shù)值為97,沒(méi)有意義),則系統(tǒng)將提示“Incorrecttimevalue”錯(cuò)誤。3.2日期和時(shí)間類(lèi)型

3.2.1TIME類(lèi)型TIME值四種表示方式:(3)HHMMSS[.fraction]格式的數(shù)字。這種格式是以數(shù)字形式表示TIME數(shù)據(jù)的(注意:沒(méi)有單引號(hào))。如果該數(shù)字是個(gè)有意義的時(shí)間值,如111213,則會(huì)被轉(zhuǎn)換為標(biāo)準(zhǔn)時(shí)間格式的'11:12:13';如果該數(shù)字是個(gè)不合法的日期值,如111267(該數(shù)據(jù)有不合法的秒數(shù)),則系統(tǒng)會(huì)提示“Incorrecttimevalue”錯(cuò)誤。如果直接輸入數(shù)字0,則會(huì)轉(zhuǎn)化成TIME數(shù)據(jù)類(lèi)型對(duì)應(yīng)的0值,即'00:00:00'。(4)使用CURRENT_TIME、NOW()或者SYSDATE()三種方式獲取系統(tǒng)當(dāng)前時(shí)間。3.2日期和時(shí)間類(lèi)型

3.2.2DATE類(lèi)型

DATE類(lèi)型是專(zhuān)門(mén)用來(lái)存儲(chǔ)日期數(shù)據(jù)的,如果只需要存儲(chǔ)日期值而不需要時(shí)間部分時(shí),則應(yīng)該選擇DATE類(lèi)型。MySQL中使用'YYYY-MM-DD'的形式來(lái)檢索和顯示DATE數(shù)據(jù)類(lèi)型。其中YYYY表示年,取值范圍為1000~9999;MM表示月,取值范圍為1~12;DD表示日,取值范圍為1~31。DATE數(shù)據(jù)類(lèi)型支持的范圍是'1000-01-01'到'9999-12-31'。3.2日期和時(shí)間類(lèi)型

3.2.2DATE類(lèi)型DATE值五種表示方式:(1)'YYYY-MM-DD'有分隔符格式的字符串。如果數(shù)據(jù)中月和日的值小于10,則不需要指定兩位數(shù),直接指定一位數(shù)即可。如DATE數(shù)據(jù)'2017-7-9'與'2017-07-09'表示的含義是相同的。(2)'YY-MM-DD'有分隔符格式的字符串。其中YY的取值如果在00~69范圍之間,則年份自動(dòng)轉(zhuǎn)換為2000~2069,如果在70~99范圍之間,則年份自動(dòng)轉(zhuǎn)換為1970~1999。如數(shù)據(jù)'17-7-9'會(huì)轉(zhuǎn)換成'2017-07-09';數(shù)據(jù)'70-7-9'則會(huì)轉(zhuǎn)換成'1970-07-09'。3.2日期和時(shí)間類(lèi)型

3.2.2DATE類(lèi)型(3)'YYYYMMDD'或者'YYMMDD'無(wú)分隔符格式的字符串。如果DATE數(shù)據(jù)是個(gè)有意義的日期值,如'20170711'和'170711'均會(huì)被轉(zhuǎn)換為'2017-07-11';如果DATE數(shù)據(jù)是個(gè)不合法的日期值,如'171332'(其中的月和日部分無(wú)意義),則系統(tǒng)會(huì)提示“Incorrectdatevalue”錯(cuò)誤。(4)YYYYMMDD或者YYMMDD格式的數(shù)字。這種格式是以數(shù)字形式表示DATE數(shù)據(jù)的(注意:沒(méi)有單引號(hào))。如果該數(shù)字是個(gè)有意義的日期值,如20170711和170711均會(huì)被轉(zhuǎn)換為標(biāo)準(zhǔn)日期格式的'2017-07-11';如果該數(shù)字是個(gè)不合法的日期值,如171332則系統(tǒng)會(huì)提示“Incorrectdatevalue”錯(cuò)誤。如果直接輸入數(shù)字0,則會(huì)轉(zhuǎn)化成DATE數(shù)據(jù)類(lèi)型對(duì)應(yīng)的0值,即'0000-00-00'。用法與無(wú)分隔符格式的字符串表示形式基本一致。(5)使用CURRENT_DATE、NOW()或者SYSDATE()三種方式獲取系統(tǒng)當(dāng)前日期。3.2日期和時(shí)間類(lèi)型

3.2.3YEAR類(lèi)型

YEAR類(lèi)型只是用來(lái)表示年份的數(shù)據(jù)類(lèi)型,MySQL中使用YYYY來(lái)檢索和顯示YEAR類(lèi)型,其取值范圍為1901~2155以及0000。3.2日期和時(shí)間類(lèi)型

3.2.3YEAR類(lèi)型YEAR類(lèi)型四種表示方式:(1)YYYY或者'YYYY'格式的4位數(shù)字或字符串。使用該形式表示的年份范圍在1901~2155之間,具體寫(xiě)法如2017、'2017';但如果數(shù)據(jù)超出該范圍,則會(huì)提示“Outofrange”錯(cuò)誤,如數(shù)據(jù)2050或'2050'。(2)Y、YY、'Y'、'YY'格式的1~2位數(shù)字。如果取值范圍在1~69之間,則將年份自動(dòng)轉(zhuǎn)換為2001~2069;如果取值范圍在70~99之間,則將年份自動(dòng)轉(zhuǎn)換為1970~1999;如果取值為0,則年份會(huì)轉(zhuǎn)換成YEAR類(lèi)型對(duì)應(yīng)的0值:0000。(3)'Y'、'YY'格式的1~2位字符串。如果取值范圍在'0'~'69'之間,則將年份自動(dòng)轉(zhuǎn)換為2000~2069;如果取值范圍在'70'~'99'之間,則將年份自動(dòng)轉(zhuǎn)換為1970~1999。(4)使用NOW()或者SYSDATE()兩種方式獲取系統(tǒng)當(dāng)前年份。3.2日期和時(shí)間類(lèi)型

3.2.4DATETIME類(lèi)型

DATETIME類(lèi)型適用于需要同時(shí)存儲(chǔ)日期與時(shí)間的場(chǎng)合。MySQL中使用'YYYY-MM-DDHH:MM:SS'的形式來(lái)檢索和顯示DATETIME類(lèi)型數(shù)據(jù),其支持的取值范圍為'1000-01-0100:00:00'~'9999-12-3123:59:59'。3.2日期和時(shí)間類(lèi)型

3.2.4DATETIME類(lèi)型DATETIME值的五種指定方式:(1)'YYYY-MM-DDHH:MM:SS[.fraction]'有分隔符格式的字符串。這種表示方式下,DATETIME類(lèi)型的取值范圍為'1000-01-0100:00:00'~'9999-12-3123:59:59'。(2)'YY-MM-DDHH:MM:SS[.fraction]'有分隔符格式的字符串。其中YY的取值范圍與DATE類(lèi)型種的YY相同:YY的取值如果在00~69范圍之間,則年份部分會(huì)自動(dòng)轉(zhuǎn)換為2000~2069,如果YY在70~99范圍之間,則年份自動(dòng)轉(zhuǎn)換為1970~1999。(3)'YYYYMMDDHHMMSS[.fraction]'或者'YYMMDDHHMMSS[.fraction]'無(wú)分隔符格式的字符串。'YYYYMMDDHHMMSS[.fraction]'的使用方式同'YYYY-MM-DDHH:MM:SS[.fraction]';'YYMMDDHHMMSS[.fraction]'的使用方式同'YY-MM-DDHH:MM:SS[.fraction]'。3.2日期和時(shí)間類(lèi)型

3.2.4DATETIME類(lèi)型DATETIME值的五種指定方式:(4)YYYYMMDDHHMMSS[.fraction]或者YYMMDDHHMMSS[.fraction]格式的數(shù)字。如果要存儲(chǔ)的數(shù)字是個(gè)有意義的日期與時(shí)間值,如20170711160645和170711160645均會(huì)被轉(zhuǎn)換為標(biāo)準(zhǔn)日期格式的'2017-07-1116:06:45';如果要存儲(chǔ)的數(shù)字是個(gè)不合法的日期與時(shí)間值,如171332160645則系統(tǒng)會(huì)提示“Incorrectdatetimevalue”錯(cuò)誤。如果直接輸入數(shù)字0,則會(huì)轉(zhuǎn)化成DATETIME數(shù)據(jù)類(lèi)型對(duì)應(yīng)的0值,即'0000-00-0000:00:00'。(5)使用NOW()或者SYSDATE()兩種方式獲取系統(tǒng)當(dāng)前日期。3.2日期和時(shí)間類(lèi)型

3.2.5TIMESTAMP類(lèi)型

TIMESTEMP類(lèi)型與DATETIME類(lèi)型相似,都是存儲(chǔ)日期與時(shí)間的。其檢索與顯示形式同樣是'YYYY-MM-DDHH:MM:SS',但是取值范圍要比DATETIME小,為'1970-01-0100:00:01'UTC~'2038-01-1903:14:07'UTC。3.2日期和時(shí)間類(lèi)型

3.2.5TIMESTAMP類(lèi)型TIMESTEMP類(lèi)型的數(shù)據(jù)指定方式與DATETIME基本相同,兩者的不同之處在于以下幾點(diǎn):(1)數(shù)據(jù)的取值范圍不同,TIMESTEMP類(lèi)型的取值范圍更小。(2)如果我們對(duì)TIMESTAMP類(lèi)型的字段沒(méi)有明確賦值,或是被賦與了NULL值,MySQL會(huì)自動(dòng)將該字段賦值為系統(tǒng)當(dāng)前的日期與時(shí)間。(3)TIMESTEMP類(lèi)型還可以使用CURRENT_TIMESTAMP來(lái)獲取系統(tǒng)當(dāng)前時(shí)間。(4)TIMESTEMP類(lèi)型有一個(gè)很大的特點(diǎn),那就是時(shí)間是根據(jù)時(shí)區(qū)來(lái)顯示的。例如,在東八區(qū)插入的TIMESTEMP數(shù)據(jù)為2017-07-1116:43:25,在東七區(qū)顯示時(shí),時(shí)間部分就變成了15:43:25,在東九區(qū)顯示時(shí),時(shí)間部分就變成了17:43:25。3.3字符串類(lèi)型

字符串類(lèi)型是在數(shù)據(jù)庫(kù)中存儲(chǔ)字符串的數(shù)據(jù)類(lèi)型。MySQL中提供了多種字符串類(lèi)型,分別為CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。使用不同的字符串類(lèi)型可以實(shí)現(xiàn)從簡(jiǎn)單的一個(gè)字符到巨大的文本塊或二進(jìn)制字符串?dāng)?shù)據(jù)的存儲(chǔ)。3.3字符串類(lèi)型

字符串類(lèi)型大小描述CHAR(M)0255字節(jié)允許長(zhǎng)度0~M個(gè)字符的定長(zhǎng)字符串VARCHAR(M)0~65535字節(jié)允許長(zhǎng)度0~M個(gè)字符的變長(zhǎng)字符串(M)0~255字節(jié)允許長(zhǎng)度0~M個(gè)字節(jié)的定長(zhǎng)二進(jìn)制字符串VARBINARY(M)0~65535字節(jié)允許長(zhǎng)度0~M個(gè)字節(jié)的變長(zhǎng)二進(jìn)制字符串TINYBLOB0~255字節(jié)二進(jìn)制形式的短文本數(shù)據(jù)(長(zhǎng)度為不超過(guò)255個(gè)字符)TINYTEXT0~255字節(jié)短文本數(shù)據(jù)BLOB0~65535字節(jié)二進(jìn)制形式的長(zhǎng)文本數(shù)據(jù)TEXT0~65535字節(jié)長(zhǎng)文本數(shù)據(jù)MEDIUMBLOB0~16777215字節(jié)二進(jìn)制形式的中等長(zhǎng)度文本數(shù)據(jù)MEDIUMTEXT0~16777215字節(jié)中等長(zhǎng)度文本數(shù)據(jù)LOGNGBLOB0~4294967295字節(jié)二進(jìn)制形式的極大文本數(shù)據(jù)LONGTEXT0~4294967295字節(jié)極大文本數(shù)據(jù)

CHAR和VARCHAR類(lèi)型相似,均用于存于較短的字符串,主要的不同之處在于存儲(chǔ)方式。CHAR類(lèi)型長(zhǎng)度固定,VARCHAR類(lèi)型的長(zhǎng)度可變。CHAR類(lèi)型用于存儲(chǔ)定長(zhǎng)的字符串,該長(zhǎng)度在創(chuàng)建表時(shí)便以CHAR(M)的形式指定。其中M即指定的字符串長(zhǎng)度,取值范圍為0~255。VARCHAR類(lèi)型用于存儲(chǔ)不定長(zhǎng)的字符串,即VARCHAR類(lèi)型的長(zhǎng)度是可變的。我們同樣是以VARCHAR(M)的形式指定長(zhǎng)度,其中M指的是最大長(zhǎng)度,取值范圍為0~65535,而存儲(chǔ)的數(shù)據(jù)所占空間大小為字符串的實(shí)際長(zhǎng)度加1。3.3字符串類(lèi)型

3.3.1CHAR和VARCHAR類(lèi)型3.3字符串類(lèi)型

3.3.1CHAR和VARCHAR類(lèi)型存儲(chǔ)值CHAR(4)大小VARCHAR(4)大小''''4字節(jié)''1字節(jié)'ab''ab'4字節(jié)'ab'3字節(jié)'abcd''abcd'4字節(jié)'abcd'5字節(jié)'abcdefgh'錯(cuò)誤—錯(cuò)誤—CHAR(4)與VARCHAR(4)對(duì)比

BINARY和VARBINARY數(shù)據(jù)類(lèi)型與CHAR和VARCHAR數(shù)據(jù)類(lèi)型類(lèi)似,只不過(guò)前者用來(lái)存儲(chǔ)二進(jìn)制字符串,而非字符型字符串。也就是說(shuō),BINARY和VARBINARY類(lèi)型中并沒(méi)有字符集的概念,所以對(duì)其進(jìn)行的排序和比較都是按照二進(jìn)制值進(jìn)行計(jì)算的。其中BINARY類(lèi)型長(zhǎng)度固定,VARBINARY類(lèi)型長(zhǎng)度可變。BINARY類(lèi)型用來(lái)存儲(chǔ)長(zhǎng)度固定的二進(jìn)制字符串。指定數(shù)據(jù)類(lèi)型的方式為BINARY(M),其中M為字節(jié)長(zhǎng)度,取值范圍為0~255。如果要存儲(chǔ)的數(shù)據(jù)長(zhǎng)度不足M,則在數(shù)據(jù)右邊填補(bǔ)'\0'以達(dá)到指定的字節(jié)長(zhǎng)度M。例如:定義數(shù)據(jù)類(lèi)型為BINARY(4),要存儲(chǔ)的數(shù)據(jù)為'ab',則在其右側(cè)補(bǔ)充兩個(gè)'\0'轉(zhuǎn)化為'ab\0\0'后再存儲(chǔ)到數(shù)據(jù)庫(kù)中。3.3字符串類(lèi)型

3.3.2BINARY和VARBINARY類(lèi)型VARBINARY類(lèi)型用來(lái)存儲(chǔ)長(zhǎng)度可變的二進(jìn)制字符串。指定數(shù)據(jù)類(lèi)型的方式同樣為VARBINARY(M),其中M為最大字節(jié)長(zhǎng)度,取值范圍為0~65535。存儲(chǔ)數(shù)據(jù)所占的空間為數(shù)據(jù)的實(shí)際占用空間加1,這樣能夠有效的系統(tǒng)空間、提高存儲(chǔ)效率。3.3字符串類(lèi)型

3.3.2BINARY和VARBINARY類(lèi)型

TEXT類(lèi)型只能用來(lái)存儲(chǔ)數(shù)據(jù)量比較大的文本數(shù)據(jù)。MySQL中提供了四種TEXT的子類(lèi)型:TINYTEXT、TEXT、MEDIUMTEXT以及LONGTEXT。這四種TEXT的區(qū)別在于能夠保存數(shù)據(jù)的最大長(zhǎng)度不同,其中TINYTEXT的長(zhǎng)度最小,LONGTEXT的長(zhǎng)度最大。BLOB類(lèi)型用來(lái)存儲(chǔ)數(shù)據(jù)量比較大的二進(jìn)制數(shù)據(jù)。BLOB類(lèi)型也包括四種子類(lèi)型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。這四種BLOB類(lèi)型最大的區(qū)別也是最大長(zhǎng)度不同,其中TINYBLOB的長(zhǎng)度最小,LONGBLOB的長(zhǎng)度最大,具體長(zhǎng)度詳見(jiàn)表3-6。BLOB類(lèi)型與TEXT類(lèi)型很類(lèi)似。不同點(diǎn)在于BLOB類(lèi)型用于存儲(chǔ)二進(jìn)制數(shù)據(jù)。BLOB類(lèi)型數(shù)據(jù)是基于數(shù)據(jù)的二進(jìn)制編碼進(jìn)行排序和比較,而TEXT類(lèi)型是根據(jù)文本中字符對(duì)應(yīng)的字符集進(jìn)行排序和比較的,這一點(diǎn)類(lèi)似于BINARY與CHAR的區(qū)別。3.3字符串類(lèi)型

3.3.3TEXT和BLOB類(lèi)型

ENUM類(lèi)型的中文名稱(chēng)為枚舉類(lèi)型。ENUM是一個(gè)字符串對(duì)象,其值通常選自一個(gè)允許值列表中,該列表在創(chuàng)建表時(shí)會(huì)被明確地設(shè)定,設(shè)定的格式為:ENUM('value1','value2','value3','value4','value5',···)。在使用ENUM類(lèi)型時(shí),主要有以下幾條注意事項(xiàng):(1)從允許值列表選擇值時(shí),可以使用字符串對(duì)象所對(duì)應(yīng)的索引,也可以使用字符串對(duì)象本身。(2)在嚴(yán)格模式下,如果選取了一個(gè)無(wú)效值(即一個(gè)不在允許值列表中的字符串對(duì)象),則會(huì)提示“Datatruncatedforcolumn”錯(cuò)誤。3.3字符串類(lèi)型

3.3.4ENUM類(lèi)型

(3)在非嚴(yán)格模式下,如果選取了一個(gè)無(wú)效值,那么空字符串將作為一個(gè)特殊的錯(cuò)誤值被插入。為了區(qū)分無(wú)效值導(dǎo)致的空字符串和普通的空字符串,MySQL中規(guī)定前者的索引為0。(4)如果定義某ENUM字段時(shí)標(biāo)明值非空,則無(wú)法插入NULL值,但如果定義時(shí)并沒(méi)有標(biāo)明該值非空,則可以將NULL值插入數(shù)據(jù)中,該NULL值對(duì)應(yīng)的索引值也為NULL。3.3字符串類(lèi)型

3.3.4ENUM類(lèi)型

SET類(lèi)型也是一個(gè)字符串對(duì)象,與ENUM類(lèi)似但不相同。SET類(lèi)型可以從允許值列表中選擇多個(gè)字符串成員,其列表的設(shè)定方式與ENUM相似,為:SET('value1','value2','value3','value4','value5',···),但SET列表中字符串成員的個(gè)數(shù)范圍為0~64。列表中的每一個(gè)字符串成員同樣都對(duì)應(yīng)一個(gè)索引值,依次為1、2、3、4、5···,存入數(shù)據(jù)庫(kù)中的依然是該索引值,而非字符串對(duì)象。3.3字符串類(lèi)型

3.3.5SET類(lèi)型在使用SET類(lèi)型時(shí),主要有以下幾條注意事項(xiàng):(1)在非嚴(yán)格模式下,SET同樣可以使用空字符串代替無(wú)效值插入數(shù)據(jù)庫(kù)中,而在嚴(yán)格模式下插入無(wú)效值會(huì)提示錯(cuò)誤。(2)在非嚴(yán)格模式下,如果插入一個(gè)即有有效值又有無(wú)效值的記錄,那么MySQL會(huì)自動(dòng)過(guò)濾掉無(wú)效值,只插入有效值,而在嚴(yán)格模式下則會(huì)提示錯(cuò)誤。(3)如果選擇的多個(gè)字符串對(duì)象中包含有重復(fù)元素,則MySQL會(huì)自動(dòng)去除重復(fù)的元素,如選擇的成員為('a,b,a'),但存入數(shù)據(jù)庫(kù)的是('a,b')。因?yàn)镾ET類(lèi)型的數(shù)據(jù)能夠從設(shè)定的允許值列表中選擇多個(gè),所以SET適合存儲(chǔ)表單界面中的“多選值”。3.3字符串類(lèi)型

3.3.5SET類(lèi)型

從MySQL5.7.8開(kāi)始,MySQL便可以支持原生JSON(JavaScriptObjectNotation)數(shù)據(jù)類(lèi)型,這樣能夠更加快速有效的訪問(wèn)JSON文件中的數(shù)據(jù)。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,采用了獨(dú)立于語(yǔ)言的文本格式,類(lèi)似XML但是比XML簡(jiǎn)單,更易讀、易編寫(xiě)。對(duì)計(jì)算機(jī)來(lái)說(shuō)易于解析和生成。3.4JSON類(lèi)型

在MySQL中支持兩種JSON數(shù)據(jù),即JSON數(shù)組和JSON對(duì)象:(1)JSON數(shù)組。JSON數(shù)組中可以存儲(chǔ)多種數(shù)據(jù)類(lèi)型,其格式為:[值1,值2,值3,···],以“[”開(kāi)始,以“]”結(jié)束,兩個(gè)數(shù)據(jù)之間使用“,”隔開(kāi),如["abc",10,null,true,false]。(2)JSON對(duì)象。JSON對(duì)象是以“鍵/值”對(duì)形式存儲(chǔ)的,其格式為:{“鍵1”:值1,“鍵2”:值2,···},以“{”開(kāi)始,以“}”結(jié)束,每個(gè)“鍵”后跟一個(gè)“:”;多個(gè)“鍵/值”對(duì)之間使用“,”(逗號(hào))分隔,如{"k1":"value","k2":10}。3.4JSON類(lèi)型

本章總結(jié)MySQL支持多種數(shù)據(jù)類(lèi)型,主要包括數(shù)值類(lèi)型、日期和時(shí)間類(lèi)型和字符串類(lèi)型三種,從MySQL5.7開(kāi)始支持JSON類(lèi)型。數(shù)值類(lèi)型包括:整數(shù)類(lèi)型、浮點(diǎn)數(shù)類(lèi)型、定點(diǎn)數(shù)類(lèi)型和BIT類(lèi)型。日期與時(shí)間類(lèi)型主要包括:TIME、DATE、YEAR、DATETIME、TIMESTAMP。用戶(hù)可以根據(jù)開(kāi)發(fā)需求選擇合適的類(lèi)型。字符串類(lèi)型主要包括:CHAR、VARCHAR、BINARY、VARBINARY、TEXT、BLOB、ENUM、SET。在MySQL中支持兩種JSON數(shù)據(jù),即JSON數(shù)組和JSON對(duì)象。本章作業(yè)1.列舉浮點(diǎn)數(shù)與定點(diǎn)數(shù)的異同之處。2.如果想要數(shù)據(jù)庫(kù)中存儲(chǔ)的時(shí)間顯示為用戶(hù)所在時(shí)區(qū)的時(shí)間,應(yīng)該選取哪種日期與時(shí)間類(lèi)型?3.列舉CHAR與VARCHAR類(lèi)型的異同之處。4.列舉ENUM與SET類(lèi)型的異同之處。第四章數(shù)據(jù)庫(kù)的基本操作本章主要內(nèi)容創(chuàng)建數(shù)據(jù)庫(kù)查看數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)刪除數(shù)據(jù)庫(kù)123主要內(nèi)容44.1創(chuàng)建數(shù)據(jù)庫(kù)

4.1.1使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)(1)連接數(shù)據(jù)庫(kù)。(2)創(chuàng)建一個(gè)SQL語(yǔ)句執(zhí)行窗口。(3)創(chuàng)建數(shù)據(jù)庫(kù)。語(yǔ)法格式如下所示:createdatabasedb_name;4.1創(chuàng)建數(shù)據(jù)庫(kù)

4.1.1使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)【示例4-1】使用SQL語(yǔ)句創(chuàng)建名為“test1”的數(shù)據(jù)庫(kù)createdatabasetest1;4.1創(chuàng)建數(shù)據(jù)庫(kù)

4.1.1使用SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)【示例4-1】執(zhí)行結(jié)果4.1創(chuàng)建數(shù)據(jù)庫(kù)

4.1.2使用圖形界面創(chuàng)建數(shù)據(jù)庫(kù)(1)右擊“bjsxt”在彈出的列表中選擇“NewDatabase”選項(xiàng)4.1創(chuàng)建數(shù)據(jù)庫(kù)

4.1.2使用圖形界面創(chuàng)建數(shù)據(jù)庫(kù)(2)在彈出的“NewDatabase”窗口的“General”欄中按照要求輸入數(shù)據(jù)庫(kù)名稱(chēng)、字符集和排序規(guī)則。4.1創(chuàng)建數(shù)據(jù)庫(kù)

4.1.2使用圖形界面創(chuàng)建數(shù)據(jù)庫(kù)在“SQLPreview”欄中,我們可以看到系統(tǒng)根據(jù)我們的操作自動(dòng)生成的SQL語(yǔ)句。(3)點(diǎn)擊“OK”按鈕之后,會(huì)在左側(cè)的目錄結(jié)構(gòu)中看到名為test2的數(shù)據(jù)庫(kù)。4.2查看數(shù)據(jù)庫(kù)

4.2.1使用SQL語(yǔ)句查看數(shù)據(jù)庫(kù)1.查看所有的數(shù)據(jù)庫(kù),在SQL語(yǔ)句執(zhí)行窗口中輸入:showdatabases;4.2查看數(shù)據(jù)庫(kù)

4.2.1使用SQL語(yǔ)句查看數(shù)據(jù)庫(kù)四個(gè)MySQL自帶的數(shù)據(jù)庫(kù):(1)information_schema:提供了訪問(wèn)數(shù)據(jù)庫(kù)元數(shù)據(jù)的方式。其中保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫(kù)的信息,如數(shù)據(jù)庫(kù)名、表名、列的數(shù)據(jù)類(lèi)型、訪問(wèn)權(quán)限等。(2)mysql:這個(gè)是MySQL的核心數(shù)據(jù)庫(kù)。主要負(fù)責(zé)存儲(chǔ)數(shù)據(jù)庫(kù)的用戶(hù)、權(quán)限設(shè)置、關(guān)鍵字以及MySQL自己需要使用的控制和管理信息等。(3)performance_schema:主要用于收集數(shù)據(jù)庫(kù)服務(wù)器性能參數(shù),如提供進(jìn)程等待的詳細(xì)信息,包括鎖、互斥變量、文件信息;保存歷史的事件匯總信息,為提供MySQL服務(wù)器性能做出詳細(xì)的判斷;對(duì)于新增和刪除監(jiān)控事件點(diǎn)都非常容易,并可以改變MySQL服務(wù)器的監(jiān)控周期等。(4)sys:是MySQL5.7新增的系統(tǒng)數(shù)據(jù)庫(kù),其在MySQL5.7中是默認(rèn)存在的,在MySQL5.6及以上版本可以手動(dòng)導(dǎo)入。這個(gè)庫(kù)通過(guò)視圖的形式把information_schema和performance_schema結(jié)合起來(lái),查詢(xún)出更加令人容易理解的數(shù)據(jù)。4.2查看數(shù)據(jù)庫(kù)

4.2.1使用SQL語(yǔ)句查看數(shù)據(jù)庫(kù)2.查看指定的數(shù)據(jù)庫(kù)使用SQL語(yǔ)句查看test1數(shù)據(jù)庫(kù)showcreatedatabasedb_name;showcreatedatabasetest1;4.2查看數(shù)據(jù)庫(kù)

4.2.1使用SQL語(yǔ)句查看數(shù)據(jù)庫(kù)查看test1數(shù)據(jù)庫(kù)執(zhí)行結(jié)果:4.2查看數(shù)據(jù)庫(kù)

4.2.2使用圖形界面查看數(shù)據(jù)庫(kù)使用Navicat軟件查看所有的數(shù)據(jù)庫(kù)非常簡(jiǎn)單,所有的數(shù)據(jù)庫(kù)直接顯示在左側(cè)視圖中4.2查看數(shù)據(jù)庫(kù)

溫馨提示

  • 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)論