《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用(微課版)》全套教學(xué)課件_第1頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用(微課版)》全套教學(xué)課件_第2頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用(微課版)》全套教學(xué)課件_第3頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用(微課版)》全套教學(xué)課件_第4頁(yè)
《MySQL數(shù)據(jù)庫(kù)原理與應(yīng)用(微課版)》全套教學(xué)課件_第5頁(yè)
已閱讀5頁(yè),還剩466頁(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)介

graduationthesisdefense數(shù)據(jù)庫(kù)基礎(chǔ)本章概述

主要內(nèi)容

本章學(xué)習(xí)目標(biāo)

全套可編輯PPT課件ch01數(shù)據(jù)庫(kù)基礎(chǔ)ch02初識(shí)MySQLch03MySQL圖形化管理工具ch04數(shù)據(jù)庫(kù)操作ch05數(shù)據(jù)表操作ch06數(shù)據(jù)記錄操作ch07數(shù)據(jù)查詢(xún)ch08MySQL函數(shù)ch09運(yùn)算符ch10視圖ch11存儲(chǔ)程序ch12觸發(fā)器ch13MySQL權(quán)限與安全管理ch14數(shù)據(jù)備份與恢復(fù)ch15MySQL日志ch16性能優(yōu)化ch17綜合項(xiàng)目本章概述本章主要介紹數(shù)據(jù)庫(kù)的相關(guān)概念,主要包括數(shù)據(jù)庫(kù)技術(shù)的發(fā)展、數(shù)據(jù)庫(kù)系統(tǒng)的組成、數(shù)據(jù)模型的概念與規(guī)范、結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL、數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)、E-R圖的設(shè)計(jì)方法,以及數(shù)據(jù)庫(kù)設(shè)計(jì)。通過(guò)本章的學(xué)習(xí),讀者可以對(duì)數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)有一個(gè)概括性的認(rèn)識(shí),并對(duì)數(shù)據(jù)庫(kù)設(shè)計(jì)步驟有大致的了解。本章學(xué)習(xí)目標(biāo)了解數(shù)據(jù)庫(kù)技術(shù)的發(fā)展階段,數(shù)據(jù)庫(kù)系統(tǒng)的組成,數(shù)據(jù)模型與規(guī)范化,結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL;熟記數(shù)據(jù)庫(kù)的體系結(jié)構(gòu),內(nèi)容包括數(shù)據(jù)庫(kù)三級(jí)模式結(jié)構(gòu)、三級(jí)模式之間的映射;

掌握E-R圖的概念及設(shè)計(jì),內(nèi)容包括實(shí)體、屬性、關(guān)系的概念,以及E-R圖設(shè)計(jì)原則;

掌握數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟與方法,內(nèi)容包括為實(shí)體建立數(shù)據(jù)表、為表建立主鍵和外鍵、為字段選擇合適的數(shù)據(jù)類(lèi)型、定義約束條件。0501020304E-R圖數(shù)據(jù)模型的體系結(jié)構(gòu)本章小結(jié)數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)設(shè)計(jì)目錄0501020304E-R圖數(shù)據(jù)模型的體系結(jié)構(gòu)本章小結(jié)數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)設(shè)計(jì)目錄PART01數(shù)據(jù)庫(kù)技術(shù)的發(fā)展;數(shù)據(jù)庫(kù)系統(tǒng)的組成;數(shù)據(jù)模型與規(guī)范化;結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL。數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)技術(shù)的發(fā)展20世紀(jì)50年代后期到20世紀(jì)60年代中期,硬件設(shè)備和軟件技術(shù)都有了進(jìn)一步發(fā)展,大容量的磁盤(pán)等輔助存儲(chǔ)設(shè)備的出現(xiàn),使得專(zhuān)門(mén)管理輔助設(shè)備上的數(shù)據(jù)的文件系統(tǒng)應(yīng)運(yùn)而生。本階段的特點(diǎn)是:數(shù)據(jù)可以長(zhǎng)期保留;數(shù)據(jù)不屬于某個(gè)特定應(yīng)用;文件組織形式的多樣化。缺點(diǎn)是:數(shù)據(jù)冗余、數(shù)據(jù)不一致性、數(shù)據(jù)孤立。20世紀(jì)50年代中期以前,計(jì)算機(jī)主要用于科學(xué)計(jì)算。本階段的特點(diǎn)是:數(shù)據(jù)量較少;數(shù)據(jù)不保存;沒(méi)有軟件系統(tǒng)對(duì)數(shù)據(jù)進(jìn)行管理。人工管理階段文件系統(tǒng)階段20世紀(jì)60年代后期以來(lái),計(jì)算機(jī)應(yīng)用于管理系統(tǒng),出現(xiàn)了數(shù)據(jù)庫(kù)系統(tǒng)來(lái)統(tǒng)一管理數(shù)據(jù)。本階段的特點(diǎn)是:采用復(fù)雜的數(shù)據(jù)模型表示數(shù)據(jù)結(jié)構(gòu);有較高的數(shù)據(jù)獨(dú)立性。數(shù)據(jù)庫(kù)系統(tǒng)階段數(shù)據(jù)庫(kù)系統(tǒng)的組成用戶(hù)存儲(chǔ)數(shù)據(jù)的集合,包括邏輯結(jié)構(gòu)和物理結(jié)構(gòu)。數(shù)據(jù)庫(kù)管理系統(tǒng)負(fù)責(zé)數(shù)據(jù)庫(kù)設(shè)計(jì)和維護(hù)。進(jìn)行數(shù)據(jù)查詢(xún)和操作。包括用戶(hù)界面和業(yè)務(wù)邏輯。數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)管理員應(yīng)用系統(tǒng)用于數(shù)據(jù)定義、數(shù)據(jù)操作和數(shù)據(jù)控制的系統(tǒng)。數(shù)據(jù)模型與規(guī)范化-數(shù)據(jù)模型的概念數(shù)據(jù)模型(DataModel)是數(shù)據(jù)特征的抽象,它從抽象層次上描述了系統(tǒng)的靜態(tài)特征、動(dòng)態(tài)行為和約束條件,為數(shù)據(jù)庫(kù)系統(tǒng)的信息表示與操作提供一個(gè)抽象的框架。數(shù)據(jù)模型所描述的內(nèi)容有三部分,分別是數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作和數(shù)據(jù)約束。數(shù)據(jù)模型與規(guī)范化-不同應(yīng)用層次的數(shù)據(jù)模型概念數(shù)據(jù)模型是一種面向用戶(hù)、面向客觀世界的模型,主要用來(lái)描述世界的概念化結(jié)構(gòu),它是數(shù)據(jù)庫(kù)的設(shè)計(jì)人員在設(shè)計(jì)的初始階段。邏輯數(shù)據(jù)模型是一種面向數(shù)據(jù)庫(kù)系統(tǒng)的模型,是具體的DBMS所支持的數(shù)據(jù)模型,如層次數(shù)據(jù)模型、網(wǎng)狀數(shù)據(jù)模型、關(guān)系數(shù)據(jù)模型。物理數(shù)據(jù)模型是一種面向計(jì)算機(jī)物理表示的模型,描述了數(shù)據(jù)在儲(chǔ)存介質(zhì)上的組織結(jié)構(gòu),它不但與具體的DBMS有關(guān),而且還與操作系統(tǒng)和硬件有關(guān)。據(jù)模型與規(guī)范化-常見(jiàn)的邏輯數(shù)據(jù)模型層次模型將數(shù)據(jù)組織成一對(duì)多關(guān)系的結(jié)構(gòu),用樹(shù)形結(jié)構(gòu)表示實(shí)體及實(shí)體間的聯(lián)系。網(wǎng)狀模型用有向圖結(jié)構(gòu)表示實(shí)體類(lèi)型及實(shí)體間聯(lián)系的數(shù)據(jù)模型被稱(chēng)為網(wǎng)狀模型,是具有多對(duì)多類(lèi)型的數(shù)據(jù)組織方式。關(guān)系模型關(guān)系模型以二維表來(lái)描述數(shù)據(jù)。在關(guān)系模型中,每個(gè)表都有多個(gè)字段列和記錄行,而每個(gè)字段列都有固定的屬性(數(shù)字、字符、日期等)。關(guān)系數(shù)據(jù)庫(kù)規(guī)范化第二范式是在第一范式的基礎(chǔ)上建立起來(lái)的,即滿足第二范式必先滿足第一范式。第二范式要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)體(即各個(gè)記錄行)必須可以被唯一地區(qū)分。第三范式是在第二范式的基礎(chǔ)上建立起來(lái)的,即滿足第三范式必先滿足第二范式。第三范式要求關(guān)系表不存在非關(guān)鍵字列對(duì)任意候選關(guān)鍵字列的傳遞函數(shù)依賴(lài)。第三范式第一范式第一范式是指在一個(gè)關(guān)系中,消除重復(fù)字段,且各字段都是最小的邏輯存儲(chǔ)單位。這是最基本的范式。第二范式數(shù)據(jù)模型與規(guī)范化-關(guān)系數(shù)據(jù)庫(kù)設(shè)計(jì)原則數(shù)據(jù)庫(kù)內(nèi)數(shù)據(jù)文件的數(shù)據(jù)組織應(yīng)獲得最大限度的共享、最小的冗余度,消除數(shù)據(jù)及數(shù)據(jù)依賴(lài)關(guān)系中的冗余部分,使依賴(lài)于同一個(gè)數(shù)據(jù)模型的數(shù)據(jù)達(dá)到有效的分離。保證輸入、修改數(shù)據(jù)時(shí)數(shù)據(jù)的一致性與正確性。保證數(shù)據(jù)與使用數(shù)據(jù)的應(yīng)用程序之間的高度獨(dú)立性。結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL結(jié)構(gòu)化查詢(xún)語(yǔ)言(StructuredQueryLanguage,SQL)是一種應(yīng)用于關(guān)系數(shù)據(jù)庫(kù)查詢(xún)的結(jié)構(gòu)化語(yǔ)言,最早是由Boyce和Chamberlin在1974年提出的,稱(chēng)為SEQUEL語(yǔ)言。SQL語(yǔ)言的功能包括數(shù)據(jù)查詢(xún)、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制4個(gè)部分。SQL語(yǔ)言簡(jiǎn)潔、方便、實(shí)用,為完成其核心功能只用了6個(gè)動(dòng)詞——SELECT、CREATE、INSERT、UPDATE、DELETE和GRANT(REVOKE)。甲骨文公司的Oracle數(shù)據(jù)庫(kù)所使用的SQL語(yǔ)言是ProceduralLanguage/SQL(簡(jiǎn)稱(chēng)PL/SQL),而微軟公司的SQLServer數(shù)據(jù)庫(kù)系統(tǒng)支持的是Transact-SQL(簡(jiǎn)稱(chēng)T-SQL)。MySQL也對(duì)SQL標(biāo)準(zhǔn)進(jìn)行了擴(kuò)展,只是至今沒(méi)有命名。0501020304E-R圖數(shù)據(jù)模型的體系結(jié)構(gòu)本章小結(jié)數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)設(shè)計(jì)目錄PART02數(shù)據(jù)庫(kù)三級(jí)模式;三級(jí)模式之間的映射。數(shù)據(jù)庫(kù)的體系結(jié)構(gòu)數(shù)據(jù)庫(kù)三級(jí)模式模式也被稱(chēng)為邏輯模式或概念模式。它是數(shù)據(jù)庫(kù)中全體數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,也是所有用戶(hù)的公共數(shù)據(jù)視圖。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)模式。內(nèi)模式也被稱(chēng)為存儲(chǔ)模式。它是數(shù)據(jù)物理結(jié)構(gòu)和存儲(chǔ)方式的描述,也是數(shù)據(jù)在數(shù)據(jù)庫(kù)內(nèi)部的表示方式。一個(gè)數(shù)據(jù)庫(kù)只有一個(gè)內(nèi)模式。內(nèi)模式外模式外模式也被稱(chēng)為用戶(hù)模式。它是數(shù)據(jù)庫(kù)用戶(hù)(包括應(yīng)用程序員和最終用戶(hù))能夠看見(jiàn)和使用的局部數(shù)據(jù)的邏輯結(jié)構(gòu)和特征的描述,也是數(shù)據(jù)庫(kù)用戶(hù)的數(shù)據(jù)視圖。模式三級(jí)模式之間的映射外模式/模式映射模式/內(nèi)模式映射同一個(gè)模式可以有任意多個(gè)外模式。對(duì)于每一個(gè)外模式,數(shù)據(jù)庫(kù)系統(tǒng)都有一個(gè)外模式/模式映射。當(dāng)模式發(fā)生改變時(shí),由數(shù)據(jù)庫(kù)管理員對(duì)各個(gè)外模式/模式映射做相應(yīng)的改變,可以使外模式保持不變。保證了數(shù)據(jù)與程序的邏輯獨(dú)立性。數(shù)據(jù)庫(kù)中只有一個(gè)模式和一個(gè)內(nèi)模式,因此模式/內(nèi)模式映射是唯一的,它定義了數(shù)據(jù)庫(kù)的全局邏輯結(jié)構(gòu)與存儲(chǔ)結(jié)構(gòu)之間的對(duì)應(yīng)關(guān)系。當(dāng)數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu)被改變時(shí),數(shù)據(jù)庫(kù)管理員對(duì)模式/內(nèi)模式映射進(jìn)行相應(yīng)的改變,以保持模式不變,應(yīng)用程序也會(huì)相應(yīng)地發(fā)生變動(dòng)。保證了數(shù)據(jù)與程序的物理獨(dú)立性。為了能夠在內(nèi)部實(shí)現(xiàn)數(shù)據(jù)庫(kù)的3個(gè)抽象層次的聯(lián)系和轉(zhuǎn)換,數(shù)據(jù)庫(kù)管理系統(tǒng)在三級(jí)模式之間提供了兩層映射,分別為外模式/模式映射和模式/內(nèi)模式映射。0501020304E-R圖數(shù)據(jù)模型的體系結(jié)構(gòu)本章小結(jié)數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)設(shè)計(jì)目錄PART03E-R圖(Entity-RelationshipDiagram)也稱(chēng)“實(shí)體—關(guān)系圖”,用于描述現(xiàn)實(shí)世界的事物,以及事物與事物之間的關(guān)系。其中E表示實(shí)體,R表示關(guān)系。它提供了表示實(shí)體類(lèi)型、屬性和關(guān)系的方法。E-R圖E-R圖的概念實(shí)體屬性實(shí)體所具有的性質(zhì)或特征。關(guān)系實(shí)體之間的聯(lián)系。E-R圖中表示現(xiàn)實(shí)世界中的對(duì)象或概念。E-R圖設(shè)計(jì)原則在設(shè)計(jì)E-R圖時(shí),應(yīng)盡量簡(jiǎn)化設(shè)計(jì),避免信息冗余。簡(jiǎn)化設(shè)計(jì),避免冗余E-R圖設(shè)計(jì)應(yīng)準(zhǔn)確描述實(shí)體及其相互關(guān)系。準(zhǔn)確描述實(shí)體和關(guān)系0501020304E-R圖數(shù)據(jù)模型的體系結(jié)構(gòu)本章小結(jié)數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)設(shè)計(jì)目錄PART04為實(shí)體建立數(shù)據(jù)表;為表建立主鍵和外鍵;為字段選擇合適的數(shù)據(jù)類(lèi)型;定義約束條件。數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)步驟需求分析創(chuàng)建概念模型,描述數(shù)據(jù)的邏輯結(jié)構(gòu)。邏輯設(shè)計(jì)將概念模型轉(zhuǎn)換為邏輯模型,為數(shù)據(jù)庫(kù)管理系統(tǒng)準(zhǔn)備。物理設(shè)計(jì)概念設(shè)計(jì)收集和分析用戶(hù)需求,確定數(shù)據(jù)庫(kù)設(shè)計(jì)的方向。根據(jù)邏輯模型,設(shè)計(jì)數(shù)據(jù)庫(kù)的物理存儲(chǔ)結(jié)構(gòu)。數(shù)據(jù)庫(kù)設(shè)計(jì)方法為數(shù)據(jù)表設(shè)置主鍵和外鍵,確保數(shù)據(jù)的完整性和關(guān)聯(lián)性。定義數(shù)據(jù)表的約束條件,保證數(shù)據(jù)的正確性和一致性。為表建立主鍵和外鍵根據(jù)實(shí)體關(guān)系,為每個(gè)實(shí)體建立相應(yīng)的數(shù)據(jù)表。為實(shí)體建立數(shù)據(jù)表為字段選擇合適的數(shù)據(jù)類(lèi)型定義約束條件根據(jù)字段的數(shù)據(jù)特性,選擇合適的數(shù)據(jù)類(lèi)型。0501020304E-R圖數(shù)據(jù)模型的體系結(jié)構(gòu)本章小結(jié)數(shù)據(jù)庫(kù)概述數(shù)據(jù)庫(kù)設(shè)計(jì)目錄PART05本章主要介紹的是數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)知識(shí),首先概括性介紹了數(shù)據(jù)庫(kù),包括數(shù)據(jù)庫(kù)技術(shù)的發(fā)展、數(shù)據(jù)庫(kù)系統(tǒng)的組成、數(shù)據(jù)模型與規(guī)范化、結(jié)構(gòu)化查詢(xún)語(yǔ)言SQL;然后介紹數(shù)據(jù)庫(kù)體系結(jié)構(gòu),包括數(shù)據(jù)庫(kù)三級(jí)模式(外模式、模式、內(nèi)模式)和兩級(jí)映射(外模式/模式映射和模式/內(nèi)模式映射);接著介紹E-R圖的繪制;最后介紹了數(shù)據(jù)庫(kù)設(shè)計(jì)過(guò)程。本章小結(jié)數(shù)據(jù)庫(kù)技術(shù)的重要性關(guān)系模型的主流地位數(shù)據(jù)管理的基礎(chǔ)數(shù)據(jù)模型的核心地位E-R圖設(shè)計(jì)是數(shù)據(jù)庫(kù)設(shè)計(jì)的重要工具。數(shù)據(jù)模型是數(shù)據(jù)庫(kù)設(shè)計(jì)的核心。E-R圖設(shè)計(jì)的重要性數(shù)據(jù)庫(kù)技術(shù)是數(shù)據(jù)管理的基礎(chǔ)。關(guān)系模型是目前主流的數(shù)據(jù)庫(kù)數(shù)據(jù)模型。數(shù)據(jù)庫(kù)設(shè)計(jì)的步驟和方法數(shù)據(jù)庫(kù)設(shè)計(jì)需要遵循一定的步驟和方法。謝謝觀看第2章初識(shí)MySQL本章概述MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQLAB公司開(kāi)發(fā),屬于Oracle旗下產(chǎn)品。MySQL軟件采用了雙授權(quán)政策,分為社區(qū)版和商業(yè)版,由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn)。本章學(xué)習(xí)目標(biāo)了解MySQL的概念、發(fā)展史、特性、優(yōu)勢(shì)和應(yīng)用環(huán)境;掌握Windows平臺(tái)下MySQL的安裝與配置;

掌握Linux平臺(tái)下MySQL的安裝和配置;

掌握MySQL服務(wù)的啟動(dòng)與停止;掌握Path變量的配置;熟悉MySQL命令窗口的實(shí)用;了解如何學(xué)好MySQL。目錄0102050304啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)Windows平臺(tái)下安裝與配置MySQLLinux平臺(tái)下安裝和配置MyLSQL如何學(xué)好MySQLMySQL概述目錄0102050304啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)Windows平臺(tái)下安裝與配置MySQLLinux平臺(tái)下安裝和配置MyLSQL如何學(xué)好MySQLMySQL概述01MySQL概述01MySQL是由瑞典的MySQL

AB公司開(kāi)發(fā)的,該公司于1995年建立,目前屬于Oracle公司。MySQL的符號(hào)是一只名為Sakila的海豚,代表著MySQL數(shù)據(jù)庫(kù)和團(tuán)隊(duì)的速度、能力、精確和優(yōu)秀本質(zhì)。MySQL的起源可以追溯到1995年,當(dāng)時(shí)瑞典開(kāi)發(fā)者M(jìn)ichael

Widenius和David

Axmark開(kāi)始創(chuàng)建一個(gè)名為MySQL的輕量級(jí)數(shù)據(jù)庫(kù)系統(tǒng)。最初,MySQL僅僅是一個(gè)小型的、僅支持少量數(shù)據(jù)類(lèi)型和表的數(shù)據(jù)庫(kù),但它具有高度的可靠性和性能優(yōu)勢(shì),很快就在Linux和其他UNIX操作系統(tǒng)上得到了廣泛的應(yīng)用。在接下來(lái)的幾年里,MySQL不斷改進(jìn)并擴(kuò)展其功能。逐漸成為Web應(yīng)用程序的主流數(shù)據(jù)庫(kù)之一。今天,MySQL已經(jīng)成為Web應(yīng)用程序和企業(yè)應(yīng)用的主流數(shù)據(jù)庫(kù)之一,它在全球擁有數(shù)百萬(wàn)的用戶(hù)和開(kāi)發(fā)者,支持各種語(yǔ)言和平臺(tái)。MySQL的發(fā)展史01MySQL概述2MySQL的優(yōu)勢(shì)作為一款自由軟件,MySQL允許任何人從官方網(wǎng)站下載。它是一個(gè)真正的多用戶(hù)、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器,能夠快捷、有效和安全地處理大量數(shù)據(jù),被廣泛地應(yīng)用于Internet上的中小型網(wǎng)站中。01MySQL概述03MySQL的應(yīng)用環(huán)境目前Internet上流行的網(wǎng)站構(gòu)架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作為操作系統(tǒng),Apache作為Web服務(wù)器,MySQL作為數(shù)據(jù)庫(kù),PHP作為服務(wù)器端腳本解釋器。01MySQL概述04(1)性能:MySQL

8.0的速度要比MySQL

5.7快2倍。(2)NoSQL:從MySQL5.7開(kāi)始,提供NoSQL存儲(chǔ)功能,在MySQL8.0中這部分功能得到了更大的改進(jìn)。(3)窗口函數(shù)(windowfunction):從MySQL8.0開(kāi)始,新增了窗口函數(shù),可以用來(lái)實(shí)現(xiàn)若干種新的查詢(xún)方式。(4)隱藏索引:在MySQL8.0中,索引可以被隱藏或被顯示。當(dāng)索引被隱藏后,它將不會(huì)被查詢(xún)優(yōu)化器使用。(5)降序索引:MySQL8.0為索引提供了按降序方式進(jìn)行排序的支持,在這種索引中的值也會(huì)按降序的方式進(jìn)行排序。(6)通用表表達(dá)式(commontableexpressions,CTE):在復(fù)雜的查詢(xún)中使用嵌入式表時(shí),使用CTE使得查詢(xún)語(yǔ)句更清晰。(7)UTF-8編碼:從MySQL8.0開(kāi)始,使用utf8mb4作為默認(rèn)字符集。(8)JSON:MySQL8.0大幅改進(jìn)了對(duì)JSON的支持,添加了基于路徑查詢(xún)參數(shù)從JSON字段中抽取數(shù)據(jù)的JSON_EXTRACT()函數(shù),以及用于將數(shù)據(jù)分別組合到JSON數(shù)組和對(duì)象中的JSON_ARRAYAGG()和JSON_OBJECTAGG()聚合函數(shù)。(9)可靠性:InnoDB現(xiàn)在支持表DDL的原子性,也就是InnoDB表上的DDL也可以實(shí)現(xiàn)事務(wù)完整性,要么失敗回滾,要么成功提交,不至于出現(xiàn)部分成功的問(wèn)題。(10)高可用性(highavailability):InnoDB集群為數(shù)據(jù)庫(kù)提供了集成的原生HA解決方案。(11)安全性:OpenSSL改進(jìn)、新的默認(rèn)身份驗(yàn)證、SQL角色、密碼強(qiáng)度、授權(quán)。MySQL8的新特性目錄0102050304啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)Windows平臺(tái)下安裝與配置MySQLLinux平臺(tái)下安裝和配置MyLSQL如何學(xué)好MySQLMySQL概述02Windows平臺(tái)下安裝與配置MySQL可以通過(guò)訪問(wèn)MySQL官方網(wǎng)站下載MySQL安裝包。下載頁(yè)面提供了多種版本的MySQLCommunityServer,用戶(hù)需要根據(jù)自己的操作系統(tǒng)選擇相應(yīng)的版本進(jìn)行下載。下載完成后,將得到一個(gè)包含安裝文件的壓縮包。MySQL服務(wù)器安裝包的下載安裝過(guò)程包括啟動(dòng)安裝向?qū)?、選擇安裝類(lèi)型、安裝插件、配置服務(wù)器、設(shè)置網(wǎng)絡(luò)和安全選項(xiàng)、配置用戶(hù)賬戶(hù)和角色、配置Windows服務(wù)以及應(yīng)用配置等步驟。安裝完成后,可以通過(guò)ProductConfiguration界面進(jìn)行進(jìn)一步的配置。MySQL服務(wù)器的安裝目錄0102050304啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)Windows平臺(tái)下安裝與配置MySQLLinux平臺(tái)下安裝和配置MyLSQL如何學(xué)好MySQLMySQL概述03啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)(1)右擊“計(jì)算機(jī)”圖標(biāo),在彈出的快捷菜單中選擇“屬性”命令,在彈出的“系統(tǒng)”對(duì)話框中單擊“高級(jí)系統(tǒng)設(shè)置”彈出“系統(tǒng)屬性”對(duì)話框。(2)在“系統(tǒng)屬性”對(duì)話框中,選擇“高級(jí)”選項(xiàng)卡,單擊“環(huán)境變量”按鈕,彈出“環(huán)境變量”對(duì)話框。(3)在“環(huán)境變量”對(duì)話框中,選擇“系統(tǒng)變量”中的Path選項(xiàng),單擊“編輯”按鈕,彈出“編輯環(huán)境變量”對(duì)話框。(4)在“編輯環(huán)境變量”對(duì)話框中,將MySQL服務(wù)器的bin文件夾位置(C:\ProgramFiles\MySQL\MySQLServer8.0\bin)添加到“變量值”文本框中,如圖所示。配置Path變量03啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)啟動(dòng)和停止MySQL(1)通過(guò)系統(tǒng)服務(wù)啟動(dòng)、停止MySQL服務(wù)器。如果MySQL被設(shè)置為Windows服務(wù),則可以通過(guò)選擇“開(kāi)始”→“控制面板”→“系統(tǒng)和安全”→“管理工具”→“服務(wù)”命令打開(kāi)Windows服務(wù)管理器。(2)在命令提示符下啟動(dòng)、停止MySQL服務(wù)器:net

start

MySQL8003啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)連接和斷開(kāi)MySQL連接MySQL服務(wù)器可以通過(guò)mysql命令實(shí)現(xiàn),需要指定用戶(hù)名、主機(jī)地址、端口和密碼。連接后,可以通過(guò)exit或quit命令斷開(kāi)與MySQL服務(wù)器的連接。連接到MySQL服務(wù)器后,可以通過(guò)在MySQL提示符下輸入exit或者quit命令斷開(kāi)與MySQL服務(wù)器的連接。03啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)打開(kāi)MySQL8.0CommandLineClient安裝完成后,可以通過(guò)開(kāi)始菜單打開(kāi)MySQL8.0CommandLineClient程序,并使用root用戶(hù)登錄MySQL服務(wù)器,開(kāi)始數(shù)據(jù)庫(kù)操作。目錄0102050304啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)Windows平臺(tái)下安裝與配置MySQL如何學(xué)好MySQLMySQL概述Linux平臺(tái)下安裝和配置MySQLLinux平臺(tái)下安裝和配置MySQL在基于Debian的Linux發(fā)行版上,可以使用apt-get命令更新源并安裝MySQL服務(wù)。安裝后,可以通過(guò)systemctl命令檢查MySQL服務(wù)的狀態(tài)。在Linux平臺(tái)上,可以通過(guò)官網(wǎng)下載MySQL的安裝包,或者使用apt包管理器進(jìn)行安裝。下載后,需要按依賴(lài)順序安裝.deb文件,或者使用dpkg命令和apt-get解決依賴(lài)問(wèn)題。安裝完成后,可以通過(guò)服務(wù)命令檢查MySQL服務(wù)狀態(tài)。下載安裝MySQL通過(guò)apt安裝MySQL服務(wù)目錄0102050304啟動(dòng)服務(wù)并登錄MySQL數(shù)據(jù)庫(kù)Windows平臺(tái)下安裝與配置MySQL如何學(xué)好MySQLMySQL概述Linux平臺(tái)下安裝和配置MySQL如何學(xué)好MySQL010302多上機(jī)實(shí)踐在掌握實(shí)踐技能的同時(shí),也不能忽視數(shù)據(jù)庫(kù)理論知識(shí)的學(xué)習(xí),這對(duì)于深入理解數(shù)據(jù)庫(kù)的工作原理和優(yōu)化數(shù)據(jù)庫(kù)性能至關(guān)重要。多編寫(xiě)SQL語(yǔ)句編寫(xiě)SQL語(yǔ)句是數(shù)據(jù)庫(kù)管理的核心技能之一,通過(guò)不斷編寫(xiě)和優(yōu)化SQL語(yǔ)句,可以提高數(shù)據(jù)庫(kù)操作的效率和準(zhǔn)確性。學(xué)習(xí)MySQL的過(guò)程中,應(yīng)該多進(jìn)行上機(jī)實(shí)踐,通過(guò)實(shí)際操作來(lái)加深對(duì)數(shù)據(jù)庫(kù)操作的理解和記憶。數(shù)據(jù)庫(kù)理論知識(shí)不能丟本章小結(jié)本章內(nèi)容回顧本章主要介紹了MySQL的發(fā)展史、優(yōu)勢(shì)、應(yīng)用環(huán)境和目前最新版本MySQL8的新特性;接著重點(diǎn)介紹了Windows操作系統(tǒng)下MySQL的安裝過(guò)程,Path環(huán)境變量配置,MySQL服務(wù)的啟動(dòng)和停止操作,MySQL服務(wù)器的連接與斷開(kāi)操作;簡(jiǎn)單介紹了Linux系統(tǒng)下MySQL軟件的安裝;最后提供了一些學(xué)好MySQL的小技巧。謝謝觀看第3章

MySQL圖形化管理工具本章概述圖形化管理工具介紹MySQL的管理維護(hù)工具非常多,除了系統(tǒng)自帶的命令行管理工具,還有許多其他的圖形化管理工具,常用的有phpMyAdmin、Navicat、SQLyog、MySQLWorkbench等。這些第三方圖形化工具更加方便MySQL的管理。本章學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)了解常用的MySQL圖形化管理工具;重點(diǎn)掌握phpMyAdmin、Navicat的使用。目錄01020304NavicatphpMyAdmin本章小結(jié)MySQL圖形化管理工具概述目錄01020304NavicatphpMyAdmin本章小結(jié)MySQL圖形化管理工具概述MySQL圖形化管理工具概述NavicatMySQLDumperMySQL

ODBC

ConnectorSQLyogphpMyAdminMySQL

Workbench目錄01020304NavicatphpMyAdmin本章小結(jié)MySQL圖形化管理工具概述phpMyAdmin3.2.1phpMyAdmin簡(jiǎn)介phpMyAdmin的使用不用安裝客戶(hù)端,通過(guò)瀏覽器就能訪問(wèn)使用。它是眾多MySQL圖形化管理工具中應(yīng)用最廣泛的一種,是一款使用PHP開(kāi)發(fā)的B/S模式的MySQL客戶(hù)端軟件。此外,它還是基于Web跨平臺(tái)的管理程序,并且支持簡(jiǎn)體中文。用戶(hù)可以在其官方網(wǎng)站()上免費(fèi)下載最新版本。phpMyAdmin應(yīng)用phpMyAdmin圖形化管理工具,必須在本機(jī)中搭建PHP運(yùn)行環(huán)境,將其作為一個(gè)項(xiàng)目在PHP開(kāi)發(fā)環(huán)境中運(yùn)行應(yīng)用。phpstudy的下載地址為/download.html,選擇最新版的phpstudy進(jìn)行下載和安裝。3.2.2phpstudy安裝phpMyAdmin單擊phpstudy頁(yè)面左側(cè)的“軟件管理”,找到phpMyAdmin,單擊其右側(cè)的“安裝”按鈕,彈出一個(gè)“選擇站點(diǎn)”提示框,選中“選擇”復(fù)選框,選擇默認(rèn)站點(diǎn),然后單擊“確認(rèn)”按鈕,開(kāi)始安裝。3.2.3下載phpMyAdminphpMyAdmin在phpMyAdmin中單擊“新建”按鈕,輸入數(shù)據(jù)庫(kù)的名稱(chēng)db_test,選擇編碼utf8_general_ci,單擊“創(chuàng)建”按鈕,即可創(chuàng)建數(shù)據(jù)庫(kù)。創(chuàng)建數(shù)據(jù)庫(kù)phpMyAdmin創(chuàng)建數(shù)據(jù)庫(kù)db_test后,單擊數(shù)據(jù)庫(kù)名稱(chēng),然后單擊【操作】按鈕,可在該頁(yè)面中對(duì)當(dāng)前數(shù)據(jù)庫(kù)進(jìn)行修改、復(fù)制、刪除操作,還可以為該數(shù)據(jù)庫(kù)新建數(shù)據(jù)表。修改和刪除數(shù)據(jù)庫(kù)phpMyAdmin創(chuàng)建數(shù)據(jù)表修改數(shù)據(jù)表刪除數(shù)據(jù)表3.2.6管理數(shù)據(jù)表插入數(shù)據(jù)記錄修改數(shù)據(jù)記錄刪除數(shù)據(jù)記錄瀏覽數(shù)據(jù)搜索數(shù)據(jù)3.2.7管理數(shù)據(jù)記錄目錄01020304NavicatphpMyAdmin本章小結(jié)MySQL圖形化管理工具概述NavicatNavicat是一套快速、可靠的數(shù)據(jù)庫(kù)管理工具,專(zhuān)為簡(jiǎn)化數(shù)據(jù)庫(kù)管理和降低系統(tǒng)管理成本而開(kāi)發(fā)。Navicat使用可視化圖形用戶(hù)界面,讓用戶(hù)能夠以安全、簡(jiǎn)單的方式創(chuàng)建、組織、訪問(wèn)數(shù)據(jù)庫(kù)。Navicat適用于3種平臺(tái):MicrosoftWindows、MacOSX及Linux。Navicat支持中文,可免費(fèi)下載,下載地址:/products。Navicat簡(jiǎn)介NavicatNavicat下載、Navicat安裝、服務(wù)器連接、創(chuàng)建數(shù)據(jù)庫(kù)、新建數(shù)據(jù)表、添加數(shù)據(jù)記錄、導(dǎo)出/導(dǎo)入數(shù)據(jù)、“工具”菜單。Navicat操作目錄01020304NavicatphpMyAdmin本章小結(jié)MySQL圖形化管理工具概述本章小結(jié)通過(guò)圖形化管理工具可以更方便的對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理和訪問(wèn)。本章主要重點(diǎn)介紹了兩款主流的MySQL圖形化管理工具:使用PHP開(kāi)發(fā)的phpMyAdmin和客戶(hù)端管理軟件Navicat。介紹phpMyAdmin過(guò)程中,使用到了集成開(kāi)發(fā)工具phpstudy。其他圖形化管理工具的操作類(lèi)似,讀者重點(diǎn)學(xué)習(xí)這兩款圖形化工具后,可以自行探索其他可視化管理工具的使用操作。謝謝觀看匯報(bào)人:秒出PPT第4章

數(shù)據(jù)庫(kù)操作本章概述啟動(dòng)并連接MySQL服務(wù)器后,即可對(duì)MySQL數(shù)據(jù)庫(kù)進(jìn)行操作。操作數(shù)據(jù)庫(kù)的方式有兩種:通過(guò)命令行實(shí)現(xiàn)和通過(guò)圖形化管理軟件實(shí)現(xiàn)。本章將詳細(xì)介紹數(shù)據(jù)庫(kù)的創(chuàng)建、查看、選擇、修改和刪除操作。本章學(xué)習(xí)目標(biāo)了解關(guān)系型數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí);掌握MySQL數(shù)據(jù)庫(kù)的創(chuàng)建、查看、選擇、修改和刪除操作;了解存儲(chǔ)引擎的作用,MySQL支持的存儲(chǔ)引擎,包括InnoDB、MyISAM、MEMORY;了解如何選擇存儲(chǔ)引擎,如何設(shè)置存儲(chǔ)引擎。目錄01020304存儲(chǔ)引擎操作數(shù)據(jù)庫(kù)本章小結(jié)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)目錄01020304存儲(chǔ)引擎操作數(shù)據(jù)庫(kù)本章小結(jié)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)4.1.1關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)關(guān)系數(shù)據(jù)庫(kù)是支持關(guān)系模型的數(shù)據(jù)庫(kù)。關(guān)系模型由關(guān)系數(shù)據(jù)結(jié)構(gòu)、關(guān)系操作集合和完整性約束3個(gè)部分組成。MySQL是一種關(guān)系數(shù)據(jù)庫(kù)管理軟件看,是位于用戶(hù)與數(shù)據(jù)庫(kù)之間的一層管理軟件,主要負(fù)責(zé)數(shù)據(jù)庫(kù)中的數(shù)據(jù)組織、數(shù)據(jù)操縱、數(shù)據(jù)維護(hù)和數(shù)據(jù)服務(wù)等。關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)4.1.2數(shù)據(jù)庫(kù)常用對(duì)象在MySQL的數(shù)據(jù)庫(kù)中,表、字段、索引、視圖和存儲(chǔ)過(guò)程等具體存儲(chǔ)數(shù)據(jù)或?qū)?shù)據(jù)進(jìn)行操作的實(shí)體都被稱(chēng)為數(shù)據(jù)庫(kù)對(duì)象。表:存儲(chǔ)數(shù)據(jù),行和列組成。字段:列;有自己的屬性,如字段類(lèi)型、字段大小等。索引:依賴(lài)表建立,加速數(shù)據(jù)查詢(xún)速度。視圖:依賴(lài)表而建,方便數(shù)據(jù)查看。存儲(chǔ)過(guò)程:SQL語(yǔ)句集合,可以把CURD操作封裝成存儲(chǔ)過(guò)程,方便調(diào)用。關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)4.1.3系統(tǒng)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)庫(kù)是指安裝完MySQL服務(wù)器后,系統(tǒng)自動(dòng)建立的一些數(shù)據(jù)庫(kù)。例如,在默認(rèn)安裝的MySQL服務(wù)器中,系統(tǒng)會(huì)默認(rèn)創(chuàng)建如圖4-1所示的4個(gè)數(shù)據(jù)庫(kù)。目錄01020304存儲(chǔ)引擎操作數(shù)據(jù)庫(kù)本章小結(jié)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)操作數(shù)據(jù)庫(kù)4.2.1創(chuàng)建數(shù)據(jù)庫(kù)使用CREATEDATABASE語(yǔ)句和CREATESCHEMA語(yǔ)句創(chuàng)建MySQL數(shù)據(jù)庫(kù),其語(yǔ)法如下。CREATE{DATABASE|SCHEMA}[IFNOTEXISTS]數(shù)據(jù)庫(kù)名[[DEFAULT]CHARACTERSET[=]字符集|[DEFAULT]COLLATE[=]校對(duì)規(guī)則名稱(chēng)];操作數(shù)據(jù)庫(kù)4.2.2查看數(shù)據(jù)庫(kù)使用SHOWDATABASES語(yǔ)句查看數(shù)據(jù)庫(kù)。操作數(shù)據(jù)庫(kù)4.2.3選擇數(shù)據(jù)庫(kù)操作數(shù)據(jù)庫(kù)之前,需要先選擇使用哪個(gè)數(shù)據(jù)庫(kù)。操作數(shù)據(jù)庫(kù)4.2.4修改數(shù)據(jù)庫(kù)修改數(shù)據(jù)庫(kù)可以使用ALTERDATABASE或者ALTERSCHEMA語(yǔ)句來(lái)實(shí)現(xiàn)。ALTERDATABASEdb_libraryDEFAULTCHARACTERSETgbkDEFAULTCOLLATEgbk_chinese_ci;操作數(shù)據(jù)庫(kù)4.2.5刪除數(shù)據(jù)庫(kù)DROPDATABASE或者DROPSCHEMA語(yǔ)句刪除數(shù)據(jù)庫(kù)。目錄01020304存儲(chǔ)引擎操作數(shù)據(jù)庫(kù)本章小結(jié)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)NavicatMySQL中的數(shù)據(jù)是用各種不同的技術(shù)存儲(chǔ)在文件(或者內(nèi)存)中的。每一種技術(shù)都使用不同的存儲(chǔ)機(jī)制、索引技巧、鎖定水平,并且最終提供廣泛的、不同的功能。通過(guò)選擇不同的技術(shù),開(kāi)發(fā)人員可以獲得額外的速度或者功能,從而改善應(yīng)用的整體功能。這些不同的技術(shù)以及配套的相關(guān)功能在MySQL中被稱(chēng)作存儲(chǔ)引擎(也被稱(chēng)為表類(lèi)型)。MySQL默認(rèn)配置了許多不同的存儲(chǔ)引擎,這些引擎可以預(yù)先設(shè)置或者在MySQL服務(wù)器中啟用。4.3.1MySQL存儲(chǔ)引擎的概念Navicat使用SHOWENGINES語(yǔ)句查詢(xún)MySQL中支持的存儲(chǔ)引擎:SHOWENGINES;4.3.2MySQL支持的存儲(chǔ)引擎Navicat查看當(dāng)前MySQL服務(wù)器所采用的默認(rèn)存儲(chǔ)引擎,可以執(zhí)行SHOWVARIABLES命令。4.3.2MySQL支持的存儲(chǔ)引擎NavicatInnoDB給MySQL的表提供了事務(wù)、回滾、崩潰修復(fù)能力和多版本并發(fā)控制的事務(wù)安全:第一個(gè)提供外鍵約束的表引擎;支持自動(dòng)增長(zhǎng)列AUTO_INCREMENT;支持外鍵(FOREIGNKEY);提供了良好的事務(wù)管理、崩潰修復(fù)能力和并發(fā)控制。4.3.3InnoDB存儲(chǔ)引擎NavicatMyISAM存儲(chǔ)引擎是MySQL中常見(jiàn)的存儲(chǔ)引擎。MySQL5.5版本下的MyISAM存儲(chǔ)引擎的表被存儲(chǔ)成3種文件。文件的名字與表名相同,擴(kuò)展名包括.frm、.MYD和.MYI?;贛yISAM存儲(chǔ)引擎的表支持3種不同的存儲(chǔ)格式,包括靜態(tài)、動(dòng)態(tài)和壓縮。4.3.4MyISAM存儲(chǔ)引擎Navicat每個(gè)基于MEMORY存儲(chǔ)引擎的表實(shí)際對(duì)應(yīng)一個(gè)磁盤(pán)文件。該文件的文件名與表名相同,類(lèi)型為frm。MEMORY存儲(chǔ)引擎默認(rèn)使用哈希(HASH)索引。創(chuàng)建MySQLMEMORY存儲(chǔ)引擎的出發(fā)點(diǎn)是速度,如果重啟機(jī)器或者關(guān)機(jī),表中的所有數(shù)據(jù)消失。4.3.5MEMORY存儲(chǔ)引擎Navicat(1)InnoDB存儲(chǔ)引擎:用于事務(wù)處理應(yīng)用程序,具有眾多特性,包括支持ACID事務(wù)、外鍵、崩潰修復(fù)能力和并發(fā)控制。(2)MyISAM存儲(chǔ)引擎:管理非事務(wù)表,它提供高速存儲(chǔ)和檢索,以及全文搜索能力。(3)MEMORY存儲(chǔ)引擎:MEMORY存儲(chǔ)引擎提供“內(nèi)存中”的表,其所有數(shù)據(jù)都在內(nèi)存中,數(shù)據(jù)的處理速度快,但安全性不高。4.3.6如何選擇存儲(chǔ)引擎Navicat4.3.7設(shè)置存儲(chǔ)引擎目錄01020304存儲(chǔ)引擎操作數(shù)據(jù)庫(kù)本章小結(jié)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)本章小結(jié)本章首先介紹了關(guān)系數(shù)據(jù)庫(kù)的基本概念、數(shù)據(jù)庫(kù)的常用對(duì)象,以及MySQL中的系統(tǒng)數(shù)據(jù)庫(kù),然后介紹了創(chuàng)建數(shù)據(jù)庫(kù)、查看數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)庫(kù)、修改數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù)的方法。其中,創(chuàng)建數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)庫(kù)和刪除數(shù)據(jù)庫(kù)在實(shí)際開(kāi)發(fā)中經(jīng)常被使用,需要重點(diǎn)掌握它們。接著,對(duì)MySQL存儲(chǔ)引擎進(jìn)行了詳細(xì)的講解,語(yǔ)法格式講解和示例結(jié)合,幫助讀者更好地理解所學(xué)知識(shí)的用法。讀者應(yīng)該重點(diǎn)掌握在實(shí)際創(chuàng)建數(shù)據(jù)庫(kù)時(shí)如何正確選擇存儲(chǔ)引擎。謝謝觀看匯報(bào)人:秒出PPT第5章

數(shù)據(jù)表操作本章概述在數(shù)據(jù)庫(kù)中,針對(duì)數(shù)據(jù)表對(duì)象的操作有,創(chuàng)建數(shù)據(jù)表、查看表結(jié)構(gòu)、修改表結(jié)構(gòu)、重命名數(shù)據(jù)表、復(fù)制數(shù)據(jù)表和刪除數(shù)據(jù)表。在創(chuàng)建數(shù)據(jù)表時(shí),需要為表字段設(shè)置所存儲(chǔ)數(shù)據(jù)的類(lèi)型、約束,還可以為數(shù)據(jù)表對(duì)象設(shè)置索引,以提高數(shù)據(jù)表檢索效率。本章學(xué)習(xí)目標(biāo)掌握數(shù)據(jù)表操作,包括創(chuàng)建數(shù)據(jù)表、查看表結(jié)構(gòu)、修改表結(jié)構(gòu)、重命名數(shù)據(jù)表、復(fù)制數(shù)據(jù)表和刪除數(shù)據(jù)表。熟悉數(shù)據(jù)類(lèi)型并能夠?yàn)樽侄芜x擇恰當(dāng)?shù)臄?shù)據(jù)類(lèi)型。重點(diǎn)掌握數(shù)字類(lèi)型、字符串類(lèi)型、日期時(shí)間類(lèi)型。掌握表約束操作,能夠恰當(dāng)?shù)貫閿?shù)據(jù)表設(shè)置表約束。掌握索引操作,能夠?qū)?shù)據(jù)表設(shè)置合適的索引,以提高數(shù)據(jù)檢索效率。目錄01020304表約束操作數(shù)據(jù)類(lèi)型索引操作數(shù)據(jù)表基本操作05本章小結(jié)目錄01020304表約束操作數(shù)據(jù)類(lèi)型索引操作數(shù)據(jù)表基本操作05本章小結(jié)關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)5.1.1創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表,使用CREATETABLE語(yǔ)句,語(yǔ)法如下。CREATE[TEMPORARY]TABLE[IFNOTEXISTS]數(shù)據(jù)表名[(create_definition,…)][table_options][select_statement]關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)5.1.2查看數(shù)據(jù)表使用SHOWCOLUMNS語(yǔ)句查看數(shù)據(jù)表結(jié)構(gòu):SHOW[FULL]COLUMNSFROM數(shù)據(jù)表名[FROM數(shù)據(jù)庫(kù)名];或SHOW[FULL]COLUMNSFROM數(shù)據(jù)表名.數(shù)據(jù)庫(kù)名;關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)5.1.3復(fù)制數(shù)據(jù)表在一個(gè)已經(jīng)存在的數(shù)據(jù)表的基礎(chǔ)上創(chuàng)建該表的備份:CREATETABLE[IFNOTEXISTS]數(shù)據(jù)表名{LIKE源數(shù)據(jù)表名|(LIKE源數(shù)據(jù)表名)}關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)5.1.4修改表結(jié)構(gòu)可以使用ALTERTABLE語(yǔ)句來(lái)實(shí)現(xiàn),語(yǔ)法格式如下。ALTER[IGNORE]TABLE數(shù)據(jù)表名alter_spec[,alter_spec]…|table_options關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)5.1.5重命名數(shù)據(jù)表重命名數(shù)據(jù)表可以使用RENAMETABLE語(yǔ)句來(lái)實(shí)現(xiàn):RENAMETABLE數(shù)據(jù)表名1To數(shù)據(jù)表名2例如:RENAMETABLEtb_admin_oldTOtb_admin_old1;關(guān)系數(shù)據(jù)庫(kù)基礎(chǔ)5.1.6刪除數(shù)據(jù)表使用DROPTABLE語(yǔ)句即可刪除數(shù)據(jù)表:DROPTABLE[IFEXISTS]數(shù)據(jù)表名;目錄01020304表約束操作數(shù)據(jù)類(lèi)型索引操作數(shù)據(jù)表基本操作05本章小結(jié)數(shù)據(jù)類(lèi)型5.2.1數(shù)字類(lèi)型:數(shù)字類(lèi)型總體可以分成整數(shù)和浮點(diǎn)兩種數(shù)據(jù)類(lèi)型。整數(shù)類(lèi)型:數(shù)據(jù)類(lèi)型取值范圍說(shuō)明單位TINYINT符號(hào)值:-128~127,無(wú)符號(hào)值:0~255最小的整數(shù)1字節(jié)BIT符號(hào)值:-128~127,無(wú)符號(hào)值:0~255最小的整數(shù)1字節(jié)BOOL符號(hào)值:-128~127,無(wú)符號(hào)值:0~255最小的整數(shù)1字節(jié)SMALLINT符號(hào)值:-3276832767無(wú)符號(hào)值:0~65535小型整數(shù)2字節(jié)MEDIUMINT符號(hào)值:-8388608~8388607無(wú)符號(hào)值:0~16777215中型整數(shù)3字節(jié)INT符號(hào)值:-2147683648~2147683647無(wú)符號(hào)值:0~4294967295標(biāo)準(zhǔn)整數(shù)4字節(jié)BIGINT符號(hào)值:-9223372036854775808~9223372036854775807無(wú)符號(hào)值:0~18446744073709551615大型整數(shù)8字節(jié)數(shù)據(jù)類(lèi)型5.2.1數(shù)字類(lèi)型:數(shù)字類(lèi)型總體可以分成整數(shù)和浮點(diǎn)兩種數(shù)據(jù)類(lèi)型。浮點(diǎn)類(lèi)型:數(shù)據(jù)類(lèi)型取值范圍說(shuō)明單位FLOAT+(-)3.402823466E+38單精度浮點(diǎn)數(shù)8或4字節(jié)DOUBLE+(-)1.7976931348623157E+308雙精度浮點(diǎn)數(shù)8字節(jié)DECIMAL+(-)2.2250738585072014E-308一般整數(shù)自定義長(zhǎng)度數(shù)據(jù)類(lèi)型5.2.2字符串類(lèi)型字符串類(lèi)型包括3類(lèi):普通文本字符串類(lèi)型(CHAR和VARCHAR)、可變類(lèi)型(TEXT和BLOB)和特殊類(lèi)型(SET和ENUM)。數(shù)據(jù)類(lèi)型5.2.2字符串類(lèi)型普通文本字符串類(lèi)型(CHAR和VARCHAR)數(shù)據(jù)類(lèi)型取值范圍說(shuō)明NationalCHAR(M)[binary|ASCII|unicode]0~255個(gè)字符固定長(zhǎng)度為M的字符串,其中M的取值范圍為0~255。national關(guān)鍵字指定了應(yīng)該使用的默認(rèn)字符集。binary關(guān)鍵字指定了數(shù)據(jù)是否區(qū)分大小寫(xiě)(默認(rèn)是區(qū)分大小寫(xiě)的)。ASCII關(guān)鍵字指定了在列中使用latin1字符。unicode關(guān)鍵字指定了使用UCS字符集CHAR1~255個(gè)字符與CHAR(M)類(lèi)似[national]VARCHAR(M)[binary]0~255個(gè)字符長(zhǎng)度可變,其他與CHAR(M)類(lèi)似數(shù)據(jù)類(lèi)型5.2.2字符串類(lèi)型可變類(lèi)型數(shù)據(jù)類(lèi)型最大長(zhǎng)度(字節(jié)數(shù))說(shuō)明TINYBLOB2^8-1(255)小BLOB字段TINYTEXT2^8-1(255)小TEXT字段BLOB2^16-1(65535)常規(guī)BLOB字段TEXT2^16-1(65535)常規(guī)TEXT字段MEDIUMBLOB2^24-1(16777215)中型BLOB字段MEDIUMTEXT2^24-1(16777215)中型TEXT字段LONGBLOB2^32-1(4294967295)長(zhǎng)BLOB字段LONGTEXT2^32-1(4294967295)長(zhǎng)TEXT字段數(shù)據(jù)類(lèi)型5.2.2字符串類(lèi)型特殊類(lèi)型類(lèi)型最大值說(shuō)明ENUM("valuel","value2",...)65535該類(lèi)型的列只可以容納所列值之一或?yàn)镹ULLSET("valuel","value2",...)64該類(lèi)型的列可以容納一組值或?yàn)镹ULL數(shù)據(jù)類(lèi)型5.2.3日期和時(shí)間類(lèi)型日期和時(shí)間類(lèi)型包括DATE、DATETIME、TIME、TIMESTAMP和YEAR。其中每種類(lèi)型都有其取值范圍,如賦予它一個(gè)不合法的值,將會(huì)被“0”代替。日期和時(shí)間類(lèi)型如表所示。類(lèi)型取值范圍說(shuō)明DATE1000-01-01~9999-12-31日期,格式為YYYY-MM-DDTIME-838:58:59~835:59:59時(shí)間,格式為HH:MM:SSDATETIME1000-01-0100:00:00~9999-12-3123:59:59日期和時(shí)間,格式為YYYY-MMDDHH:MM:SSTIMESTAMP1970-01-0100:00:00~2037年的某個(gè)時(shí)間時(shí)間標(biāo)簽,在處理報(bào)告時(shí)使用顯示格式取決于M的值YEAR1901~2155年份可指定兩位數(shù)字和四位數(shù)字的格式數(shù)據(jù)類(lèi)型5.2.4如何選擇類(lèi)型整數(shù)和浮點(diǎn)數(shù)浮點(diǎn)數(shù)和定點(diǎn)數(shù)日期與時(shí)間類(lèi)型CHAR與VARCHAR之間的特點(diǎn)與選擇ENUM和SETBLOB和TEXT目錄01020304表約束操作數(shù)據(jù)類(lèi)型索引操作數(shù)據(jù)表基本操作05本章小結(jié)表約束操作完整性約束條件是對(duì)字段進(jìn)行限制的,要求用戶(hù)對(duì)該屬性進(jìn)行的操作符合特定的要求。如果不滿足完整性約束條件,數(shù)據(jù)庫(kù)系統(tǒng)就不再執(zhí)行用戶(hù)的操作。MySQL中基本的完整性約束條件如表所示。類(lèi)型取值范圍PRIMARYKEY主鍵,可以唯一地標(biāo)識(shí)對(duì)應(yīng)的元組FOREIGNKEY外鍵,是與之聯(lián)系的某表的主鍵NOTNULL字段值不能為空UNIQUE字段值唯一AUTOINCREMENT字段取值自動(dòng)增加,這是MySOL特色DEFAULT設(shè)置默認(rèn)值表約束操作當(dāng)數(shù)據(jù)庫(kù)表中的某個(gè)字段上的內(nèi)容不希望設(shè)置為NULL時(shí),則可以使用非空(NOTNULL)約束進(jìn)行設(shè)置。CREATETABLEtablename(PropNamepropTypeNOTNULL,……);設(shè)置表字段的非空約束表約束操作當(dāng)向數(shù)據(jù)表中插入一條新記錄時(shí),如果沒(méi)有為某個(gè)字段賦值,那么數(shù)據(jù)庫(kù)系統(tǒng)會(huì)自動(dòng)為這個(gè)字段插入默認(rèn)值。CREATETABLEtablename(propNamepropTypeDEFAULTdefaultValue,……);設(shè)置表字段的默認(rèn)值表約束操作當(dāng)數(shù)據(jù)庫(kù)表中某個(gè)字段上的內(nèi)容不允許重復(fù)時(shí),可以使用唯一(UNIQVE,UK)約束進(jìn)行設(shè)置。CREATETABLEtablename(propNamepropTypeUNIQUE,……);設(shè)置表字段唯一約束(UNIQUE,UK)表約束操作當(dāng)數(shù)據(jù)庫(kù)表中某個(gè)字段上的內(nèi)容不允許重復(fù)時(shí),可以使用唯一(UNIQVE,UK)約束進(jìn)行設(shè)置。CREATETABELtablename(propNamepropTypePRIMARYKEY,……);設(shè)置表字段的主鍵約束表約束操作AUTO_INCREMENT是MySQL唯一擴(kuò)展的完整性約束,當(dāng)為數(shù)據(jù)庫(kù)表中插入新記錄時(shí),字段上的值會(huì)自動(dòng)生成唯一的ID。CREATETABLEtablename(propNamepropTypeAUTO_INCREMENT,……);設(shè)置表字段值自動(dòng)增加表約束操作外鍵(FOREIGNKEY,F(xiàn)K)是表的一個(gè)特殊字段,外鍵約束用于保證多個(gè)表(通常為兩個(gè)表)之間的參照完整性,即構(gòu)建與兩個(gè)表的字段之間的參照關(guān)系。CREATETABLEtablename_1(propName1_1propType1_1,propName1_2propType1_2,……CONSTRAINTFK_propFOREIGNKEY(propName1_1)REFERENCEStablename_2(propName2_1));設(shè)置表字段的外鍵約束目錄01020304表約束操作數(shù)據(jù)類(lèi)型索引操作數(shù)據(jù)表基本操作05本章小結(jié)索引操作普通索引唯一性索引單列索引多列索引空間索引索引概述索引操作在建立數(shù)據(jù)表時(shí)可以直接創(chuàng)建索引,這種方式比較直接,且方便、易用。在建立數(shù)據(jù)表時(shí)創(chuàng)建索引的基本語(yǔ)法結(jié)構(gòu)如下:CREATETABLEtable_name(屬性名數(shù)據(jù)類(lèi)型[約束條件],屬性名數(shù)據(jù)類(lèi)型[約束條件]…屬性名數(shù)據(jù)類(lèi)型[UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY[別名](屬性名1[(長(zhǎng)度)][ASC|DESC]));創(chuàng)建索引索引操作在MySQL中,不但可以在創(chuàng)建數(shù)據(jù)表時(shí)創(chuàng)建索引,也可以直接在已經(jīng)創(chuàng)建的表中,在已經(jīng)存在的一個(gè)或幾個(gè)字段中創(chuàng)建索引。語(yǔ)法結(jié)構(gòu)如下:CREATE[UNIQUE|FULLTEXT|SPATIAL]INDEXindex_nameONtable_name(屬性[(length)][ASC|DESC]);創(chuàng)建索引索引操作刪除索引可以通過(guò)DROP語(yǔ)句來(lái)實(shí)現(xiàn),語(yǔ)法結(jié)構(gòu)如下:DROPINDEXindex_nameONtable_name;刪除索引目錄01020304表約束操作數(shù)據(jù)類(lèi)型索引操作數(shù)據(jù)表基本操作05本章小結(jié)本章小結(jié)本章主要介紹了MySQL數(shù)據(jù)表和索引操作。首先介紹的是數(shù)據(jù)表的基本操作,包括創(chuàng)建數(shù)據(jù)表、查看表結(jié)構(gòu)、修改表結(jié)構(gòu)、重命名表、復(fù)制表和刪除表等。然后介紹創(chuàng)建數(shù)據(jù)表時(shí)涉及的數(shù)據(jù)類(lèi)型和表約束操作。常用的數(shù)據(jù)類(lèi)型包括數(shù)字類(lèi)型、字符串類(lèi)型、日期和時(shí)間類(lèi)型,并介紹了如何為字段選擇合適的數(shù)據(jù)類(lèi)型。在創(chuàng)建數(shù)據(jù)表時(shí),還需要設(shè)置一系列的表約束,包括字段的非空約束、默認(rèn)值、唯一約束、主鍵約束、自動(dòng)增加約束、外鍵約束等。最后介紹了索引操作,包括索引的作用、創(chuàng)建索引和刪除索引。數(shù)據(jù)表操作是建立數(shù)據(jù)庫(kù)過(guò)程中最重要、最關(guān)鍵的一步,一定要重點(diǎn)掌握。謝謝觀看匯報(bào)人:秒出PPT第6章

數(shù)據(jù)記錄操作本章概述數(shù)據(jù)記錄操作主要包括向表中插入數(shù)據(jù)記錄、修改表中的數(shù)據(jù)記錄以及刪除表中的數(shù)據(jù)記錄等。本章學(xué)習(xí)目標(biāo)掌握向數(shù)據(jù)表中插入單條數(shù)據(jù)記錄的方法;掌握批量插入多條數(shù)據(jù)記錄的方法;掌握修改數(shù)據(jù)記錄的方法;掌握使用DELETE語(yǔ)句刪除數(shù)據(jù)記錄的方法;掌握清空表中數(shù)據(jù)記錄的方法。目錄01020304刪除表記錄修改數(shù)據(jù)記錄本章實(shí)踐插入數(shù)據(jù)記錄05本章小結(jié)目錄01020304刪除表記錄修改數(shù)據(jù)記錄本章實(shí)踐插入數(shù)據(jù)記錄05本章小結(jié)插入數(shù)據(jù)記錄插入數(shù)據(jù)記錄在建立一個(gè)空的數(shù)據(jù)庫(kù)和數(shù)據(jù)表時(shí),首先需要考慮的是如何向數(shù)據(jù)表中添加數(shù)據(jù)記錄,該操作可以使用INSERT語(yǔ)句來(lái)完成。使用INSERT語(yǔ)句可以向一個(gè)已有數(shù)據(jù)表插入一條或者多條數(shù)據(jù)記錄。下面將分別進(jìn)行介紹。插入數(shù)據(jù)記錄使用INSERT…VALUES語(yǔ)句插入數(shù)據(jù)記錄使用INSERT…VALUES語(yǔ)句插入數(shù)據(jù)記錄,是INSERT語(yǔ)句最常用的語(yǔ)法格式。它的語(yǔ)法格式如下:插入數(shù)據(jù)記錄插入完整數(shù)據(jù)通過(guò)INSERT…VALUES語(yǔ)句可以實(shí)現(xiàn)向數(shù)據(jù)表中插入完整的數(shù)據(jù)記錄。下面通過(guò)一個(gè)具體的實(shí)例來(lái)演示如何向數(shù)據(jù)表中插入完整的數(shù)據(jù)記錄。插入數(shù)據(jù)記錄插入數(shù)據(jù)記錄的一部分字段通過(guò)INSERT…VALUES語(yǔ)句還可以向數(shù)據(jù)表中插入數(shù)據(jù)記錄的一部分字段,也就是只插入一條記錄中的某幾個(gè)字段的值。插入數(shù)據(jù)記錄插入多條記錄通過(guò)INSERT…VALUES語(yǔ)句還可以實(shí)現(xiàn)一次性插入多條數(shù)據(jù)記錄。使用該方法批量插入數(shù)據(jù)記錄,比使用多條單行的INSERT語(yǔ)句的效率要高。插入數(shù)據(jù)記錄使用INSERT…SELECT語(yǔ)句插入結(jié)果集在MySQL中,支持將查詢(xún)結(jié)果插入到指定的數(shù)據(jù)表中,這可以通過(guò)INSERT…SELECT語(yǔ)句來(lái)實(shí)現(xiàn)。INSERT[LOW_PRIORITY|HIGH_PRIORITY][IGNORE][INTO]數(shù)據(jù)表名[(字段名,…)]SELECT…[ONDUPLICATEKEYUPDATE字段名=表達(dá)式,…]插入數(shù)據(jù)記錄使用REPLACE語(yǔ)句插入新數(shù)據(jù)記錄在插入數(shù)據(jù)記錄時(shí),還可以使用REPLACE插入新的數(shù)據(jù)記錄。REPLACE語(yǔ)句與INSERTINTO語(yǔ)句類(lèi)似,所不同的是:如果一個(gè)要插入數(shù)據(jù)記錄的數(shù)據(jù)表中存在主鍵約束(PRIMARYKEY)或者唯一約束(UNIQUEKEY),而且要插入的數(shù)據(jù)記錄中又包含與要插入數(shù)據(jù)記錄的表中相同的主鍵約束或唯一約束列的值,那么使用INSERTINTO語(yǔ)句插入這條數(shù)據(jù)記錄將失敗,而使用REPLACE語(yǔ)句則可以成功插入,只不過(guò)會(huì)先將原數(shù)據(jù)表的沖突數(shù)據(jù)記錄刪除,然后再插入新的數(shù)據(jù)記錄。目錄01020304刪除表記錄修改數(shù)據(jù)記錄本章實(shí)踐插入數(shù)據(jù)記錄05本章小結(jié)修改數(shù)據(jù)記錄修改數(shù)據(jù)記錄可以通過(guò)UPDATE語(yǔ)句實(shí)現(xiàn),語(yǔ)法格式如下:UPDATE數(shù)據(jù)表名SETcolumn_name=new_value1,column_name2=new_value2,…WHERE條件表達(dá)式其中,SET子句指出要修改的列字段和字段值,WHERE子句是可選的,如果給出,那么它將指定數(shù)據(jù)表中哪行數(shù)據(jù)記錄應(yīng)該被更新,否則所有的數(shù)據(jù)記錄行都將被更新。目錄01020304刪除表記錄修改數(shù)據(jù)記錄本章實(shí)踐插入數(shù)據(jù)記錄05本章小結(jié)刪除表記錄使用DELETE語(yǔ)句刪除表記錄使用TRUNCATE語(yǔ)句清空表記錄目錄刪除表記錄修改數(shù)據(jù)記錄本章實(shí)踐插入數(shù)據(jù)記錄本章小結(jié)0102030405本章實(shí)踐本節(jié)將通過(guò)圖形化管理軟件Nivacat,為上一章建立的圖書(shū)管理系統(tǒng)的基本數(shù)據(jù)表錄入一些測(cè)試數(shù)據(jù)。目錄刪除表記錄修改數(shù)據(jù)記錄本章實(shí)踐插入數(shù)據(jù)記錄本章小結(jié)0102030405本章小結(jié)本章主要介紹了對(duì)數(shù)據(jù)記錄進(jìn)行操作,主要包括向表中插入記錄、修改表記錄以及刪除表記錄。其中,在插入表數(shù)據(jù)記錄時(shí),共有4種實(shí)現(xiàn)方式,分別是插入單條數(shù)據(jù)記錄、同時(shí)插入多條數(shù)據(jù)記錄、以結(jié)果集方式插入數(shù)據(jù)記錄,以及使用REPLACE語(yǔ)句插入新數(shù)據(jù)記錄。在這4種方法中,最常用的是插入單條數(shù)據(jù)記錄和插入多條數(shù)據(jù)記錄,這兩種插入數(shù)據(jù)記錄的方式,需要重點(diǎn)掌握,靈活運(yùn)用。在最后的本章實(shí)戰(zhàn)中,通過(guò)使用NavicatforMySQL圖形化軟件,為數(shù)據(jù)表自動(dòng)生成填充數(shù)據(jù)記錄。使用這樣的方法可以快速隨機(jī)生成一批測(cè)試數(shù)據(jù),用來(lái)測(cè)試用。由于數(shù)據(jù)是隨機(jī)生成的,為了更使數(shù)據(jù)更真實(shí),需要手動(dòng)修改一下數(shù)據(jù)表中生成的數(shù)據(jù)記錄。謝謝觀看匯報(bào)人:秒出PPT第7章

數(shù)據(jù)查詢(xún)本章概述數(shù)據(jù)查詢(xún)是數(shù)據(jù)庫(kù)操作中最常用也是最重要的操作,是指從數(shù)據(jù)庫(kù)中獲取所需要的數(shù)據(jù)。在MySQL中使用SELECT語(yǔ)句來(lái)查詢(xún)數(shù)據(jù)。通過(guò)SELECT語(yǔ)句查詢(xún)數(shù)據(jù),有不同的查詢(xún)方式。不同的查詢(xún)方式可以獲得不同的數(shù)據(jù),開(kāi)發(fā)人員可以根據(jù)需求選擇不同的查詢(xún)方式。本章學(xué)習(xí)目標(biāo)掌握SELECT查詢(xún)的語(yǔ)法結(jié)構(gòu),通過(guò)SELECT語(yǔ)句查詢(xún)所有字段、指定字段和指定數(shù)據(jù)的操作;掌握按條件查詢(xún)數(shù)據(jù)的方法;掌握常用的高級(jí)查詢(xún)方式,例如,對(duì)查詢(xún)結(jié)果排序、分組查詢(xún)、使用LIMIT限制查詢(xún);掌握在查詢(xún)過(guò)程中使用聚合函數(shù)進(jìn)一步對(duì)查詢(xún)結(jié)果進(jìn)行加工;了解連接查詢(xún)、子查詢(xún)的操作,以及合并查詢(xún)結(jié)果;掌握在查詢(xún)過(guò)程中定義表和字段的別名;掌握常用的正則表達(dá)式在查詢(xún)中的應(yīng)用。目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09基本查詢(xún)語(yǔ)句7.1.1SELECT語(yǔ)句SELECT語(yǔ)句是最常用的查詢(xún)語(yǔ)句,它的使用方式有簡(jiǎn)單的,也有復(fù)雜的。SELECT語(yǔ)句的基本語(yǔ)法如下。SELECTselectionlist//要查詢(xún)的內(nèi)容,選擇哪些列FROM數(shù)據(jù)表名//指定數(shù)據(jù)表WHEREprimary_constraint//查詢(xún)時(shí)需要滿足的條件,行必須滿足的條件GROUPBYgrouping_columns//如何對(duì)結(jié)果進(jìn)行分組ORDERBYsortingcloumns//如何對(duì)結(jié)果進(jìn)行排序HAVINGsecondary_constraint//查詢(xún)時(shí)滿足的第二條件LIMITcount//限定輸出的查詢(xún)結(jié)果基本查詢(xún)語(yǔ)句7.1.1SELECT語(yǔ)句-使用SELECT語(yǔ)句查詢(xún)單個(gè)數(shù)據(jù)表使用SELECT語(yǔ)句從某個(gè)數(shù)據(jù)表查詢(xún)數(shù)據(jù)時(shí),首先要確定要查詢(xún)的列?!?”代表所有的列。例如,查詢(xún)db_library數(shù)據(jù)庫(kù)的tb_admin表中的所有數(shù)據(jù),代碼如下。USEdb_library;SELECT*FROMtb_admin;查詢(xún)結(jié)果如圖所示?;静樵?xún)語(yǔ)句7.1.1SELECT語(yǔ)句-查詢(xún)數(shù)據(jù)表中的指定列查詢(xún)數(shù)據(jù)表中的多列,只要在SELECT后面指定要查詢(xún)的列名即可,多列之間用“,”分隔。例如,查詢(xún)tb_admin表中的admin_id和username列數(shù)據(jù):SELECTadmin_id,usernameFROMtb_admin;查詢(xún)結(jié)果如圖所示?;静樵?xún)語(yǔ)句7.1.1SELECT語(yǔ)句-從一個(gè)或多個(gè)表中獲取數(shù)據(jù)確定所要查詢(xún)的數(shù)據(jù)在哪個(gè)表中,在對(duì)多個(gè)表進(jìn)行查詢(xún)時(shí),同樣使用“,”對(duì)多個(gè)表進(jìn)行分隔。例如,從tb_book表和tb_category表中查詢(xún)出tb_book.book_id、tb_book.bookname、tb_category.cat_name和tb_book.price字段的值:SELECTtb_book.book_id,tb_book.bookname,tb_category.cat_name,tb_book.pricefromtb_category,tb_bookWHEREtb_book.cat_id=tb_category.cat_id;查詢(xún)結(jié)果如圖所示?;静樵?xún)語(yǔ)句7.1.2查詢(xún)所有字段確定所要查詢(xún)的數(shù)據(jù)在哪個(gè)表中,在對(duì)多個(gè)表進(jìn)行查詢(xún)時(shí),同樣使用“,”對(duì)多個(gè)表進(jìn)行分隔。例如,從tb_book表和tb_category表中查詢(xún)出tb_book.book_id、tb_book.bookname、tb_category.cat_name和tb_book.price字段的值:SELECTtb_book.book_id,tb_book.bookname,tb_category.cat_name,tb_book.pricefromtb_category,tb_bookWHEREtb_book.cat_id=tb_category.cat_id;查詢(xún)結(jié)果如圖所示?;静樵?xún)語(yǔ)句7.1.3查詢(xún)指定字段查詢(xún)指定字段的數(shù)據(jù)可以使用下面的語(yǔ)法格式:SELECT字段名FROM表名;如果查詢(xún)多個(gè)字段,可以使用“,”對(duì)字段進(jìn)行分隔。例如,查詢(xún)圖書(shū)信息表tb_book中圖書(shū)的名稱(chēng)、作者、價(jià)格、圖書(shū)唯一識(shí)別碼:SELECTbookname,author,price,ISBNFROMtb_book;基本查詢(xún)語(yǔ)句7.1.4查詢(xún)指定數(shù)據(jù)如果要從很多記錄中查詢(xún)出指定的記錄,則需要設(shè)定查詢(xún)的條件。設(shè)定查詢(xún)條件應(yīng)用的是WHERE子句,該子句可以實(shí)現(xiàn)很多復(fù)雜的條件查詢(xún)。例如,查詢(xún)名稱(chēng)為Romero的管理員:SELECT*FROMtb_adminWHEREusername='Romero';目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09按條件查詢(xún)7.2.1帶關(guān)系運(yùn)算符的查詢(xún)帶關(guān)系運(yùn)算符的查詢(xún),也就是將MySQL支持的關(guān)系運(yùn)算符引入數(shù)據(jù)庫(kù)查詢(xún)中。例如,從圖書(shū)管理數(shù)據(jù)庫(kù)db_library的圖書(shū)信息表tb_book中,查詢(xún)定價(jià)price大于40元的圖書(shū)。語(yǔ)句如下:SELECTbookname,author,priceFROMtb_bookWHEREprice>40;按條件查詢(xún)7.2.2帶IN關(guān)鍵字的查詢(xún)關(guān)鍵字IN可以判斷某個(gè)字段的值是否在指定的集合中。如果字段的值在集合中,則滿足查詢(xún)條件,返回該字段所屬記錄;如果不在集合中,則不滿足查詢(xún)條件,不返回該記錄。語(yǔ)法格式如下。SELECT*FROM表名WHERE條件[NOT]IN(元素1,元素2,…,元素n);例如:SELECTbook_id,bookname,authorFROMtb_bookWHEREauthorIN('明日科技','劉丹冰');按條件查詢(xún)7.2.3帶BETWEENAND關(guān)鍵字的查詢(xún)關(guān)鍵字BETWEENAND可以判斷某個(gè)字段的值是否在指定的范圍內(nèi)。如果字段的值在指定范圍內(nèi),則滿足查詢(xún)條件,該記錄將被查詢(xún)出來(lái);如果不在指定范圍內(nèi),則不滿足查詢(xún)條件。其語(yǔ)法如下。SELECT*FROM表名WHERE條件[NOT]BETWEEN取值1AND取值2;例如:SELECTbookname,author,priceFROMtb_bookWHEREpriceBETWEEN30AND40;按條件查詢(xún)7.2.4空值查詢(xún)ISNULL關(guān)鍵字可以用來(lái)判斷字段的值是否為空值(NULL)。例如,為圖書(shū)信息表tb_book添加test字段,然后插入若干數(shù)據(jù)值,語(yǔ)句如下:ALTERTABLEtb_bookADDtestVARCHAR(50)NULL;按條件查詢(xún)7.2.5用關(guān)鍵字DISTINCT去除結(jié)果中的重復(fù)行使用DISTINCT關(guān)鍵字可以去除查詢(xún)結(jié)果中的重復(fù)記錄,語(yǔ)法格式如下。SELECTDISTINCT字段名FROM表名;例如,要查看tb_book表中有哪些書(shū)架上有書(shū),語(yǔ)句如下:SELECTDISTINCTbookcaseFROMtb_book;按條件查詢(xún)7.2.6帶LIKE關(guān)鍵字的查詢(xún)LIKE屬于較常用的比較運(yùn)算符,可用于實(shí)現(xiàn)模糊查詢(xún)。它有兩種通配符:“%”和下畫(huà)線“_”?!?”可以匹配一個(gè)或多個(gè)字符,可以代表任意長(zhǎng)度的字符串,長(zhǎng)度可以為0。例如,“明%技”表示以“明”開(kāi)頭、以“技”結(jié)尾的任意長(zhǎng)度的字符串。該字符串可以代表明日科技、明日編程科技、明日?qǐng)D書(shū)科技等字符串?!癬”只匹配一個(gè)字符。例如,m_n表示以m開(kāi)頭、以n結(jié)尾的3個(gè)字符。中間的“_”可以是任意一個(gè)字符。按條件查詢(xún)7.2.7帶AND關(guān)鍵字的多條件查詢(xún)AND關(guān)鍵字可以用來(lái)聯(lián)合多個(gè)條件進(jìn)行查詢(xún)。使用AND關(guān)鍵字時(shí),只有同時(shí)滿足所有查詢(xún)條件的記錄才會(huì)被查詢(xún)出來(lái);如果不滿足查詢(xún)條件中的一個(gè),那么這樣的記錄將被排除。AND關(guān)鍵字的語(yǔ)法格式如下。SELECT*FROM數(shù)據(jù)表名WHERE條件1AND條件2[…AND條件表達(dá)式n];判斷輸入的管理員賬號(hào)和密碼是否存在:SELECTbook_id,bookname,authorFROMtb_bookWHEREbooknameLIKE'%GO%'ANDauthor='劉丹冰';按條件查詢(xún)7.2.8帶OR關(guān)鍵字的多條件查詢(xún)使用OR關(guān)鍵字時(shí),只要滿足查詢(xún)條件中的一個(gè),那么此記錄就會(huì)被查詢(xún)出來(lái)。例如,根據(jù)作者查詢(xún)圖書(shū)信息:SELECTbook_id,bookname,authorFROMtb_bookWHEREauthor='明日科技'ORauthor='劉丹冰';目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)097.3高級(jí)查詢(xún) 使用ORDERBY關(guān)鍵字可以對(duì)查詢(xún)的結(jié)果進(jìn)行升序(ASC)或降序(DESC)排列。ORDERBY字段名[ASC|DESC];ASC表示按升序排列,DESC表示按降序排列。例如:SELECTbook_id,bookname,priceFROMtb_bookORDERBYpriceDESC;7.3.1對(duì)查詢(xún)結(jié)果排序7.3高級(jí)查詢(xún) GROUPBY子句可以將數(shù)據(jù)劃分到不同的組中,實(shí)現(xiàn)對(duì)記錄進(jìn)行分組查詢(xún)。例如:使用GROUPBY關(guān)鍵字對(duì)tb_book表中bookcase字段進(jìn)行分組查詢(xún),語(yǔ)句如下。SELECTbookcase,COUNT(*)FROMtb_bookGROUPBYbookcase;此外,還可以按多個(gè)字段進(jìn)行分組。7.3.2分組查詢(xún)7.3高級(jí)查詢(xún) LIMIT子句可以對(duì)查詢(xún)結(jié)果的記錄條數(shù)進(jìn)行限定,控制輸出的行數(shù)。例如:SELECTbook_id,bookname,priceFROMtb_bookORDERBYpriceDESCLIMIT3;7.3.3使用LIMIT限制查詢(xún)結(jié)果數(shù)量目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09聚合函數(shù)查詢(xún)返回選擇集合中所有行的數(shù)目,包含NULL值的行:SELECTCOUNT(*)FROMtb_book;COUNT函數(shù)聚合函數(shù)查詢(xún)SUM()函數(shù)可以求出表中某個(gè)數(shù)值類(lèi)型字段取值的總和。例如:使用SUM()函數(shù)統(tǒng)計(jì)tb_book表中總金額字段(total)的總和,語(yǔ)句如下。SELECTSUM(total)FROMtb_book;SUM函數(shù)聚合函數(shù)查詢(xún)AVG()函數(shù)可以求出表中某個(gè)數(shù)值類(lèi)型字段取值的平均值。例如:使用AVG()函數(shù)求tb_book表中圖書(shū)價(jià)格(price)字段值的平均值,語(yǔ)句如下。SELECTAVG(price)FROMtb_book;AVG函數(shù)聚合函數(shù)查詢(xún)MAX()函數(shù)可以求出表中某個(gè)數(shù)值類(lèi)型字段取值的最大值。例如,使用MAX()函數(shù)查詢(xún)tb_book表中price字段值的最大值,語(yǔ)句如下。SELECTMAX(price)FROMtb_book;MAX函數(shù)聚合函數(shù)查詢(xún)使用MIN()函數(shù)查詢(xún)tb_book表中price字段值的最小值。查詢(xún)語(yǔ)句如下。SELECTMIN(price)FROMtb_book;MIN函數(shù)目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09連接查詢(xún)內(nèi)連接(INNERJOIN)是SQL中的一種連接類(lèi)型,用于將兩個(gè)或多個(gè)表中的記錄根據(jù)某個(gè)條件進(jìn)行匹配,并返回匹配的記錄。內(nèi)連接可以分為幾種類(lèi)型:等值連接。在連接條件中使用等于號(hào)(=)運(yùn)算符比較被連接列的列值。非等值連接。在連接條件中使用除等于運(yùn)算符以外的其他比較運(yùn)算符,如大于、小于等。自連接。將一張表看作兩張表,通過(guò)別名區(qū)分,然后進(jìn)行連接查詢(xún)。內(nèi)連接查詢(xún)連接查詢(xún)【例7-22】使用內(nèi)連接查詢(xún)圖書(shū)的借閱信息。代碼如下。SELECTtb_borrow.book_id,tb_book.bookname,tb_borrow.borrowTime,tb_borrow.backTime,tb_borrow.ifbackFROMtb_book,tb_borrowWHEREtb_borrow.book_id=tb_book.book_id;內(nèi)連接查詢(xún)連接查詢(xún)外連接(OuterJoin)是一種SQLJOIN操作,它允許從一個(gè)表中選擇所有的記錄,而無(wú)論在另一個(gè)表中是否有匹配的記錄。如果記錄在另一個(gè)表中沒(méi)有匹配,那么結(jié)果集中的值為NULL。在左外連接查詢(xún)時(shí),查詢(xún)左表所有數(shù)據(jù),以及兩張表交集部分的數(shù)據(jù)。語(yǔ)法格式如下:SELECT字段列表FROM表1LEFTOUTERJOIN表2ON條件…;右外連接(RIGHTJOIN)和左外連接恰好相反。右外連接包括右邊的所有數(shù)據(jù),以及兩張表交集部分?jǐn)?shù)據(jù)。表中不符合條件的數(shù)據(jù),在相應(yīng)列中填充N(xiāo)ULL值。外連接查詢(xún)目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09子查詢(xún)IN運(yùn)算符可以檢測(cè)結(jié)果集中是否存在某個(gè)特定的值,如果檢測(cè)成功,則執(zhí)行外部的查詢(xún)。SELECTbook_id,bookname,authorFROMtb_bookWHEREbook_idIN(SELECTbook_idFROMtb_borrow);帶IN關(guān)鍵字的子查詢(xún)子查詢(xún)從歸還表tb_back中查詢(xún)圖書(shū)編號(hào)book_id等于1002的管理員(operator),然后查詢(xún)tb_admin表中姓名username為該管理員的信息,代碼如下。SELECT*FROMtb_adminWHEREusername=(SELECToperatorFROMtb_backWHEREbook_id=1002);帶比較運(yùn)算符的子查詢(xún)子查詢(xún)應(yīng)用帶EXISTS關(guān)鍵字的子查詢(xún)實(shí)現(xiàn)查詢(xún)已經(jīng)被借閱的圖書(shū)的信息,代碼如下。SELECTbook_id,bookname,authorFROMtb_bookWHEREEXISTS(SELECT*FROMtb_borrowWHEREtb_borrow.book_id=tb_book.book_id);帶EXISTS關(guān)鍵字的子查詢(xún)子查詢(xún)。使用ANY關(guān)鍵字時(shí),只要滿足內(nèi)層查詢(xún)語(yǔ)句返回的結(jié)果中的任意一個(gè),就可以通過(guò)該條件來(lái)執(zhí)行外層查詢(xún)語(yǔ)句。語(yǔ)法格式如下。列名比較運(yùn)算符ANY(子查詢(xún))例如,從圖書(shū)信息表tb_book中查詢(xún)出非最低價(jià)格的全部圖書(shū)信息,主要是通過(guò)帶ANY關(guān)鍵字的子查詢(xún)實(shí)現(xiàn)查詢(xún)非最低圖書(shū)價(jià)格的圖書(shū)信息,示例代碼如下。SELECTbook_id,bookname,author,priceFROMtb_bookWHEREprice>ANY(SELECTMin(price)FROMtb_book);帶ANY關(guān)鍵字的子查詢(xún)子查詢(xún)使用ALL關(guān)鍵字時(shí),只有滿足內(nèi)層查詢(xún)語(yǔ)句返回的所有結(jié)果,才可以執(zhí)行外層查詢(xún)語(yǔ)句。語(yǔ)法格式如下。列名比較運(yùn)算符ALL(子查詢(xún))例如,查詢(xún)比圖書(shū)編號(hào)1001價(jià)格高的全部圖書(shū)信息,主要是通過(guò)帶ALL關(guān)鍵字的子查詢(xún)實(shí)現(xiàn),示例代碼如下。SELECTbook_id,bookname,author,priceFROMtb_bookWHEREprice>ALL(SELECTpriceFROMtb_bookWHEREbook_id=1001);帶ALL關(guān)鍵字的子查詢(xún)目錄01020304高級(jí)查詢(xún)按條件查詢(xún)聚合函數(shù)查詢(xún)基本查詢(xún)語(yǔ)句05連接查詢(xún)06子查詢(xún)07合并查詢(xún)結(jié)果定義表和字段的表明08使用正則表達(dá)式查詢(xún)09合并查詢(xún)結(jié)果使用UNION關(guān)鍵字可以將多個(gè)結(jié)果集合并到一起,并且會(huì)去除相同記錄。假設(shè)有一個(gè)與歸還表tb_back結(jié)構(gòu)相同的數(shù)據(jù)表tb_back_copy1,查詢(xún)結(jié)果如圖所示。7.7.1使用UNION關(guān)鍵字合并查詢(xún)結(jié)果下面使用UNION關(guān)鍵字合并兩個(gè)表的查詢(xún)結(jié)果,語(yǔ)句如下。SELECT*FROMtb_backUNIONSELECT*FROMtb_back_copy1;查詢(xún)結(jié)果如圖所示。結(jié)果顯示,所有結(jié)果被合并,重復(fù)值被去除。7.7.1使用UNION關(guān)鍵字合并查詢(xún)結(jié)果UNIONALL關(guān)鍵字的使用方法類(lèi)似于UNION關(guān)鍵字,也是將多個(gè)結(jié)果集

溫馨提示

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