版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章 MySQL數(shù)據(jù)庫基礎(chǔ)操作本章要點1了解數(shù)據(jù)庫、MySQL數(shù)據(jù)庫的基本概念2熟悉MySQL數(shù)據(jù)庫的啟動、連接等操作3掌握MySQL數(shù)據(jù)庫的安裝配置4掌握MySQL數(shù)據(jù)庫客戶端的基本使用 引言MySQL數(shù)據(jù)庫由MySQL AB公司開發(fā),目前歸屬于Oracle公司(甲骨文軟件系統(tǒng)有限公司),是最流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。MySQL數(shù)據(jù)庫幾乎支持所有操作系統(tǒng),由于具有免費使用、配置簡單、穩(wěn)定性好、性能優(yōu)良等優(yōu)點,使得MySQL數(shù)據(jù)庫的發(fā)展非常迅猛,目前已經(jīng)廣泛應(yīng)用在各個行業(yè)中。 任務(wù)一MySQL數(shù)據(jù)庫安裝與配置一、任務(wù)描述本任務(wù)安裝MySQL數(shù)據(jù)庫,并進行有關(guān)配置。二、任務(wù)分析MySQL數(shù)據(jù)庫
2、的安裝和配置比較容易,安裝時需要注意MySQL的Workbench客戶端依賴于Microsoft Visual C+ Runtime,必須先安裝Microsoft Visual C+ Runtime,否則Workbench無法安裝;MySQL的配置可以在安裝完成后直接進行,也可以在安裝完成后進行有關(guān)的配置。多數(shù)配置采用默認值,比如端口號、日志等。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置(一)數(shù)據(jù)庫基本概念1數(shù)據(jù)描述事物的符號記錄稱為數(shù)據(jù)。2數(shù)據(jù)庫數(shù)據(jù)庫是按照一定的數(shù)據(jù)模型組織的、長期儲存在計算機內(nèi)、可為多個用戶共享的數(shù)據(jù)的聚集。數(shù)據(jù)庫數(shù)據(jù)具有永久存儲、有組織和可共享三個基本特點。任務(wù)一MySQL數(shù)據(jù)庫
3、安裝與配置3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是位于用戶與操作系統(tǒng)之間的一層數(shù)據(jù)管理軟件,其主要功能包括幾個方面:(1)數(shù)據(jù)定義功能。(2)數(shù)據(jù)組織、存儲和管理。(3)數(shù)據(jù)操縱功能。(4)數(shù)據(jù)庫的事務(wù)管理和運行管理。(5)數(shù)據(jù)庫的建立和維護功能。(6)其他功能。與其他軟件系統(tǒng)的通信功能、與另一個數(shù)據(jù)庫管理系統(tǒng)或文件系統(tǒng)的數(shù)據(jù)轉(zhuǎn)換功能等。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置4數(shù)據(jù)庫系統(tǒng)它包括和數(shù)據(jù)庫有關(guān)的整個系統(tǒng):數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、應(yīng)用程序以及數(shù)據(jù)庫管理員和用戶等等。(1)硬件平臺及數(shù)據(jù)庫由于數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)量都很大,加之DBMS豐富的功能使得自身的規(guī)模也很大,因此整個數(shù)據(jù)庫系統(tǒng)對硬件資源提出了較高的
4、要求。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置 要有足夠大的內(nèi)存 有足夠大的磁盤或磁盤陣列等設(shè)備存放數(shù)據(jù)庫; 要求系統(tǒng)有較高的通道能力,以提高數(shù)據(jù)傳送率。(2)軟件數(shù)據(jù)庫系統(tǒng)的軟件主要包括: 數(shù)據(jù)庫的建立、使用和維護配置的系統(tǒng)軟件。 支持運行的操作系統(tǒng)。 具有與數(shù)據(jù)庫接口的高級語言及其編譯系統(tǒng),便于開發(fā)應(yīng)用程序。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置 以DBMS為核心的應(yīng)用開發(fā)工具。 為特定應(yīng)用環(huán)境開發(fā)的數(shù)據(jù)庫應(yīng)用系統(tǒng)。(3)人員開發(fā)、管理和使用數(shù)據(jù)庫系統(tǒng)的人員主要是:數(shù)據(jù)庫管理員、系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計人員、應(yīng)用程序員和最終用戶。 數(shù)據(jù)庫管理員。負責全面管理和控制數(shù)據(jù)庫系統(tǒng)。 系統(tǒng)分析員和數(shù)據(jù)庫設(shè)計人員系
5、統(tǒng)分析員負責應(yīng)用系統(tǒng)的需求分析和規(guī)范說明,要和用戶及DBA相結(jié)合,確定系統(tǒng)的硬件軟件配置,并參與數(shù)據(jù)庫系統(tǒng)的概要設(shè)計。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置 應(yīng)用程序員應(yīng)用程序員負責設(shè)計和編寫應(yīng)用系統(tǒng)的程序模塊,并進行調(diào)試和安裝。 用戶這里用戶是指最終用戶,最終用戶通過應(yīng)用系統(tǒng)的用戶接口使用數(shù)據(jù)庫。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置數(shù)據(jù)庫發(fā)展過程1人工管理階段20世紀50年代中期以前為人工管理階段,其特點:(1)數(shù)據(jù)不保存。(2)應(yīng)用程序管理數(shù)據(jù)。(3)數(shù)據(jù)不共享。(4)數(shù)據(jù)不具有獨立性。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置2文件系統(tǒng)階段。上世紀50年代后期到60年代中期為文件管理階段,其特點:(1)數(shù)據(jù)
6、可以長期保存。(2)由文件系統(tǒng)管理數(shù)據(jù)其缺點為:(1)數(shù)據(jù)共享性差,冗余度大。(2)數(shù)據(jù)獨立性差。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置3數(shù)據(jù)庫系統(tǒng)階段。20世紀60年代后期以來為數(shù)據(jù)庫系統(tǒng)階段,其特點:(1)數(shù)據(jù)結(jié)構(gòu)化。(2)數(shù)據(jù)的共享性高、冗余度低、易擴充。(3)數(shù)據(jù)獨立性高。(4)數(shù)據(jù)由DBMS統(tǒng)一管理和控制。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置1關(guān)系所謂關(guān)系,就是一張表。表的各列以屬性開始,屬性是列的入口。例:表1-1是一個名為Course(課程)的關(guān)系,記錄的是課程的相關(guān)信息,包括Course No(課程號)、Course Name(課程名)和Teacher(任課老師)。任務(wù)一MySQL數(shù)據(jù)庫
7、安裝與配置1關(guān)系所謂關(guān)系,就是一張表。表的各列以屬性開始,屬性是列的入口。例:表1-1是一個名為Course(課程)的關(guān)系,記錄的是課程的相關(guān)信息,包括Course No(課程號)、Course Name(課程名)和Teacher(任課老師)。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置2關(guān)系模型數(shù)據(jù)以“關(guān)系”的形式表示,也就是以二維表的形式表示,其數(shù)據(jù)模型就是所謂的關(guān)系模型。在關(guān)系模型中,無論是從客觀事物中抽象出的實體,還是實體之間的聯(lián)系,都用單一的結(jié)構(gòu)類型關(guān)系來表示。在對關(guān)系進行各種處理之后,得到的還是關(guān)系一張新的二維表。由于關(guān)系模型中數(shù)據(jù)結(jié)構(gòu)簡單清晰,概念單一,易學(xué)易用,深受用戶喜愛。任務(wù)一MySQ
8、L數(shù)據(jù)庫安裝與配置3列表中的一個字段,所有表都是有一個或多個列組合而成的。如Course(課程)表由Course No(課程號)、Course Name(課程名稱)、Teacher(任課老師)三個列組成。4行表中的一條記錄。表中行數(shù)為記錄的總數(shù)。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置(四)常用數(shù)據(jù)庫目前,商品化的數(shù)據(jù)庫管理系統(tǒng)以關(guān)系型數(shù)據(jù)庫為主導(dǎo)產(chǎn)品,技術(shù)比較成熟。國際國內(nèi)的主流關(guān)系型數(shù)據(jù)庫管理系統(tǒng)有Oracle、SQL Server、MySQL、DB2等。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置1Oracle Oracle在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位,具有以下特性:兼容性:Oracle產(chǎn)品采用標準SQL,
9、并經(jīng)過美國國家標準技術(shù)所測試可移植性:Oracle的產(chǎn)品可運行于很寬范圍的硬件與操作系統(tǒng)平臺上??陕?lián)結(jié)性:Oracle能與多種通訊網(wǎng)絡(luò)相連,支持各種協(xié)議高生產(chǎn)率:Oracle產(chǎn)品提供了多種開發(fā)工具,能極大地方便用戶進行進一步的開發(fā)。開放性:Oracle良好的兼容性、可移植性、可連接性和高生產(chǎn)率。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置3DB2IBM DB2 是IBM公司開發(fā)的一套關(guān)系型數(shù)據(jù)庫管理系統(tǒng),主要應(yīng)用于大型應(yīng)用系統(tǒng),具有較好的可伸縮性,可支持從大型機到單用戶環(huán)境,應(yīng)用于所有常見的服務(wù)器操作系統(tǒng)平臺下。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置(五)MySQL數(shù)據(jù)庫MySQL是最受歡迎的開源SQL數(shù)據(jù)庫管
10、理系統(tǒng),是一個快速的、多線程、多用戶和健壯的SQL數(shù)據(jù)庫服務(wù)器。MySQL服務(wù)器支持關(guān)鍵任務(wù)、重負載生產(chǎn)系統(tǒng)的使用,也可以將它嵌入到一個大配置的軟件中去。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置1MySQL優(yōu)勢與其他數(shù)據(jù)庫管理系統(tǒng)相比,MySQL具有以下優(yōu)勢:(1)MySQL是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng)。(2)MySQL是開源的。(3)MySQL服務(wù)器是一個快速的、可靠的和易于使用的數(shù)據(jù)庫服務(wù)器。(4)MySQL服務(wù)器工作在客戶/服務(wù)器或嵌入系統(tǒng)中。(5)內(nèi)部構(gòu)件和可移植性。(6)字段類型眾多。任務(wù)一MySQL數(shù)據(jù)庫安裝與配置(7)豐富的語句和函數(shù)。(8)可靠的安全性。(9)良好的可伸縮性。(10)連接方
11、便。(11)支持本地化。(12)功能強大且使用方便的客戶端和工具。(13)有大量的MySQL軟件可以使用。任務(wù)二 MySQL客戶端使用一、任務(wù)描述本任務(wù)學(xué)習使用MySQL的客戶端。MySQL客戶端主要有MySQL Workbench客戶端和命令行客戶端,其中Workbench客戶端為學(xué)習的重點,在后續(xù)章節(jié)中常常使用。任務(wù)二 MySQL客戶端使用二、任務(wù)分析MySQL Workbench客戶端是MySQL數(shù)據(jù)庫開發(fā)、管理和設(shè)計的集成工具,本任務(wù)主要介紹Workbench的登錄、查看MySQL服務(wù)器狀態(tài)、啟動和關(guān)閉服務(wù)器以及在Workbench中使用SQL命令。在任務(wù)拓展中主要講解命令行客戶端的使
12、用,命令行客戶端的使用也是MySQL數(shù)據(jù)庫的基本內(nèi)容。任務(wù)二 MySQL客戶端使用二、任務(wù)分析MySQL Workbench客戶端是MySQL數(shù)據(jù)庫開發(fā)、管理和設(shè)計的集成工具,本任務(wù)主要介紹Workbench的登錄、查看MySQL服務(wù)器狀態(tài)、啟動和關(guān)閉服務(wù)器以及在Workbench中使用SQL命令。在任務(wù)拓展中主要講解命令行客戶端的使用,命令行客戶端的使用也是MySQL數(shù)據(jù)庫的基本內(nèi)容。任務(wù)二 MySQL客戶端使用三、基礎(chǔ)知識(一)MySQL客戶端MySQL客戶端主要有兩個,一個是命令窗口客戶端,一個是MySQL Workbench(本書簡稱為Workbench)。雖然Workbench客戶端
13、在使用方便性上優(yōu)于命令窗口客戶端,但是命令窗口客戶端仍是MySQL數(shù)據(jù)庫的重要基礎(chǔ)知識,需要掌握其使用。本書主要以Workbench客戶端為主講解。任務(wù)二 MySQL客戶端使用MySQL Workbench為數(shù)據(jù)庫管理員、程序開發(fā)者和系統(tǒng)規(guī)劃師提供可視化的SQL開發(fā)、數(shù)據(jù)庫建模、以及數(shù)據(jù)庫管理功能。分為三個主要功能模塊:SQL Development、Data Modeling、Management等。Management中的功能主要有:查看服務(wù)器狀態(tài),包括連接數(shù)量、CPU使用率等;開啟關(guān)閉服務(wù)器實例;查看日志,包括存儲日志,錯誤日志、通知日志等、數(shù)據(jù)庫的導(dǎo)入導(dǎo)出和恢復(fù)功能。任務(wù)二 MySQL
14、客戶端使用(二)命令行啟動和關(guān)閉MySQL服務(wù)器1啟動可以從命令行手動啟動MySQL服務(wù)器,啟動控制臺窗口并輸入命令:C: C:Program FilesMySQLMySQL Server 5.6binmysqld注意:根據(jù)系統(tǒng)中MySQL安裝位置的不同,前面的例子中使用的路徑也不同。任務(wù)二 MySQL客戶端使用2關(guān)閉停止MySQL服務(wù)器的命令如下:C: C:Program FilesMySQLMySQL Server 5.6binmysqladmin -u root shutdown該命令調(diào)用MySQL管理工具mysqladmin連接服務(wù)器并告知它關(guān)閉服務(wù)。該命令使用MySQL數(shù)據(jù)庫的roo
15、t用戶連接數(shù)據(jù)庫,root用戶是MySQL權(quán)限系統(tǒng)中的默認管理賬戶。任務(wù)二 MySQL客戶端使用2退出成功地連接后,可以在mysql提示下輸入QUIT (或q)隨時退出:mysql QUIT任務(wù)二 MySQL客戶端使用(四)MySQL命令show databases:找出在服務(wù)器上當前存在什么數(shù)據(jù)庫use *:更換數(shù)據(jù)庫show tables:查看現(xiàn)在的數(shù)據(jù)庫中存在什么表;clear:明確當前輸入語句;exit:退出MySQL;help:顯示幫助信息;quit:退出MySQL;source:執(zhí)行一個SQL腳本文件;status:從服務(wù)器獲取MySQL的狀態(tài)信息;show variables:查
16、詢MySQL數(shù)據(jù)庫變量。任務(wù)二 MySQL客戶端使用(五)修改MySQL字符集“show variables like character%”set character_set_client = utf8;set character_set_connection = utf8;set character_set_database = utf8;set character_set_results = utf8;set character_set_server = utf8;小 結(jié)本章講解了MySQL數(shù)據(jù)庫管理系統(tǒng)軟件的安裝以及配置,詳細講解了MySQL Workbench客戶端的使用,包括:連接
17、數(shù)據(jù)庫、啟動關(guān)閉數(shù)據(jù)庫、查看服務(wù)器狀態(tài)、使用SQL語言查看數(shù)據(jù)庫實例、更換當前數(shù)據(jù)庫實例、查看數(shù)據(jù)庫實例中的表等。Workbench客戶端是使用MySQL數(shù)據(jù)庫的常用工具,是后續(xù)章節(jié)學(xué)習的基礎(chǔ),因此必須很好地掌握。本章還講解了命令行客戶端的使用,因為其使用不方便,本書采用較少。實驗一MySQL的安裝和操作實驗?zāi)康?了解MySQL數(shù)據(jù)庫下載和安裝2安裝最新版本MySQL數(shù)據(jù)庫軟件3掌握數(shù)據(jù)庫使用的簡單常用命令4熟悉Workbench的使用實驗一MySQL的安裝和操作實驗條件計算機(電腦)Windows 7操作系統(tǒng)MySQL5.6數(shù)據(jù)庫實驗一MySQL的安裝和操作2操作如下SQL語句。(1)sho
18、w database;(2)use mysql;(3)show tables;(4)select * from user;3在客戶端Workbench上,關(guān)閉和啟動數(shù)據(jù)庫。4使用客戶端Workbench查看MySQL數(shù)據(jù)庫服務(wù)器狀態(tài)。(四). 使用命令行客戶端,進行MySQL數(shù)據(jù)庫的基本操作。謝謝第二章 數(shù)據(jù)定義本章要點本章要點 1了解數(shù)據(jù)庫、數(shù)據(jù)表、索引和SQL語言的基本概念 2掌握數(shù)據(jù)庫和表定義的SQL語言 3熟悉索引創(chuàng)建和刪除的SQL語言 4掌握Workbench中數(shù)據(jù)庫、數(shù)據(jù)表和索引的創(chuàng)建引言MySQL數(shù)據(jù)庫中,數(shù)據(jù)庫對象的操作有兩種方式:交互式和命令式。其中交互式方式是使用Workb
19、ench進行操作,比如數(shù)據(jù)庫操作、表的操作、數(shù)據(jù)的操作和用戶管理等等都是如此,因為交互式操作一般不要基礎(chǔ)知識,只需要學(xué)習Workbench工具的使用即可,因此在任務(wù)實施過程中進行講解。命令式方式需要學(xué)生掌握SQL語法知識,雖然使用Workbench可以簡化知識,但是有些時候SQL語法是不可替代的,比如信息系統(tǒng)開發(fā)編寫程序時,必須編寫SQL語句,而不能使用Workbench,因此SQL語言以及Workbench工具都是學(xué)習過程中必須掌握的內(nèi)容。任務(wù)一 數(shù)據(jù)庫的操作基礎(chǔ)知識 (一)SQL語言1簡介 SQL,即StructuredQueryLanguage(即結(jié)構(gòu)化查詢語言),是關(guān)系數(shù)據(jù)庫的標準語言
20、,SQL是一個通用的、功能極強的關(guān)系數(shù)據(jù)庫語言。大多數(shù)數(shù)據(jù)庫均用SQL作為共同的數(shù)據(jù)存取語言和標準接口,使不同數(shù)據(jù)庫系統(tǒng)之間的互操作有了共同的基礎(chǔ)。SQL可以對數(shù)據(jù)庫進行任何的操作,比如:創(chuàng)建數(shù)據(jù)庫、數(shù)據(jù)表和用戶,添加和刪除數(shù)據(jù),編寫數(shù)據(jù)庫程序等。當前,幾乎所有的關(guān)系數(shù)據(jù)庫管理系統(tǒng)軟件都支持SQL,許多軟件廠商對SQL基本命令集還進行了不同程度的擴充和修改。2特點MySQL數(shù)據(jù)庫 SQL之所以能夠為用戶和業(yè)界接受,并成為國際標準,是因為它是一個綜合的、功能極強又簡潔易學(xué)的語言。SQL集數(shù)據(jù)查詢、數(shù)據(jù)操縱、數(shù)據(jù)定義和數(shù)據(jù)控制功能于一體,主要特點包括:(1)綜合統(tǒng)一SQL集數(shù)據(jù)定義語言DDL、數(shù)據(jù)
21、操縱語言DML、數(shù)據(jù)控制語言DCL的功能于一體,語言風格統(tǒng)一,可以獨立完成數(shù)據(jù)庫生命周期中的全部活動。(2)高度非過程化非關(guān)系數(shù)據(jù)模型的數(shù)據(jù)操縱語言是“面向過程”的語言,只要提出“做什么”,而無須指明“怎么做”。SQL的操作過程由系統(tǒng)自動完成。這不但大大減輕了用戶負擔,而且有利于提高數(shù)據(jù)獨立性。(3)面向集合的操作方式MySQL數(shù)據(jù)庫 非關(guān)系數(shù)據(jù)模型采用的是面向記錄的操作方式,操作對象是一條記錄。SQL采用集合操作方式,不僅操作對象、查找結(jié)果可以是元組的集合,而且一次插入、刪除、更新操作的對象也可以是元組的集合。(4)以同一種語法結(jié)構(gòu)提供多種使用方式 SQL既是獨立的語言,又是嵌入式語言。作為
22、獨立的語言,可以獨立地用于聯(lián)機交互的使用方式;作為嵌入式語言,SQL語句能夠嵌入到高級語言,供程序員設(shè)計程序時使用。兩種不同方式下的SQL語法結(jié)構(gòu)一致,提供了極大的靈活性與方便性。(5)語言簡潔,易學(xué)易用 SQL功能極強,但由于設(shè)計巧妙,語言十分簡潔,完成核心功能只用了9個動詞。(二)SQL語法概述MySQL數(shù)據(jù)庫 SQL輸入由一系列命令組成,用一個分號;結(jié)尾。注意:SQL語句結(jié)尾的分號為英文分號,中文分號則出錯。在SQL輸入里可以有注釋。1標識符和關(guān)鍵字 標識符和關(guān)鍵字是指SQL語言里有固定含義的單詞,根據(jù)使用它們的命令的不同,它們標識表、字段或者其它數(shù)據(jù)庫對象的名字。 SQL標識符和關(guān)鍵字
23、必須是以一個字母或下劃線開頭,并且只能包含字母、數(shù)字或者下劃線的字符串。 注意:標識符和關(guān)鍵字都是與大小寫無關(guān)的,但是關(guān)鍵字用大寫,而標識符名字等用小寫是一種好習慣。 數(shù)據(jù)庫、表、索引、列和別名是標識符,每類標識符的最大長度和允許的字符如表2-1所示。MySQL數(shù)據(jù)庫2注釋 注釋有兩種方式:雙劃線開頭的單行注釋;C風格的多行注釋。 -單行注釋 /*多行注釋 */ 注釋在進一步的語法分析之前被從輸入流刪除并有效地用空白代替。(三)數(shù)據(jù)定義語言MySQL數(shù)據(jù)庫 數(shù)據(jù)庫系統(tǒng)的基本對象有數(shù)據(jù)庫、表、視圖和索引等。SQL的數(shù)據(jù)定義功能包括定義數(shù)據(jù)庫、定義表、定義視圖和定義索引,如圖表2-2所示。 數(shù)據(jù)庫
24、對象數(shù)據(jù)庫、視圖、索引在標準SQL中,一般不提供修改操作,而是采用先將它們刪除,然后再創(chuàng)建的方式實現(xiàn)修改的方法。MySQL數(shù)據(jù)庫提供了數(shù)據(jù)庫、視圖和索引的直接修改。四 數(shù)據(jù)庫操作1創(chuàng)建數(shù)據(jù)庫 創(chuàng)建數(shù)據(jù)庫語法如下:MySQL數(shù)據(jù)庫 mysqlCREATE DATABASE chap02; 注意:在Unix下,數(shù)據(jù)庫名稱是區(qū)分大小寫的,這點不像SQL關(guān)鍵字,因此你必須總是以chap02訪問數(shù)據(jù)庫,而不能用Chap02、CHAP02或其它一些名稱。對表名也是這樣的。在Windows下,則不存在該限制,查詢中,可以使用不同的大小寫來引用數(shù)據(jù)庫和表,但是,作為好的習慣,推薦使用與數(shù)據(jù)庫和數(shù)據(jù)表創(chuàng)建時相同
25、的大小寫引用相關(guān)對象。 創(chuàng)建數(shù)據(jù)庫并不表示選定并使用它,你必須明確地操作。為了使chap02成為當前的數(shù)據(jù)庫,使用這個命令: mysqlUSE chap02; Database changed 數(shù)據(jù)庫只需要創(chuàng)建一次,但是必須在每次啟動MySQL會話時在使用前先選擇它。你可以根據(jù)上面的例子執(zhí)行一個USE語句來實現(xiàn)。MySQL數(shù)據(jù)庫2修改數(shù)據(jù)庫(1)修改表名 ALTER DATABASE數(shù)據(jù)庫名 DEFAULT CHARACTERSET編碼方式 DEFAULT COLLATE編碼方式_bin; ALTER DATABASE用于更改數(shù)據(jù)庫的全局特性。CHARACTERSET子句用于更改默認的數(shù)據(jù)庫字
26、符集。COLLATE子句用于更改默認的數(shù)據(jù)庫排序。3刪除數(shù)據(jù)庫 DROP DATABASE IF EXISTS 數(shù)據(jù)庫名 DROP DATABASE用于取消數(shù)據(jù)庫中的所用表格和取消數(shù)據(jù)庫。 注意:MySQL數(shù)據(jù)庫 (1)使用此語句時要非常小心 (2)IF EXISTS用于防止當數(shù)據(jù)庫不存在時發(fā)生錯誤。 (3)也可以使用DROP SCHEMA。MySQL數(shù)據(jù)庫基礎(chǔ)知識 (一)字段(列)類型 MySQL支持多種列類型:數(shù)值類型、日期/時間類型和字符串(字符)類型。1數(shù)值類型 MySQL支持所有標準SQL數(shù)值數(shù)據(jù)類型。這些類型包括嚴格數(shù)值數(shù) 據(jù)類型、近似數(shù)值數(shù)據(jù)類型。 MySQL整數(shù)類型包括:tin
27、yint、mediumint、int和bigint,每個整數(shù)類型的存儲大小和范圍如表2-3所示。MySQL數(shù)據(jù)庫任務(wù)二 表的操作 MySQL還支持選擇在該類型關(guān)鍵字后面的括號內(nèi)指定整數(shù)值的顯示寬度,例如 int(4)。 對于浮點列類型,在MySQL中單精度值使用4個字節(jié),雙精度值使用8個字節(jié)。 MySQL允許使用非標準語法: float(M,D)或 real(M,D)或 dobule(M,D)。這里,“(M,D)”表示該值一共顯示M位整數(shù),D表示小數(shù)位數(shù)。 decimal和numeric類型在MySQL中視為相同的類型。MySQL數(shù)據(jù)庫2日期和時間類型 表示日期和時間的類型主要有:dateti
28、me、date、timestamp、time和year。 MySQL解釋兩位年值使用以下規(guī)則: 70-99范圍的年值轉(zhuǎn)換為1970-1999。 00-69范圍的年值轉(zhuǎn)換為2000-2069。 datetime、date和timestamp類型是相關(guān)的。 datetime類型同時包含日期和時間信息,以YYYY-MM-DDHH:MM:SS格式檢索和顯示值,支持的范圍為1000-01-0100:00:00到9999-12-3123:59:59。 date類型只需要日期值而不需要時間部分,以YYYY-MM-DD格式檢索和顯示值,支持的范圍是1000-01-01到9999-12-31。MySQL數(shù)據(jù)庫
29、timestamp列類型的屬性不固定,取決于MySQL版本和服務(wù)器運行的SQL模式。 time類型以HH:MM:SS格式檢索和顯示值,值范圍可以從-838:59:59到838:59:59。 year類型是一個單字節(jié)類型用于表示年,以YYYY格式檢索和顯示year值,范圍是1901到2155。 注意: (1)如果試圖插入一個不合法的日期,MySQL將給出警告或錯誤。 (2)當MySQL遇到一個日期或時間類型的超出范圍或?qū)τ谠擃愋筒缓戏ǖ闹禃r,將該值轉(zhuǎn)換為該類的“零”值。3String類型 字符串類型指char、varchar、binary、varbinary、blob、text等。MySQL數(shù)據(jù)
30、庫(1)char和varchar類型 char和varchar類型類似。 char和varchar類型聲明的長度表示你想要保存的最大字符數(shù)。例如,char(30)可以占用30個字符。 char為定長字符串,長度可以為從0到255的任何值。當保存char值時,在它們的右邊填充空格以達到指定的長度。 varchar為變長字符串,長度可以指定為0到65,535之間的值,varchar的最大有效長度由保存的字符串的值和使用的字符集確定,整體最大長度是65,532字節(jié),varchar值保存時尾部不進行填充。(2)binary和varbinary類型 binary和varbinary類似于char和var
31、char,不同的是它們包含二進制字符串而不要非二進制字符串。MySQL數(shù)據(jù)庫 binary和varbinary允許的最大長度一樣,如同char和varchar,不同的是binary和varbinary的長度是字節(jié)長度而不是字符長度。 (3)blob和text類型 blob是一個二進制大對象,可以容納可變數(shù)量的數(shù)據(jù)。有4種blob類型:tinyblob、blob、mediumblob和longblob。它們只是可容納值的最大長度不同。 有4種text類型:tinytext、text、mediumtext和longtext。這些對應(yīng)4種blob類型,有相同的最大長度和存儲需求。MySQL數(shù)據(jù)庫(4
32、選擇正確的列類型 為了優(yōu)化存儲,在任何情況下均應(yīng)使用最精確的類型。例如,如果列的值的范圍為從1到99999,若使用整數(shù),則mediumint unsigned是最好的類型。在所有可以表示該列值的類型中,該類型使用的存儲最少。 使用雙精度操作對decimal值進行計算。如果準確度不是太重要或速度為最高優(yōu)先級,double類型即足夠了。為了達到高精度,可以轉(zhuǎn)換到保存在bigint中的定點類型。這樣可以用64位整數(shù)進行所有計算,根據(jù)需要將結(jié)果轉(zhuǎn)換回浮點值。(二)創(chuàng)建表 創(chuàng)建數(shù)據(jù)表語法基本格式如下: create table if not exists 表名 (列名 數(shù)據(jù)類型 列級完整性約束,MySQ
33、L數(shù)據(jù)庫 (列名 數(shù)據(jù)類型 列級完整性約束, 表級完整性約束); 注意: (1)必須擁有表create權(quán)限,才能執(zhí)行create語句。 (2)默認情況下,表被創(chuàng)建到當前的數(shù)據(jù)庫中。如果表已存在,或者如果沒有當前數(shù)據(jù)庫,或者如果數(shù)據(jù)庫不存在,則會出現(xiàn)錯誤。表名稱被指定為“數(shù)據(jù)庫名.表名”,以便在特定的數(shù)據(jù)庫中創(chuàng)建表。不論是否有當前數(shù)據(jù)庫,都可以通過這種方式創(chuàng)建表。 (3)如果表已存在,則使用關(guān)鍵詞if not exists可以防止發(fā)生錯誤。(三)修改表 alter table用于更改原有表的結(jié)構(gòu)。例如,您可以增加或刪減列,創(chuàng)建或取消索引,更改原有列的類型,或重新命名列或表。您還可以更改表的評注和
34、表的類型。MySQL數(shù)據(jù)庫 alter tableb表名 add 新列名數(shù)據(jù)類型完整性約束 drop 完整性約束 alter column 列名數(shù)據(jù)類型 允許進行的變更中,許多子句的語法與create table中的子句的語法相近。 可以在一個alter table語句里寫入多個add、alter、drop和change子句,中間用逗號分開。 示例2-1:添加一個新的timestamp列,名稱為d: alter table t2 add d timestamp; 示例2-2:在列d和列a中添加索引: alter table t2 addindex(d),addindex(a);MySQL數(shù)據(jù)庫
35、 (示例2-3:刪除列c: alter table t2 drop column c; 示例2-4:添加一個新的auto_increment整數(shù)列,名稱為c: alter table t2 add c intunsigned not null auto_increment, add primary key(c); rename table tbl_name to new_tbl_name ,tbl_name2 to new_tbl_name2.(四)刪除表 drop table if exists表名,表名; drop table用于刪除一個或多個表。您必須有每個表的drop權(quán)限。所有的表數(shù)據(jù)
36、和表定義會被刪除。 對于不存在的表,使用if exists用于防止錯誤發(fā)生。MySQL數(shù)據(jù)庫任務(wù)三 索引操作基礎(chǔ)知識 索引是數(shù)據(jù)庫中用來提高查詢性能的最常用工具。在MySQL數(shù)據(jù)庫中,所有字段類型都可以建立索引,對相關(guān)字段使用索引是提高select操作性能的常用方法。(一)索引類型 MySQL索引類型包括: 1普通索引 這是最基本的索引,它沒有任何限制,由key或index定義。 2唯一索引 唯一索引的索引列的值必須唯一,但允許有空值,由unique定義。 3主鍵索引 它是一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時創(chuàng)建主鍵索引,在第五章完整性中講解。 MySQL數(shù)據(jù)庫4組合索引
37、組合索引也稱作符合索引,是指在多列上創(chuàng)建的索引,不同于獨立的多個單列索引。MySQL數(shù)據(jù)庫從左到右使用組合索引中的字段列,一個查詢可以只使用組合索引的一部分,但是只能是左側(cè)部分,比如組合索引index(a,b,c),可以支持(a)、(a,b)和(a,b,c)進行查詢,但是不支持(a,c)或(b,c)進行查詢。(二)索引語法 索引可以在創(chuàng)建表時創(chuàng)建索引,也可以在創(chuàng)建表后通過修改表的方式創(chuàng)建索引,還可以直接創(chuàng)建索引。1創(chuàng)建表時創(chuàng)建索引 語法如下: create table 表名 (MySQL數(shù)據(jù)庫 字段名 數(shù)據(jù)類型, 字段名 數(shù)據(jù)類型, 字段名 數(shù)據(jù)類型, index | key | unique
38、 (列名) asc | desc );2修改表時創(chuàng)建索引 語法如下: alter table 表名 add index | key | unique 索引名(列名)asc | desc;3直接創(chuàng)建索引 create unique index 索引名MySQL數(shù)據(jù)庫 on 表名(字段名) asc | desc;4刪除索引 (1)直接刪除索引 刪除索引語法: drop index 索引名 on 表名(2)修改表時刪除索引 alter table 表名 drop index 索引名;(三)建立索引的時機 到這里我們已經(jīng)學(xué)會了建立索引,那么我們需要在什么情況下建立索引呢?一般來說,在where和joi
39、n中出現(xiàn)的列需要建立索引,但也MySQL數(shù)據(jù)庫不完全如此,因為MySQL只對,=,between,in,以及某些時候的like才會使用索引。(四)索引的不足之處 索引在提高查詢效率上作用很大,但過多使用索引也會帶來問題。 1雖然索引大大提高了查詢速度,同時卻會降低更新表的速度,因為更新表時,MySQL不僅要保存數(shù)據(jù),還要保存索引文件。 2建立索引會占用磁盤空間的索引文件。如果你在一個大表上創(chuàng)建了多種組合索引,索引文件會膨脹的很快。 索引只是提高效率的一個因素,如果你的MySQL有大數(shù)據(jù)量的表,就需要花時間研究建立最優(yōu)秀的索引,或優(yōu)化查詢語句。MySQL數(shù)據(jù)庫實驗二 數(shù)據(jù)定義實驗實驗?zāi)康?熟悉M
40、ySQL的SQL命令窗口和Workbench的使用。 掌握SQL的數(shù)據(jù)定義語言的使用;理解數(shù)據(jù)庫對象的概念。實驗條件 計算機(電腦) Windows 7操作系統(tǒng) MySQL5.6數(shù)據(jù)庫實驗內(nèi)容 1在MySQL命令窗口中創(chuàng)建chap2數(shù)據(jù)庫。 2在MySQL命令窗口中創(chuàng)建student表,該表的結(jié)構(gòu)描述如下。MySQL數(shù)據(jù)庫3在Workbench環(huán)境下,使用SQL語言定義course表,該表的結(jié)構(gòu)描述如下:MySQL數(shù)據(jù)庫 4在Workbench環(huán)境下,使用交互式方式定義sc表,該表的結(jié)構(gòu)描述如下: 5使用alter table語句修改student表為其增加一個birthday列,類型為dat
41、e。 6使用create index語句在student表的sage列上建立一個名為age_index的索引,要求索引為升序。MySQL數(shù)據(jù)庫 謝謝追求第三章 數(shù)據(jù)更新本章要點本章要點1了解數(shù)據(jù)操作的概念2掌握數(shù)據(jù)插入、修改和刪除操作的SQL語句3. 掌握SQL語句在Workbench中的操作 引言數(shù)據(jù)更新操作是維護數(shù)據(jù)庫中數(shù)據(jù)的操作,其包含三種具體操作:插入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù),對應(yīng)的SQL語句為insert、update、delete語句。本章內(nèi)容比較簡單,主要掌握insert、update、delete三條SQL語句。任務(wù)一 數(shù)據(jù)插入MySQL數(shù)據(jù)庫三、基礎(chǔ)知識 (一)數(shù)據(jù)插入SQL
42、語法 1一條記錄 insert into 表名(屬性列1, 屬性列2, ) values(值1, 值2, ); 注意: (1)定義了not null的屬性列必須賦值或有默認值,否則會報錯; (2)當into子句中屬性列包含了表的所有列,則可以省略不寫,此時值1,值2的順序應(yīng)該與表中屬性列的原始順序一致。 (3)值1,值2需要和屬性列1,屬性列2的類型兼容,比如如果屬性列1是整數(shù)類型,則值1應(yīng)該是整數(shù)或兼容類型。2、多條記錄insert into 表名(屬性列1, 屬性列2, )values(值1, 值2, ),(值1, 值2, ),(值1, 值2, );新記錄的屬性列1的值為值1,屬性列2的值
43、為值2,以此類推。into子句中沒有出現(xiàn)的屬性列,新記錄中在這些列上將取默認值,如果該列沒有默認值則取null值。MySQL數(shù)據(jù)庫3、插入查詢結(jié)果insert into 表名(屬性列1,屬性列2,)子查詢把子查詢結(jié)果插入到表中,關(guān)于查詢在第四章中講解。MySQL數(shù)據(jù)庫任務(wù)二 數(shù)據(jù)修改基礎(chǔ)知識一)數(shù)據(jù)修改語法 update 表名 set 列名1= 值1,列名2=值2, where 條件 update語法可以用新值更新原有表行中的各列。set子句指示修改哪些列和給予哪些值。where子句指定應(yīng)更新哪些行。 注意: (1)如果沒有where子句,則更新所有的行。 (2)如果列設(shè)置為其當前值,則不會更
44、新。(二)示例1修改學(xué)號為150312106的學(xué)生性別為女。MySQL數(shù)據(jù)庫 update student set gender=女 where sno=150312106;2修改機械學(xué)院的學(xué)生年齡為18。 update student set age=18 where depart=機械;3修改王美霞同學(xué)的年齡為22,院系為生物。 update student set age=22, depart=生物 where name= 王美霞;MySQL數(shù)據(jù)庫任務(wù)三 數(shù)據(jù)刪除基礎(chǔ)知識(一)數(shù)據(jù)插入SQL語法 刪除語句格式為: delete from 表名 where 條件 delete用于刪除數(shù)據(jù)表
45、中滿足由where給定的條件的行,,并返回被刪除的記錄的數(shù)目。如果delete語句包括一個order by子句,則各行按照子句中指定的順序進行刪除。 注意:如果沒有where子句,則所有的行都被刪除。 刪除所有行有一個更快的方法,即使用truncate table。 truncate table 表名MySQL數(shù)據(jù)庫(二)truncate和delete的區(qū)別 truncate table用于完全清空一個表。從邏輯上說,該語句與用于刪除所有行的delete語句等同,但是在有些情況下,兩者在使用上有所不同。 1使用truncate table重新設(shè)置auto increment計數(shù)器,設(shè)置時不考慮
46、是否有外鍵限制。2刪減操作會取消并重新創(chuàng)建表,這比一行一行的刪除行要快很多。3刪減操作不能保證對事務(wù)是安全的;在進行事務(wù)處理和表鎖定的過程中嘗試進行刪減,會發(fā)生錯誤。4被刪除的行的數(shù)目沒有被返回。 truncate table把表重新創(chuàng)建為一個空表,即使數(shù)據(jù)或索引文件已經(jīng)被破壞。MySQL數(shù)據(jù)庫(三)示例1按照主鍵刪除 刪除學(xué)號為150312101的學(xué)生記錄 delete from student where sno=150312101;2按照外鍵刪除 刪除計算機學(xué)院所有學(xué)生的信息 delete from student where depart=計算機;3其他條件的刪除MySQL數(shù)據(jù)庫 刪除
47、性別為女的學(xué)生 delete from student where gender=女;MySQL數(shù)據(jù)庫實驗三 數(shù)據(jù)更新實驗實驗?zāi)康?掌握數(shù)據(jù)更新的insert、update好delete三個SQL語句。 掌握在Workbench進行數(shù)據(jù)維護。 實驗條件 計算機(電腦) Windows 7操作系統(tǒng) MySQL5.6數(shù)據(jù)庫實驗內(nèi)容 1創(chuàng)建chap3數(shù)據(jù)庫。 2創(chuàng)建數(shù)據(jù)表student、course和sc,表的結(jié)構(gòu)描述如下。MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫3插入數(shù)據(jù) 使用insert語句將下面三個表中的數(shù)據(jù)插入到相應(yīng)的表中。 其中student插入如下數(shù)據(jù)。 Course插入如下數(shù)據(jù)
48、。Sc表插入如下數(shù)據(jù)。MySQL數(shù)據(jù)庫3修改數(shù)據(jù) (1)修改魏云鵬的年齡為19。 (2)所有年齡加上1歲。 (3)計算機的性別修改為女。4. 刪除數(shù)據(jù) 刪除學(xué)號為150312101的學(xué)生。 刪除計算機的學(xué)生。MySQL數(shù)據(jù)庫 謝謝追求第四章 數(shù)據(jù)查詢本章要點本章要點1. 了解數(shù)據(jù)查詢的相關(guān)概念:單表查詢、多表查詢、子查詢、集合查詢、系統(tǒng)函數(shù)和視圖。2. 掌握單表查詢、多表查詢的SQL語法,并會使用相關(guān)SQL在Workbench或命令客戶端中進行查詢。3. 了解子查詢和集合查詢語句。4. 了解系統(tǒng)函數(shù)的功能,熟悉常用的系統(tǒng)函數(shù),應(yīng)用函數(shù)進行有關(guān)信息查詢。5. 了解視圖的優(yōu)點,掌握視圖的創(chuàng)建和應(yīng)用
49、。6. 應(yīng)用SQL語句解決實際問題。引言數(shù)據(jù)庫查詢是數(shù)據(jù)庫的核心知識和技能,數(shù)據(jù)查詢可以簡單分為單表查詢、多表查詢和子查詢。單表查詢相對比較簡單,但是知識點較多,需要理解記憶;多表查詢和子查詢知識較難,需要加深理解;另外MySQL數(shù)據(jù)庫提供了豐富的系統(tǒng)函數(shù),而函數(shù)通常在查詢中使用;視圖是數(shù)據(jù)庫的重要內(nèi)容,使用廣泛,而視圖的核心就是一個查詢,因此把系統(tǒng)函數(shù)和視圖內(nèi)容合并到了本章。本章講解采用“簡易成績管理系統(tǒng)”數(shù)據(jù)庫,本數(shù)據(jù)庫只有三個表,分別為學(xué)生表、課程表和選課表,表的創(chuàng)建在任務(wù)一的任務(wù)實施里有詳細代碼。 任務(wù)一 單表查詢基礎(chǔ)知識 (一)單表查詢SQL一般格式 select all | dis
50、tinct 列表達式 , 列表達式 from 表名 where 條件表達式 group by 列名 having 條件表達式 order by 列名 asc | desc 含義:從from表名中找出滿足where條件表達式的記錄,按照group列分組,按照order列排序,顯示查詢結(jié)果數(shù)據(jù)。MySQL數(shù)據(jù)庫(二)列的選擇 1未引用表查詢 select可以用于未引用表的查詢。示例如下: 示例4-1: 輸入:select 1 + 1; 輸出:2 2. 選擇表中的若干列 (1)查詢指定列 查詢指定列在select后面指定想要檢索列并指定輸出順序,語法格式如下:MySQL數(shù)據(jù)庫 select 列名1,
51、 列名2, 列名3, from 表名 示例4-2:查詢?nèi)w學(xué)生的學(xué)號、姓名和性別 select sno,name,gender from student 示例4-3:查詢?nèi)w學(xué)生的姓名、學(xué)號 select name,sno from student(2)查詢?nèi)苛?將表中所有屬性列都選出來,方法有二:一是在select后面羅列所有列名,二是在select后面使用*代替所有列。 select * from 表名MySQL數(shù)據(jù)庫 或 select 列名, 列名, 列名 from 表名 示例4-4:查詢?nèi)w學(xué)生的詳細信息 select * from student(3)查詢經(jīng)過計算的列 select
52、 子句的列名可以是表中的屬性列,也可以是列的表達式 示例4-5:查看學(xué)生的出生年份。 假如當前年份為2015年,則學(xué)生的出生年份應(yīng)為2015-age。 select sno, name, 2015-age from student;MySQL數(shù)據(jù)庫(4)列別名 可以給列和列的表達式定義別名,別名可以是英文也可以是中文。 示例4-6:出生年份使用別名。 select sno, name, 2015-age 出生年份 from student。 (5)消除取值重復(fù)的行 要從查詢結(jié)果表中移除重復(fù)值,需要在Select后面插入關(guān)鍵字distinc。 示例4-7:查詢student表中學(xué)生屬于哪些班級。
53、 select distinct depart from student;MySQL數(shù)據(jù)庫(三)行的選擇 查詢當中可以指定想要查看的任意行,使用where子句指定選擇行的條件。where子句包含邏輯表達式,表達式為真的行將成為查詢結(jié)果表中的一行,反之則被忽略。1比較大小示例4-8:查詢計算機學(xué)院所有學(xué)生的姓名MySQL數(shù)據(jù)庫 select name from student where depart=計算機; 示例4-9:查詢年齡小于21的學(xué)生信息 select * from student where age2;MySQL數(shù)據(jù)庫 注意: (1)在select后邊除了聚集函數(shù)外,一般只能出現(xiàn)分
54、組列。 (2)對行進行選擇時,大多使用where子句,但是在對聚集函數(shù)選擇(限制)時,則使用having子句。(七)返回部分查詢結(jié)果 當查詢結(jié)果過多時,需要返回部分查詢結(jié)果,使用Limit實現(xiàn),語法如下: limit offset, rows 其中offset表示其實行號,從0開始,offset可以省略,默認為0;rows表示返回的行數(shù)。 示例4-20:查詢第1-3行學(xué)生的信息 Select * From studentMySQL數(shù)據(jù)庫 Limit 1,3;(八)復(fù)合條件查詢 當查詢限定多個查詢條件時,需要分析多個條件之間的邏輯關(guān)系。主要的關(guān)系有:and、or、not。And連接的兩個表達式同
55、時為真時,復(fù)合表達式為真,其余為假。Or連接的兩個表達式只要有一個為真,則復(fù)合表達式為真。Not將邏輯表達式的值進行翻轉(zhuǎn)。 示例4-21:查詢年齡大于20,性別為男的學(xué)生信息 Select * from student Where age20 and gender=男; 示例4-22:查詢計算機、生物學(xué)院的學(xué)生信息 Seledct * from student Where depart=計算機 or depart=生物;MySQL數(shù)據(jù)庫任務(wù)二 連接查詢基礎(chǔ)知識(一)連接查詢 連接查詢就是將多個表中的數(shù)據(jù)結(jié)合在一起進行查詢,而連接通常是 有條件的,連接條件格式: 表名1.列名1 表名2.列名2。
56、 其中比較運算符有:=、=、 (select age from student where name=王美霞)MySQL數(shù)據(jù)庫任務(wù)四 集合查詢基礎(chǔ)知識 多個查詢的結(jié)果可以進行集合操作,集合操作包括三種操作:并操作、交操作和差操作。這些操作都是兩個或多于兩個查詢結(jié)果的結(jié)合操作,概念和集合理論中的概念相同,只是把查詢結(jié)果看成集合,而查詢結(jié)果中的行看成元素即可。 union: 將多個查詢結(jié)果的行合并,作為單個結(jié)果集返回,并移除重的行。 union all: 將多個查詢結(jié)果的行合并,不論是否有重復(fù)的行。 except: 返回只在except左側(cè)存在但右側(cè)不存在的行的集合。 intersect: 返回兩
57、個查詢結(jié)果都存在的行。(一)并操作 并操作關(guān)鍵字為union,union用于把來自許多select語句的結(jié)果組合到一個結(jié)果集合中,語法如下:MySQL數(shù)據(jù)庫 select union all | distinct select union all | distinct select 列于每個select語句的對應(yīng)位置的被選擇的列應(yīng)該類型相同。 如果您對union不使用關(guān)鍵詞all,則所有返回的行都是唯一的,如同您已經(jīng)對整個結(jié)果集合使用了distinct。如果您指定了all,您會從所有用過的select語句中得到所有匹配的行。 示例4-32:查詢年齡大于20或性別為男的學(xué)生信息。 select
58、* from studentMySQL數(shù)據(jù)庫 where age20 union select * from student where gender=男;(二)交操作 交操作關(guān)鍵字為intersect,語法如下: select intersect all | distinct select . intersect all | distinct select MySQL數(shù)據(jù)庫 示例4-33:查詢年齡大于20并且性別為男的學(xué)生。 select * from student where age20 intersect select * from student where gender=男;(三)
59、差操作 差操作關(guān)鍵字為except,語法如下: select except all | distinctMySQL數(shù)據(jù)庫 select except all | distinct select 示例4-34:查詢大于20歲的不是男生的學(xué)生信息。 select * from student where age20 EXCEPT select * from student where gender=男;MySQL數(shù)據(jù)庫任務(wù)五 函數(shù)查詢基礎(chǔ)知識 當前主流數(shù)據(jù)庫都提供了豐富的系統(tǒng)函數(shù),MySQL數(shù)據(jù)庫也不例外,主要包括字符串函數(shù)、數(shù)學(xué)函數(shù)、日期函數(shù)等。限于篇幅,本書簡單介紹比較常用的函數(shù)。(一)字符串
60、函數(shù) 字符串函數(shù)如表4-3所示。MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫 MySQL數(shù)據(jù)庫(二)數(shù)值函數(shù) 數(shù)字函數(shù)如表4-4所示。MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫(三)日期和時間函數(shù) 日期和時間函數(shù)如表4-5所示。MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫MySQL數(shù)據(jù)庫 (四)其他函數(shù) 其他數(shù)字函數(shù)如表4-6所示。MySQL數(shù)據(jù)庫任務(wù)六 視圖基礎(chǔ)知識(一)視圖概念 視圖是從一個或幾個基本表(或視圖)導(dǎo)出的表。它與基本表不同,是一個虛表。數(shù)據(jù)庫中只存放視圖的定義,而不存放視圖對應(yīng)的數(shù)據(jù),這些數(shù)據(jù)仍存放在原來的基本表中。所以基本表中的數(shù)據(jù)發(fā)生變化,從視圖中查詢出的數(shù)據(jù)也就隨之改變了。 視圖一經(jīng)定義
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版外架班組勞務(wù)分包及協(xié)同作業(yè)合同3篇
- 二零二五年度出租車公司車輛新能源改造項目合同4篇
- 2025年度城市綜合體建設(shè)合同成本控制與進度管理2篇
- 事業(yè)單位續(xù)聘合同:2024年版規(guī)范文本一
- 二零二五年度城市環(huán)衛(wèi)一體化服務(wù)承包合同
- 2025年私人房產(chǎn)買賣合同違約賠償約定
- 二零二五年度便利店便利店便利店食品安全管理承包合同4篇
- 二零二五年度企業(yè)培訓(xùn)顧問培訓(xùn)需求分析合同
- 2025年度面粉生產(chǎn)廠與大型餐飲集團二零二五年度面粉訂購合同4篇
- 2025版委托檢測合同書-食品添加劑檢測服務(wù)2篇
- 山東鐵投集團招聘筆試沖刺題2025
- 真需求-打開商業(yè)世界的萬能鑰匙
- 2025年天津市政集團公司招聘筆試參考題庫含答案解析
- GB/T 44953-2024雷電災(zāi)害調(diào)查技術(shù)規(guī)范
- 2024-2025學(xué)年度第一學(xué)期三年級語文寒假作業(yè)第三天
- 2024年列車員技能競賽理論考試題庫500題(含答案)
- 心律失常介入治療
- 6S精益實戰(zhàn)手冊
- 展會場館保潔管理服務(wù)方案
- 監(jiān)理從業(yè)水平培訓(xùn)課件
- 廣東省惠州市實驗中學(xué)2025屆物理高二第一學(xué)期期末綜合測試試題含解析
評論
0/150
提交評論