版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
MySQL數(shù)據(jù)庫應(yīng)用1全套可編輯PPT課件
2項(xiàng)目一MySQL數(shù)據(jù)庫基礎(chǔ)知識項(xiàng)目二數(shù)據(jù)庫管理項(xiàng)目三數(shù)據(jù)表管理項(xiàng)目四數(shù)據(jù)表記錄檢索項(xiàng)目五數(shù)據(jù)表數(shù)據(jù)的插入、更新與刪除3項(xiàng)目九數(shù)據(jù)庫安全項(xiàng)目十?dāng)?shù)據(jù)庫備份與恢復(fù)
項(xiàng)目十一政務(wù)平臺數(shù)據(jù)庫設(shè)計(jì)項(xiàng)目六視圖與索引項(xiàng)目七存儲過程與存儲函數(shù)項(xiàng)目八觸發(fā)器的應(yīng)用項(xiàng)目一
MySQL數(shù)據(jù)庫基礎(chǔ)知識45任務(wù)1了解MySQL數(shù)據(jù)庫任務(wù)2下載與安裝MySQL社區(qū)版
任務(wù)3配置MySQL環(huán)境變量任務(wù)4啟停與登錄MySQL服務(wù)任務(wù)5使用MySQL6任務(wù)6卸載MySQL任務(wù)7使用MySQL可視化管理工具任務(wù)8在Linux環(huán)境下安裝MySQL數(shù)據(jù)庫了解MySQL數(shù)據(jù)庫任務(wù)171.?了解數(shù)據(jù)庫與數(shù)據(jù)庫管理系統(tǒng)的基本知識。2.?了解關(guān)系型數(shù)據(jù)庫管理系統(tǒng)的基本知識。3.?掌握MySQL數(shù)據(jù)庫的基本知識。89數(shù)據(jù)的重要性在一定程度上映射了數(shù)據(jù)庫的重要性,因?yàn)閿?shù)據(jù)領(lǐng)域中最重要的安全、存儲、關(guān)系等問題,都需要依靠數(shù)據(jù)庫來整合。數(shù)據(jù)庫是有效管理和處理數(shù)據(jù)的關(guān)鍵工具,適用于各種不同的應(yīng)用程序和領(lǐng)域,如企業(yè)數(shù)據(jù)庫、互聯(lián)網(wǎng)應(yīng)用程序和科學(xué)研究等。熟悉數(shù)據(jù)庫的基礎(chǔ)知識對于組織和企業(yè)的數(shù)據(jù)管理至關(guān)重要。本任務(wù)要求通過對數(shù)據(jù)庫的學(xué)習(xí),了解數(shù)據(jù)庫的基本知識。在了解數(shù)據(jù)庫的相關(guān)概念后,才能更好地理解和使用MySQL數(shù)據(jù)庫。10一、數(shù)據(jù)庫概述1.?數(shù)據(jù)結(jié)構(gòu)化數(shù)據(jù)庫中的數(shù)據(jù)以結(jié)構(gòu)化的方式組織,通常以表格(關(guān)系)的形式存儲。每張表格包含多行記錄,每行記錄由一組字段組成,用于描述數(shù)據(jù)的屬性。2.?數(shù)據(jù)共享多個(gè)用戶可以同時(shí)訪問數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)的共享和協(xié)作。不同用戶可以根據(jù)權(quán)限級別訪問和操作數(shù)據(jù)。3.?數(shù)據(jù)一致性與完整性數(shù)據(jù)庫提供多種機(jī)制來確保數(shù)據(jù)的一致性和完整性。例如,通過約束、主鍵、外鍵等規(guī)則的設(shè)定,可防止出現(xiàn)無效或不一致的數(shù)據(jù)。4.?數(shù)據(jù)安全性數(shù)據(jù)庫提供權(quán)限控制、數(shù)據(jù)加密、審計(jì)日志和訪問控制等機(jī)制,以保護(hù)數(shù)據(jù)的機(jī)密性、完整性和可用性,并保障用戶隱私。115.?高效查詢與索引數(shù)據(jù)庫支持索引和查詢優(yōu)化,以提高數(shù)據(jù)的檢索效率。6.?數(shù)據(jù)備份與恢復(fù)數(shù)據(jù)庫支持定期備份和故障恢復(fù),以防止數(shù)據(jù)丟失。7.?并發(fā)控制多個(gè)用戶可以同時(shí)訪問數(shù)據(jù)庫,數(shù)據(jù)庫的并發(fā)控制機(jī)制可以避免數(shù)據(jù)不一致和沖突。128.?數(shù)據(jù)擴(kuò)展性數(shù)據(jù)庫可以根據(jù)需要進(jìn)行擴(kuò)展,增加存儲容量和提升性能,以滿足不斷增長的數(shù)據(jù)需求。9.?故障容錯(cuò)性數(shù)據(jù)庫系統(tǒng)能在發(fā)生故障時(shí)自動(dòng)恢復(fù),以保障數(shù)據(jù)庫系統(tǒng)的可用性和穩(wěn)定性。10.?事務(wù)支持?jǐn)?shù)據(jù)庫支持事務(wù),以確保一系列操作要么全部成功執(zhí)行,要么完全不執(zhí)行,從而保證數(shù)據(jù)的一致性和完整性。13二、數(shù)據(jù)庫管理系統(tǒng)概述1.?數(shù)據(jù)庫管理系統(tǒng)的功能(1)數(shù)據(jù)定義DBMS提供了數(shù)據(jù)定義語言(datadefinitionlanguage,簡稱DDL),用于定義數(shù)據(jù)庫的邏輯結(jié)構(gòu),包括創(chuàng)建、修改及刪除數(shù)據(jù)庫、表、字段、索引、視圖等數(shù)據(jù)庫對象。(2)數(shù)據(jù)操縱DBMS提供了數(shù)據(jù)操縱語言(datamanipulationlanguage,簡稱DML),用于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行增加、刪除、修改、查詢等操作。14(3)數(shù)據(jù)組織、存儲與管理DBMS負(fù)責(zé)分類組織、存儲和管理數(shù)據(jù),確定數(shù)據(jù)的物理存儲結(jié)構(gòu)和存取方式,建立數(shù)據(jù)間的關(guān)聯(lián)關(guān)系,以優(yōu)化存儲空間利用率和數(shù)據(jù)存取效率。(4)數(shù)據(jù)庫運(yùn)行管理DBMS提供多用戶環(huán)境下的并發(fā)控制、安全性控制、完整性約束檢查、事務(wù)管理和日志管理功能,確保數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行和數(shù)據(jù)可靠性。(5)通信(數(shù)據(jù)共享與交互)DBMS提供網(wǎng)絡(luò)接入和數(shù)據(jù)交換功能,允許用戶通過網(wǎng)絡(luò)遠(yuǎn)程操作數(shù)據(jù)庫,支持多種網(wǎng)絡(luò)協(xié)議和標(biāo)準(zhǔn),實(shí)現(xiàn)不同系統(tǒng)間的數(shù)據(jù)互通和業(yè)務(wù)協(xié)同。151632.?數(shù)據(jù)庫管理系統(tǒng)的分類(1)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(relationaldatabasemanagementsystem,簡稱RDBMS)是一種基于關(guān)系模型的數(shù)據(jù)庫管理系統(tǒng),是目前最廣泛使用的數(shù)據(jù)庫類型,1)MySQL數(shù)據(jù)庫簡介。MySQL數(shù)據(jù)庫是一種開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),是目前最受歡迎和廣泛使用的開源數(shù)據(jù)庫系統(tǒng)之一,由瑞典MySQLAB公司開發(fā),后被SunMicrosystems收購,現(xiàn)由Oracle公司持有。其開源版本為MySQLCommunityEdition,商業(yè)版本為MySQLEnterpriseEdition。162)MySQL數(shù)據(jù)庫的特點(diǎn)①
開源免費(fèi)。MySQLCommunityEdition是開源免費(fèi)的,可以在許多不同的平臺上免費(fèi)使用和分發(fā)。②
跨平臺支持。MySQL可以運(yùn)行在多種操作系統(tǒng)上,包括Windows、Linux、macOS等。③
高性能。MySQL以其高效的性能而聞名,能處理大規(guī)模數(shù)據(jù)和高并發(fā)訪問。④
易于使用。MySQL使用標(biāo)準(zhǔn)的SQL進(jìn)行數(shù)據(jù)查詢和操作,對熟悉SQL的開發(fā)人員非常友好。17⑤
可擴(kuò)展。MySQL支持垂直和水平擴(kuò)展,以應(yīng)對不斷增長的數(shù)據(jù)量和并發(fā)工作負(fù)載。⑥
功能豐富。MySQL提供了豐富的功能,如索引、事務(wù)、觸發(fā)器、存儲過程、視圖等,支持復(fù)雜數(shù)據(jù)操作和管理。⑦
數(shù)據(jù)安全。MySQL提供權(quán)限控制和數(shù)據(jù)加密等機(jī)制,以保護(hù)數(shù)據(jù)的安全性和隱
私性。⑧
社區(qū)活躍。MySQL擁有活躍的開源社區(qū),定期發(fā)布更新和改進(jìn)內(nèi)容,得到全球開發(fā)者的支持和貢獻(xiàn)。18(2)非關(guān)系型數(shù)據(jù)庫管理系統(tǒng)非關(guān)系型數(shù)據(jù)庫管理系統(tǒng)通常被稱為NoSQL數(shù)據(jù)庫(NoSQL意為“NotOnlySQL”)。與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)不同,NoSQL數(shù)據(jù)庫不使用表格和SQL查詢來存儲及檢索數(shù)據(jù),而是采用不同的數(shù)據(jù)模型(如鍵值對、列族、文檔、圖模型等)和存儲方式。19下載與安裝MySQL社區(qū)版任務(wù)2201.?了解MySQL社區(qū)版的安裝過程。2.?了解MySQL社區(qū)版安裝失敗的原因。3.?掌握MySQL社區(qū)版的下載和安裝方法。4.?能檢測MySQL社區(qū)版是否安裝成功。2122成功下載并安裝MySQL社區(qū)版是使用MySQL數(shù)據(jù)庫的第一步,獲得安裝程序后,即可進(jìn)行安裝及后續(xù)操作。本任務(wù)要求通過MySQL官網(wǎng)下載MySQL社區(qū)版并完成安裝,然后查詢其版本號,查詢結(jié)果如圖所示。安裝成功提示23一、MySQL版本1.?MySQL社區(qū)版MySQL社區(qū)版是免費(fèi)開源的,廣泛用于開發(fā)和個(gè)人使用。它具備基礎(chǔ)的數(shù)據(jù)庫功能和性能,且有活躍的社區(qū)支持,適用于大多數(shù)中小型項(xiàng)目及開發(fā)場景。2.?MySQL企業(yè)版MySQL企業(yè)版為付費(fèi)版本,提供更多高級功能和企業(yè)級支持,包括MySQL企業(yè)監(jiān)視器、企業(yè)備份等工具,可增強(qiáng)性能、安全性和可用性。3.?MySQL集群版MySQL集群版提供高可用性和橫向擴(kuò)展性,適用于大規(guī)模數(shù)據(jù)和高并發(fā)場景,采用多節(jié)點(diǎn)復(fù)制技術(shù),確保數(shù)據(jù)同步和故障轉(zhuǎn)移。24二、MySQL安裝文件類型1.?軟件壓縮文件(.zip、.tar、.gz)軟件壓縮文件適用于多個(gè)操作系統(tǒng),用戶需手動(dòng)解壓縮并配置環(huán)境變量完成安裝。2.?安裝程序(.msi)對于Windows操作系統(tǒng),MySQL提供圖形化安裝程序(.msi)。用戶可通過向?qū)е鸩酵瓿砂惭b和配置。3.?磁盤映像文件(.dmg)對于macOS操作系統(tǒng),MySQL提供磁盤映像文件(.dmg),用戶掛載后通過圖形化界面安裝,支持拖放式安裝或運(yùn)行安裝向?qū)А?5三、MySQL對操作系統(tǒng)的兼容性1.?對Windows操作系統(tǒng)的兼容性MySQL完全兼容Windows操作系統(tǒng)。用戶可以在Windows上安裝和運(yùn)行MySQL社區(qū)版、企業(yè)版以及其他一些定制版本。MySQL的安裝程序通常是以可執(zhí)行的Windows安裝程序(.msi)形式提供的,方便了MySQL的安裝和配置。262.?對macOS操作系統(tǒng)的兼容性MySQL兼容macOS操作系統(tǒng)。用戶可以在macOS上安裝和運(yùn)行MySQL社區(qū)版、企業(yè)版以及其他一些定制版本。MySQL的磁盤映像文件(.dmg)是常用于macOS操作系統(tǒng)的安裝介質(zhì)。3.?對Linux操作系統(tǒng)的兼容性MySQL兼容主流Linux發(fā)行版,如Ubuntu、CentOS、Debian等,用戶均在其中安裝和運(yùn)行MySQL。MySQL提供了用于不同Linux發(fā)行版的二進(jìn)制文件和包管理工具(如APT、yum等),方便完成MySQL的安裝和配置。27四、MySQL數(shù)據(jù)庫安裝失敗的原因1.?權(quán)限問題在某些操作系統(tǒng)中,用戶可能因?yàn)闄?quán)限不足導(dǎo)致MySQL安裝失敗。用戶應(yīng)以管理員身份運(yùn)行MySQL安裝程序或使用特定的權(quán)限來安裝MySQL,也可以聯(lián)系系統(tǒng)管理員來解決權(quán)限問題。2.?文件損壞或下載問題通常情況下,若MySQL安裝文件在下載過程中損壞或不完整,會導(dǎo)致安裝失敗。此時(shí),用戶應(yīng)重新下載安裝文件,并確保下載的文件完整無損。283.?與其他軟件沖突某些已安裝的軟件可能與MySQL存在沖突,導(dǎo)致安裝失敗。在安裝MySQL之前,用戶應(yīng)確保沒有其他應(yīng)用程序在占用MySQL所需的端口或資源,如有占用則需暫時(shí)禁用或關(guān)閉與MySQL相關(guān)的其他軟件。4.?配置錯(cuò)誤安裝過程中的選項(xiàng)配置錯(cuò)誤可能導(dǎo)致安裝失敗。用戶在安裝過程中應(yīng)確保提供的配置選項(xiàng)是正確的,如安裝路徑、端口號、數(shù)據(jù)目錄等。29配置MySQL環(huán)境變量任務(wù)3301.?了解環(huán)境變量的概念和作用。2.?了解MySQL的安裝路徑和可執(zhí)行文件。3.?能配置與MySQL?8.0相關(guān)的環(huán)境變量。31一、下載并安裝Python當(dāng)系統(tǒng)需要運(yùn)行一個(gè)程序而未指定完整路徑時(shí),會先在當(dāng)前目錄查找,若未找到則會到Path環(huán)境變量中配置的路徑下搜索該程序。用戶通過設(shè)置環(huán)境變量,可讓系統(tǒng)更高效地定位和運(yùn)行程序。配置MySQL環(huán)境變量是為了在命令行或終端中快速調(diào)用MySQL命令行工具和相關(guān)管理工具,從而更輕松地管理MySQL數(shù)據(jù)庫。32本任務(wù)要求在計(jì)算機(jī)中成功配置與MySQL8.0相關(guān)的環(huán)境變量,需在命令提示符窗口中通過命令可以查看當(dāng)前MySQL版本,并驗(yàn)證能否成功登錄MySQL。配置成功效果如圖所示。33
配置成功效果一、環(huán)境變量的概念環(huán)境變量是操作系統(tǒng)中存儲的配置參數(shù),用于向系統(tǒng)和應(yīng)用程序傳遞運(yùn)行時(shí)所需的路徑、參數(shù)等信息。在配置MySQL相關(guān)環(huán)境變量時(shí),需將MySQL的可執(zhí)行文件路徑添加到操作系統(tǒng)的環(huán)境變量中,以便系統(tǒng)在命令行或應(yīng)用程序中定位MySQL。Path環(huán)境變量是操作系統(tǒng)用來設(shè)置可執(zhí)行文件搜索路徑的環(huán)境變量。將MySQL的bin目錄添加到Path中后,用戶可在任意命令行窗口直接調(diào)用MySQL命令,無須指定完整路徑。34二、系統(tǒng)環(huán)境變量和用戶環(huán)境變量操作系統(tǒng)支持兩種環(huán)境變量類型:系統(tǒng)環(huán)境變量和用戶環(huán)境變量。系統(tǒng)環(huán)境變量對當(dāng)前計(jì)算機(jī)的所有用戶有效,而用戶環(huán)境變量僅對當(dāng)前登錄用戶有效。根據(jù)使用場景,可以選擇將MySQL路徑添加到系統(tǒng)級或用戶級Path變量中。35
啟停與登錄MySQL服務(wù)任務(wù)4361.?了解MySQL服務(wù)啟動(dòng)和停止的目的及重要性。2.?了解MySQL服務(wù)的不同登錄方式。3.?能使用命令行或可視化管理工具啟動(dòng)和停止MySQL服務(wù)。4.?能登錄MySQL服務(wù)。37MySQL安裝完畢,需要啟動(dòng)服務(wù)器進(jìn)程,否則客戶端無法連接數(shù)據(jù)庫。在前面的安裝配置過程中,若已將MySQL安裝為Windows服務(wù),并且選擇了“StarttheMySQLServeratSystemStartup”選項(xiàng),則當(dāng)Windows系統(tǒng)啟動(dòng)、停止時(shí),MySQL也會自動(dòng)啟動(dòng)、停止。本任務(wù)要求通過命令提示符窗口和可視化管理工具手動(dòng)啟動(dòng)及停止MySQL服務(wù),并驗(yàn)證能否成功登錄MySQL。成功登錄MySQL服務(wù)提示如圖所示。38在打開Windows服務(wù)后找到“MySQL8.0”服務(wù),啟動(dòng)“MySQL8.0”服務(wù)后登錄MySQL。39
成功登錄MySQL服務(wù)提示一、MySQL服務(wù)器的概述MySQL服務(wù)器是運(yùn)行在后臺的數(shù)據(jù)庫管理系統(tǒng),負(fù)責(zé)處理數(shù)據(jù)存儲、查詢和管理等任務(wù)。啟動(dòng)MySQL服務(wù)意味著啟動(dòng)服務(wù)器進(jìn)程,使其處于運(yùn)行狀態(tài),以接收客戶端請求;停止MySQL服務(wù)則是終止服務(wù)器進(jìn)程,以關(guān)閉數(shù)據(jù)庫服務(wù)。40二、MySQL服務(wù)的啟停1.?使用命令行啟停在命令提示符窗口中,以管理員身份使用命令可以啟動(dòng)MySQL服務(wù),此命令會啟動(dòng)MySQL服務(wù)器進(jìn)程并將其保持在后臺運(yùn)行。用戶也可以通過命令停止MySQL服務(wù)。啟動(dòng)和停止MySQL服務(wù)命令如下。412.?使用Windows服務(wù)啟停MySQL服務(wù)的啟??梢酝ㄟ^Windows服務(wù)管理器來實(shí)現(xiàn)。在Windows操作系統(tǒng)中,用戶可以通過在任務(wù)欄上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“任務(wù)管理器”選項(xiàng),切換到“服務(wù)”選項(xiàng)卡,或者使用Win+R組合快捷鍵調(diào)出“運(yùn)行”對話框,輸入“services.msc”打開服務(wù)管理器,在服務(wù)列表中找到MySQL80服務(wù),在該服務(wù)上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“開始”或“停止”選項(xiàng),即可完成服務(wù)的啟停。42三、MySQL服務(wù)的登錄1.?使用命令行登錄使用命令行工具如MySQL終端或命令提示符窗口,可以通過命令登錄MySQL服務(wù)。此命令會提示用戶輸入密碼,在輸入正確的密碼后將成功登錄MySQL服務(wù)。登錄MySQL服務(wù)命令如下。432.?使用可視化管理工具登錄在可視化管理工具中,用戶可以通過填寫連接參數(shù)來登錄MySQL服務(wù)。在成功登錄后,用戶可以直接在可視化管理工具中進(jìn)行數(shù)據(jù)庫管理和操作。44使用MySQL任務(wù)5451.?了解MySQL的編碼。2.?了解MySQL的編碼設(shè)置的方法。3.?能使用?MySQL。46完成所有配置和啟動(dòng)步驟后,可以正式開始學(xué)習(xí)并使用MySQL。了解MySQL的字符集編碼知識,掌握MySQL的基礎(chǔ)操作,能對數(shù)據(jù)庫進(jìn)行簡單管理和維護(hù),如創(chuàng)建、修改、刪除數(shù)據(jù)庫等。本任務(wù)要求使用SQL語句創(chuàng)建一個(gè)數(shù)據(jù)庫,并切換至該數(shù)據(jù)庫進(jìn)行操作,具體效果如圖所示。47創(chuàng)建和使用數(shù)據(jù)庫一、創(chuàng)建和使用數(shù)據(jù)庫的SQL語句在登錄MySQL客戶端后,可以使用以下SQL語句來查看MySQL服務(wù)器中的所有數(shù)據(jù)庫。在MySQL客戶端中,可以使用以下SQL語句創(chuàng)建和使用數(shù)據(jù)庫。48二、MySQL的編碼設(shè)置1.?字符集和編碼在字符集是一組字符的集合,而編碼是將字符集中的字符轉(zhuǎn)換為二進(jìn)制代碼的規(guī)則。MySQL支持多種字符集,如UTF8、Latin1、GBK等,每種字符集對應(yīng)不同的編碼規(guī)則。492.?創(chuàng)建數(shù)據(jù)庫和表時(shí)的字符集設(shè)置在創(chuàng)建數(shù)據(jù)庫和表時(shí),可以顯式指定字符集,使用SQL語句如下。503.?MySQL的默認(rèn)字符集和排序規(guī)則(1)字符集定義了可存儲的字符范圍,排序規(guī)則定義了字符的比較和排序方式。(2)在創(chuàng)建數(shù)據(jù)庫和表時(shí),如果未指定字符集和排序規(guī)則,則會使用全局默認(rèn)值。(3)查看MySQL的默認(rèn)字符集和排序規(guī)則可以執(zhí)行如下SQL語句。514.?設(shè)置字符集的重要性和注意事項(xiàng)(1)正確設(shè)置字符集可以避免數(shù)據(jù)存儲和檢索時(shí)出現(xiàn)亂碼,確保數(shù)據(jù)完整性。(2)在處理多語言數(shù)據(jù)時(shí),建議使用utf8mb4字符集。(3)在設(shè)計(jì)數(shù)據(jù)庫架構(gòu)時(shí),要考慮到數(shù)據(jù)的語言和特殊字符的需求,選擇合適的字符集和排序規(guī)則。52卸載?MySQL任務(wù)6531.?了解MySQL的卸載流程和注意事項(xiàng)。2.?了解MySQL的卸載風(fēng)險(xiǎn)和可能出現(xiàn)的問題。3.?能使用MySQL特定命令或工具卸載MySQL。54隨著軟件的更新?lián)Q代,MySQL新版本通常具備更多功能,一般情況下,如需更換MySQL版本,建議先卸載當(dāng)前版本再安裝新版本。在卸載過程中,若殘留文件或配置等,可能造成新舊版本沖突,因此,需熟悉MySQL的卸載流程。本任務(wù)要求按照MySQL卸載流程,卸載MySQL服務(wù)。停止MySQL服務(wù),卸載MySQL軟件,刪除MySQL配置文件和殘余文件,清理注冊表(僅適用于Windows操作系統(tǒng)),并驗(yàn)證卸載結(jié)果。55卸載MySQL的流程包括停止MySQL服務(wù)、卸載MySQL軟件(使用包管理工具或官方卸載工具)、刪除配置文件和數(shù)據(jù)目錄、刪除MySQL相關(guān)環(huán)境變量以及搜索并刪除所有殘留文件或文件夾。在卸載MySQL之前,強(qiáng)烈建議進(jìn)行數(shù)據(jù)備份,以防數(shù)據(jù)丟失??梢允褂肕ySQL的備份工具(如mysqldump)進(jìn)行數(shù)據(jù)庫備份,確保數(shù)據(jù)可以在MySQL重新安裝后恢復(fù)。56根據(jù)MySQL的安裝方式,可以使用不同的卸載程序和命令。例如,在Windows操作系統(tǒng)中,可以使用官方卸載工具或者通過控制面板中的“程序和功能”來卸載MySQL。在Linux操作系統(tǒng)中,可以使用包管理工具(如APT、yum或Zypper)來卸載MySQL軟件包。卸載MySQL程序后,需要根據(jù)MySQL的安裝目錄,刪除MySQL的安裝目錄、配置文件、數(shù)據(jù)目錄、日志文件等。同時(shí),還需要?jiǎng)h除MySQL創(chuàng)建的數(shù)據(jù)庫文件和其他殘余文件,以確保在卸載過程中將所有相關(guān)文件和文件夾刪除,以免占用磁盤空間。57在卸載MySQL后,需要清除系統(tǒng)中可能存在的與MySQL相關(guān)的環(huán)境變量。這些環(huán)境變量可能會干擾后續(xù)安裝或使用其他數(shù)據(jù)庫軟件。在Windows操作系統(tǒng)中,MySQL可能會在注冊表中留下一些相關(guān)的條目??梢允褂米员砭庉嬈鱽聿檎液蛣h除與MySQL相關(guān)的注冊表項(xiàng),以確保從Windows操作系統(tǒng)中完全卸載MySQL程序。58使用MySQL可視化管理工具任務(wù)7591.了解常見的?MySQL可視化管理工具。2.了解?MySQL可視化管理工具的作用。3.能使用?MySQL可視化管理工具Navicat。60MySQL可視化管理工具通過直觀的圖形界面簡化數(shù)據(jù)庫操作,無須頻繁輸入代碼。目前流行的MySQL可視化管理工具有Navicat、MySQLWorkbench等。對于初學(xué)者來說,Navicat因其易學(xué)易用成為優(yōu)選,有利于快速掌握MySQL數(shù)據(jù)庫。61本任務(wù)要求在下載Navicat后成功安裝Navicat,啟動(dòng)Navicat,建立并連接本地MySQL服務(wù)(localhost),如圖所示。62使用Navicat管理數(shù)據(jù)庫一、MySQL?WorkbenchMySQL官方提供的可視化管理工具M(jìn)ySQLWorkbench完全支持MySQL5.0及以上版本。MySQLWorkbench可分為社區(qū)版和商業(yè)版,社區(qū)版是完全免費(fèi)的,而商業(yè)版則是按年收費(fèi)的。該工具可以在MySQL官網(wǎng)中下載(下載地址為/downloads/workbench/),如圖所示。6364下載MySQL?Workbench?二、NavicatNavicat是一款強(qiáng)大的數(shù)據(jù)庫管理工具,支持多種數(shù)據(jù)庫管理系統(tǒng),包括MySQL、Oracle、SQLServer、PostgreSQL等。它提供了直觀的圖形用戶界面,使用戶能輕松管理數(shù)據(jù)庫,包括創(chuàng)建、編輯、刪除各種對象如表、索引、視圖等。Navicat還可以編寫SQL語句進(jìn)行數(shù)據(jù)查詢,導(dǎo)入和導(dǎo)出數(shù)據(jù),進(jìn)行數(shù)據(jù)備份和恢復(fù)等操作,對于新手來說易學(xué)易用。該工具可以在Navicat官網(wǎng)中下載(下載地址為/),如圖所示。6566下載Navicat?三、SQLyogSQLyog是Webyog公司推出的一款簡潔高效、功能強(qiáng)大的MySQL數(shù)據(jù)庫可視化管理工具,是基于C++語言開發(fā)的,提供輕量級數(shù)據(jù)庫管理。這款工具可在Webyog官網(wǎng)下載,下載地址為/,如圖所示。67下載SQLyog四、DBeaverDBeaver是一個(gè)通用的數(shù)據(jù)庫管理工具和SQL客戶端,支持所有流行的數(shù)據(jù)庫,如MySQL、PostgreSQL、SQLite、Oracle等數(shù)十種數(shù)據(jù)庫,適合多數(shù)據(jù)庫管理場景。DBeaver可以在DBeaver官網(wǎng)下載,下載地址為https://dbeaver.io/download,如圖所示。68下載DBeaver在Linux環(huán)境下安裝MySQL數(shù)據(jù)庫任務(wù)8691.?了解MySQL在Linux操作系統(tǒng)與Windows操作系統(tǒng)中的區(qū)別。2.?了解在Linux環(huán)境下安裝MySQL數(shù)據(jù)庫失敗的原因。3.?能在Linux環(huán)境下下載和安裝MySQL數(shù)據(jù)庫。4.?能在Linux環(huán)境下檢測MySQL數(shù)據(jù)庫是否安裝成功。70為滿足廣大用戶的需求,MySQL社區(qū)版也兼容了Linux操作系統(tǒng)。Linux操作系統(tǒng)作為一個(gè)開源的操作系統(tǒng),與Windows操作系統(tǒng)相比具有自己的優(yōu)點(diǎn)。本任務(wù)要求通過各種命令在CentOS7操作系統(tǒng)下進(jìn)行MySQL安裝操作,安裝完成后能正常登錄MySQL即表示安裝成功,效果如圖所示。7172
登錄MySQL并查看數(shù)據(jù)庫一、MySQL在Linux操作系統(tǒng)與Windows操作系統(tǒng)中的區(qū)別MySQL在Windows操作系統(tǒng)和Linux操作系統(tǒng)中的區(qū)別主要在于安裝方式、配置管理、性能表現(xiàn)等方面。此外,Linux操作系統(tǒng)對文件和命令大小寫敏感,而Windows操作系統(tǒng)則不區(qū)分大小寫。在使用MySQL時(shí),需要根據(jù)具體情況選擇合適的操作系統(tǒng),以便更好地發(fā)揮MySQL的性能。73二、Linux操作系統(tǒng)下的常用工具1.?yum工具yum也被稱為包管理器,主要用來解決下載、依賴關(guān)系、安裝、卸載這4種問題。Linux操作系統(tǒng)下載軟件的方式有三種:源碼安裝包、RPM安裝包、yum安裝包。在Linux操作系統(tǒng)中有一個(gè)yum軟件服務(wù)器,上面有Linux需要的各種軟件包,可以使用yum命令在該軟件服務(wù)器下載所需要的軟件,然后在本地進(jìn)行安裝。綜上所述,yum是一個(gè)客戶端軟件,用來幫助用戶在遠(yuǎn)端服務(wù)器上下載對應(yīng)的軟件包,并解決用戶在本地計(jì)算機(jī)上的安裝問題。742.?Wget工具Wget是用于網(wǎng)絡(luò)下載的命令行工具,支持HTTP、HTTPS以及FTP協(xié)議,適合批量下載或在無圖形界面環(huán)境中使用。在本任務(wù)中,通過使用Wget工具的相關(guān)命令可以下載MySQL的RPM安裝包。75三、在Linux環(huán)境下MySQL安裝失敗的原因1.?yum源權(quán)限或配置問題在使用yum工具下載MySQL時(shí),如果yum源列表中不包含對應(yīng)版本的MySQL選項(xiàng),則會安裝失敗。這時(shí)需要使用如下命令安裝MySQL的yum安裝包。添加權(quán)限后使用如下命令再次查看yum源列表。762.?密鑰驗(yàn)證失?。ü€尚未安裝)使用如下代碼,先檢查包的簽名。導(dǎo)入MySQLpublickey放入RPM密鑰環(huán)中,首先獲取密鑰,然后使用如下命令導(dǎo)入密鑰。773.?密碼錯(cuò)誤問題在Linux環(huán)境下使用yum安裝MySQL數(shù)據(jù)庫會初始化root用戶的密碼,初始化密碼存儲在/var/log/mysqld.log文件中??梢允褂萌缦旅瞰@取密碼。78項(xiàng)目二數(shù)據(jù)庫管理
7980任務(wù)1創(chuàng)建與使用數(shù)據(jù)庫任務(wù)2修改與刪除數(shù)據(jù)庫創(chuàng)建與使用數(shù)據(jù)庫
任務(wù)1811.?了解?SQL?的基本知識。2.?了解運(yùn)算符的基本知識。3.?掌握數(shù)據(jù)庫創(chuàng)建操作。4.?能查看數(shù)據(jù)庫信息。8283創(chuàng)建與使用數(shù)據(jù)庫是管理數(shù)據(jù)庫的關(guān)鍵。不同的數(shù)據(jù)庫可以存放不同類型的數(shù)據(jù),它們可以有效地組織、存儲、檢索和管理數(shù)據(jù),提高數(shù)據(jù)訪問、分析和應(yīng)用開發(fā)的效率。本任務(wù)要求使用Navicat,創(chuàng)建數(shù)據(jù)庫“schoolsys”并修改數(shù)據(jù)庫“schoolsys”的字符集格式,效果如圖所示。
修改數(shù)據(jù)庫“schoolsys”的字符集84一、SQL1.?SQL的概念結(jié)構(gòu)化查詢語言(structuredquerylanguage,簡稱SQL)是一種用于管理關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)化查詢語言。它具有一系列的規(guī)則和規(guī)范,用于定義SQL語句的結(jié)構(gòu)和語法,以確保數(shù)據(jù)庫操作的一致性和準(zhǔn)確性。2.?SQL的分類(1)數(shù)據(jù)查詢語言數(shù)據(jù)查詢語言(dataquerylanguage,簡稱DQL)用于從數(shù)據(jù)庫中檢索數(shù)據(jù)。最常用的DQL語句是SELECT,它允許用戶指定要查詢的列、表和篩選條件,以獲取滿足條件的數(shù)據(jù)。(2)數(shù)據(jù)操作語言數(shù)據(jù)操作語言(datamanipulationlanguage,簡稱DML)用于對數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作,包括插入、更新和刪除數(shù)據(jù)。常見的DML語句有INSERT語句、UPDATE語句和DELETE語句,分別用于插入新數(shù)據(jù)、更新現(xiàn)有數(shù)據(jù)和刪除數(shù)據(jù)。85(3)數(shù)據(jù)定義語言數(shù)據(jù)定義語言(datadefinitionlanguage,簡稱DDL)用于定義數(shù)據(jù)庫的結(jié)構(gòu)和模式,包括創(chuàng)建、修改和刪除表格、視圖、索引及其他數(shù)據(jù)對象。常見的DDL語句有CREATE語句、ALTER語句和DROP語句,分別用于創(chuàng)建、修改和刪除數(shù)據(jù)對象。(4)數(shù)據(jù)控制語言數(shù)據(jù)控制語言(datacontrollanguage,簡稱DCL)用于授權(quán)和進(jìn)行權(quán)限管理,控制用戶對數(shù)據(jù)對象的訪問權(quán)限和操作權(quán)限。常見的DCL語句有GRANT語句和REVOKE語句,分別用于授予和撤銷用戶的權(quán)限。86(5)事務(wù)控制語言事務(wù)控制語言(transactioncontrollanguage,簡稱TCL)用于管理數(shù)據(jù)庫的事務(wù),確保事務(wù)的原子性、一致性、隔離性和持久性。常見的TCL語句有COMMIT語句、ROLLBACK語句和SAVEPOINT語句,分別用于提交事務(wù)、回滾事務(wù)和設(shè)置保存點(diǎn)。873.?SQL的書寫標(biāo)準(zhǔn)(1)關(guān)鍵字和函數(shù)名SQL不區(qū)分大小寫,但一般約定關(guān)鍵字使用大寫英文字母,表名、列名、變量名等標(biāo)識符使用小寫英文字母。(2)縮進(jìn)和格式化使用合適的縮進(jìn)和格式化來分隔不同的SQL語句部分,使其易于閱讀。對于復(fù)雜的查詢,使用換行符和縮進(jìn)來清晰地分隔不同的子句。88(3)表名和列名表名和列名應(yīng)具有描述性,能清楚地反映其所存儲的數(shù)據(jù)。避免使用含糊或縮寫的名稱,可使用下畫線或駝峰命名法來命名標(biāo)識符。(4)別名對于表名、列名、計(jì)算字段等標(biāo)識符,使用有意義的別名可以使查詢結(jié)果更易讀,并且在涉及多個(gè)表的查詢語句中,別名有助于簡化語句。(5)命名約定使用一致的命名約定,可以使代碼更易于維護(hù)。89(6)保證安全性在編寫SQL查詢時(shí),要注意數(shù)據(jù)的安全性,避免直接將用戶輸入的數(shù)據(jù)拼接到查詢中,而是使用參數(shù)化查詢或轉(zhuǎn)義輸入數(shù)據(jù)。(7)注釋使用注釋來備注復(fù)雜的查詢、特殊處理或與業(yè)務(wù)邏輯相關(guān)的信息。注釋應(yīng)明確、簡潔,并保持與代碼同步。(8)避免使用通配符“*”盡量避免使用語句“SELECT*”,而應(yīng)明確列出需要查詢的字段。這樣可以確保只獲取所需的數(shù)據(jù),減少查詢的開銷。90二、運(yùn)算符及運(yùn)算符的優(yōu)先級1.?算術(shù)運(yùn)算符算術(shù)運(yùn)算符用于執(zhí)行基本的數(shù)學(xué)運(yùn)算,如加法“+”、減法“-”、乘法“*”、除法“/”和求余“%”等。2.?比較運(yùn)算符比較運(yùn)算符用于比較兩個(gè)值之間的關(guān)系,返回布爾值(True或False)。913.?邏輯運(yùn)算符邏輯運(yùn)算符用于處理邏輯表達(dá)式,操作布爾值并返回布爾結(jié)果。常見的邏輯運(yùn)算符有與“and”、或“or”和非“not”。4.?位運(yùn)算符位運(yùn)算符用于對二進(jìn)制數(shù)據(jù)的位進(jìn)行操作。常見的位運(yùn)算符包括按位與“&”、按位或“|”、按位異或“^”和按位取反“~”。92三、查看數(shù)據(jù)庫的創(chuàng)建信息語句創(chuàng)建完數(shù)據(jù)庫后,可以使用以下語句來查看創(chuàng)建數(shù)據(jù)庫的具體信息,其語法格式如下。93四、修改數(shù)據(jù)庫信息的語句創(chuàng)建完數(shù)據(jù)庫后,可以使用以下語句修改數(shù)據(jù)庫的信息,其語法格式如下。94修改與刪除數(shù)據(jù)庫任務(wù)2951.?能修改數(shù)據(jù)庫信息。2.?能刪除數(shù)據(jù)庫。9697修改與刪除數(shù)據(jù)庫是使用數(shù)據(jù)庫中較常見的操作。不同的數(shù)據(jù)庫可以在不同的計(jì)算機(jī)之間通過修改和刪除的方式轉(zhuǎn)移,以提高數(shù)據(jù)庫數(shù)據(jù)的使用靈活性。本任務(wù)要求使用Navicat修改數(shù)據(jù)庫“schoolsys”后刪除數(shù)據(jù)庫“schoolsys”,如圖所示。
刪除數(shù)據(jù)庫成功981.?修改數(shù)據(jù)庫信息在新建頁中寫入修改數(shù)據(jù)庫“schoolsys”字符集格式的SQL語句如下。單擊“運(yùn)行”按鈕,在“摘要”選項(xiàng)卡中執(zhí)行結(jié)果顯示為“OK”,即修改數(shù)據(jù)庫成功,執(zhí)行效果如上圖所示。2.?刪除數(shù)據(jù)庫先查看當(dāng)前所有的數(shù)據(jù)庫,查看當(dāng)前所有數(shù)據(jù)庫的SQL語句如下。單擊“運(yùn)行”按鈕,在“結(jié)果1”選項(xiàng)卡中顯示運(yùn)行結(jié)果,執(zhí)行效果如圖所示。99查看所有數(shù)據(jù)庫刪除指定的數(shù)據(jù)庫“schoolsys”的SQL語句如下。單擊“運(yùn)行”按鈕,在“摘要”選項(xiàng)卡中運(yùn)行結(jié)果顯示“OK”,即成功刪除數(shù)據(jù)庫,執(zhí)行效果如圖所示。100
刪除數(shù)據(jù)庫成功項(xiàng)目三數(shù)據(jù)表管理101102任務(wù)1設(shè)計(jì)并創(chuàng)建數(shù)據(jù)表任務(wù)2修改數(shù)據(jù)表任務(wù)3刪除數(shù)據(jù)表設(shè)計(jì)并創(chuàng)建數(shù)據(jù)表
任務(wù)11031.?了解常見的MySQL數(shù)據(jù)類型。2.?了解約束的概念。3.?掌握常見的約束。4.?掌握創(chuàng)建數(shù)據(jù)表的語句。5.?能為字段選擇合適的約束和數(shù)據(jù)類型。104數(shù)據(jù)表的合理性與系統(tǒng)架構(gòu)的嚴(yán)謹(jǐn)性緊密關(guān)聯(lián)。通過合理設(shè)計(jì)和創(chuàng)建字段、設(shè)置數(shù)據(jù)類型等,實(shí)現(xiàn)密碼安全、用戶管理、訪問控制、審計(jì)和性能優(yōu)化,以滿足數(shù)據(jù)安全和應(yīng)用需求。本任務(wù)要求設(shè)計(jì)合適的用戶登錄表“tb_account”,并使用Navicat創(chuàng)建用戶登錄表,如圖所示。105成功創(chuàng)建用戶登錄表106一、MySQL中的數(shù)據(jù)類型1.?整數(shù)類型整數(shù)類型(如INT、BIGINT、SMALLINT、TINYINT等)用于存儲整數(shù)值,可以指定有無符號和不同的取值范圍,其詳細(xì)信息可見下表。107
整數(shù)類型108
整數(shù)類型2.?浮點(diǎn)類型和定點(diǎn)類型(1)浮點(diǎn)類型(FLOAT、DOUBLE)浮點(diǎn)類型用于存儲浮點(diǎn)數(shù)值,可分為單精度浮點(diǎn)型和雙精度浮點(diǎn)型。1)單精度浮點(diǎn)型(FLOAT)。單精度浮點(diǎn)型數(shù)據(jù)使用32位二進(jìn)制數(shù)(4字節(jié))來存儲,分為符號位、指數(shù)位和尾數(shù)位,能表示6~9位有效數(shù)字,范圍和精度相對較低,適用于對精度要求不是特別高的計(jì)算場景,如一般科學(xué)計(jì)算、圖形渲染等。1092)雙精度浮點(diǎn)型(DOUBLE)。雙精度浮點(diǎn)型數(shù)據(jù)使用64位二進(jìn)制數(shù)(8字節(jié))來存儲,同樣分為符號位、指數(shù)位和尾數(shù)位,能表示15~17位有效數(shù)字,提供更高的精度和更大的數(shù)值范圍,適用于對精度要求較高的計(jì)算場景,如金融計(jì)算、科學(xué)計(jì)算和工程領(lǐng)域等。110(2)定點(diǎn)類型(DECIMAL)定點(diǎn)類型主要用于存儲精確的小數(shù)數(shù)據(jù),其以字符串形式保存數(shù)值,從而避免了浮點(diǎn)計(jì)算可能引入的誤差。定點(diǎn)類型的數(shù)值精度由用戶定義,支持的范圍和精度更適合金融計(jì)算和其他需要精確計(jì)算的場景。在對精度要求極高的應(yīng)用中,如貨幣處理、財(cái)務(wù)報(bào)表計(jì)算等,應(yīng)優(yōu)先選擇定點(diǎn)類型,而非浮點(diǎn)類型。1113.?字符串類型字符串類型用于存儲文本數(shù)據(jù),其中CHAR為定長字符串,VARCHAR為變長字符串,而TEXT用于存儲大文本數(shù)據(jù),詳細(xì)信息可見下表。112字符串類型4.?日期與時(shí)間類型日期與時(shí)間類型(如DATE、TIME、DATETIME、TIMESTAMP)用于存儲日期與時(shí)間數(shù)據(jù),其中DATE表示日期,TIME表示時(shí)間,DATETIME表示日期時(shí)間,TIMESTAMP表示時(shí)間戳,詳細(xì)信息可見下表。113
日期與時(shí)間類型114
日期與時(shí)間類型5.?二進(jìn)制類型二進(jìn)制類型用于存儲二進(jìn)制數(shù)據(jù),如圖像、音頻等,詳細(xì)信息可見下表。115二進(jìn)制類型116二進(jìn)制類型二、約束1.?約束的概念約束用于規(guī)定數(shù)據(jù)表中數(shù)據(jù)的一些限制和規(guī)則。它們定義了對表中數(shù)據(jù)的有效性和完整性要求,確保數(shù)據(jù)的一致性和正確性。當(dāng)試圖插入、更新或刪除數(shù)據(jù)時(shí),數(shù)據(jù)庫管理系統(tǒng)會自動(dòng)檢查這些約束,并確保數(shù)據(jù)操作符合這些約束定義的規(guī)則。1172.?常見的約束(1)主鍵約束主鍵約束用于唯一標(biāo)識表中的每一行數(shù)據(jù),要求主鍵列的值不重復(fù)且不能為空。一個(gè)數(shù)據(jù)表只能有一個(gè)主鍵,且主鍵列的值在表中必須唯一,以方便快速地檢索數(shù)據(jù)。(2)唯一約束唯一約束要求某列的值在整個(gè)數(shù)據(jù)表中保持唯一,但允許為空值。一個(gè)數(shù)據(jù)表可以有多個(gè)唯一約束,每個(gè)唯一約束字段可以有多個(gè)NULL值。(3)非空約束非空約束規(guī)定某列的值不能為NULL,即該列必須始終包含有效的數(shù)據(jù)。118(4)默認(rèn)值約束默認(rèn)值約束用于規(guī)定沒有給某列賦值時(shí)的默認(rèn)值。通過默認(rèn)值約束,可提高數(shù)據(jù)管理的效率。(5)檢查約束檢查約束用于規(guī)定某列的值必須滿足特定的條件或范圍。通過檢查約束,可以限制某列的取值范圍。(6)外鍵約束外鍵約束用于關(guān)聯(lián)兩個(gè)數(shù)據(jù)表,確保在一個(gè)表中的列值必須存在于另一個(gè)表的主鍵列中。外鍵約束實(shí)現(xiàn)了表與表之間的數(shù)據(jù)一致性。119三、創(chuàng)建數(shù)據(jù)表1.?使用SQL語句創(chuàng)建數(shù)據(jù)表使用如下CREATE語句創(chuàng)建數(shù)據(jù)表。1202.?使用Navicat創(chuàng)建數(shù)據(jù)表打開Navicat,連接數(shù)據(jù)庫,在數(shù)據(jù)庫“schoolsys”的“表”上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“新建表”選項(xiàng),在彈出的頁面中可進(jìn)行創(chuàng)建數(shù)據(jù)表的操作,設(shè)置數(shù)據(jù)表字段如圖所示。121設(shè)置數(shù)據(jù)表字段在該頁面中,每一行表示一個(gè)字段,其中,在“名”列中可輸入字段名稱,在“類型”列中可選擇或輸入字段的數(shù)據(jù)類型,在“長度”列可選擇字段的長度,在“小數(shù)點(diǎn)”列可輸入精度,在“不是NULL”列可設(shè)置是否允許為空(即非空約束),“虛擬”列表示是否為該字段創(chuàng)建虛擬列以提高索引效率,“鍵”列可選擇該字段的主鍵或外鍵約束,“注釋”列可為該字段增加注釋。122設(shè)置完字段后,單擊對象列表工具欄中的“保存”按鈕,彈出如圖所示的“表名”對話框,輸入數(shù)據(jù)表的名稱后單擊“確定”按鈕即可完成數(shù)據(jù)表的創(chuàng)建。123“表名”對話框修改數(shù)據(jù)表任務(wù)21241.?了解查看、修改數(shù)據(jù)表的SQL語句。2.?能查看、修改數(shù)據(jù)表。125126修改數(shù)據(jù)表是指對已存在的數(shù)據(jù)表進(jìn)行結(jié)構(gòu)上的更改,以適應(yīng)不同的需求或變化。修改用戶登錄表是在已存在的用戶身份驗(yàn)證系統(tǒng)中更改或增加功能時(shí)的常見任務(wù)。本任務(wù)要求使用Navicat,在已成功創(chuàng)建的用戶登錄表“tb_account”中添加一個(gè)用戶電話號碼字段“phone_number”,如圖所示。成功添加字段127一、查看數(shù)據(jù)表結(jié)構(gòu)創(chuàng)建完數(shù)據(jù)表后,可以查看創(chuàng)建的數(shù)據(jù)表的結(jié)構(gòu)。查看數(shù)據(jù)表的結(jié)構(gòu)的SQL語法格式如下。二、修改數(shù)據(jù)表1.?添加字段使用ALTER語句可以在數(shù)據(jù)表中添加新的字段。添加字段的SQL語法格式如下。1282.?修改字段使用ALTER語句還可以修改數(shù)據(jù)表中的字段,其SQL語法格式如下。3.?刪除字段使用ALTER語句還可以在數(shù)據(jù)表中刪除字段,其SQL語法格式如下。1294.?使用Navicat可視化修改數(shù)據(jù)表在數(shù)據(jù)庫“schoolsys”中單擊“表”,在其下拉列表中的數(shù)據(jù)表“staff”上單擊鼠標(biāo)右鍵,在彈出的快捷菜單中選擇“設(shè)計(jì)表”選項(xiàng),執(zhí)行效果如圖所示。130選擇“設(shè)計(jì)表”選項(xiàng)在彈出的頁面中進(jìn)行修改數(shù)據(jù)表操作,如圖所示。在對象列表工具欄中單擊“添加字段”按鈕可為該數(shù)據(jù)表增加新字段,單擊“插入字段”按鈕可在選中字段上方新增一個(gè)字段,單擊“刪除字段”按鈕將刪除選中的字段,單擊“主鍵”按鈕可為選中的字段添加主鍵,單擊“上移”和“下移”按鈕能改變字段排序,完成設(shè)置后使用“保存”按鈕可對修改操作進(jìn)行保存。131修改數(shù)據(jù)表刪除數(shù)據(jù)表任務(wù)31321.?了解數(shù)據(jù)表之間的關(guān)系。2.?掌握刪除數(shù)據(jù)表的SQL語句。3.?能刪除數(shù)據(jù)表。133當(dāng)某個(gè)表不再需要且其中的數(shù)據(jù)也不再使用時(shí),可以刪除該表,以清理數(shù)據(jù)庫中多余的數(shù)據(jù)表。刪除用戶登錄表是將已存在的用戶身份驗(yàn)證系統(tǒng)移除。刪除用戶登錄表通常需要進(jìn)行合規(guī)性審查,并確保遵守?cái)?shù)據(jù)保護(hù)法規(guī),以保護(hù)用戶隱私和數(shù)據(jù)安全。134本任務(wù)要求使用Navicat,刪除用戶登錄表“tb_account”,結(jié)果如圖所示。135刪除用戶登錄表一、數(shù)據(jù)表間的關(guān)系1.?主鍵-外鍵關(guān)系(1)主鍵主鍵是表中唯一標(biāo)識每條記錄的字段或字段組合,保證了表中每條記錄的唯一性和不可重復(fù)性。(2)外鍵外鍵是與其他表中主鍵相關(guān)聯(lián)的字段,用于建立表與表之間的關(guān)聯(lián)關(guān)系。外鍵字段的取值必須存在于關(guān)聯(lián)表的主鍵取值范圍內(nèi),從而形成表與表之間的數(shù)據(jù)關(guān)聯(lián)。1362.?一對一關(guān)系一對一關(guān)系是指兩張表之間的記錄存在一一對應(yīng)的關(guān)系,即在A表中的一個(gè)記錄僅對應(yīng)B表中的一個(gè)記錄,反之亦然。3.?一對多關(guān)系一對多關(guān)系是指A表中的一個(gè)記錄可以對應(yīng)B表中的多個(gè)記錄,但B表中的一個(gè)記錄只能對應(yīng)A表中的一個(gè)記錄。4.?多對多關(guān)系多對多關(guān)系是指兩張表中的記錄可以相互對應(yīng)多個(gè),即A表中的一個(gè)記錄在B表中可以對應(yīng)多個(gè)記錄,同時(shí)B表中的一個(gè)記錄也可以對應(yīng)A表中的多個(gè)記錄。137二、刪除沒有被關(guān)聯(lián)的表可使用DROP語句刪除沒有被關(guān)聯(lián)的表。具體的SQL語法格式如下。138三、刪除被其他數(shù)據(jù)表關(guān)聯(lián)的主表在刪除一個(gè)作為其他表外鍵引用的主表之前,必須先解除其外鍵關(guān)聯(lián)關(guān)系。使用如下SQL語句查詢外鍵名稱。139查詢得出外鍵名稱后,使用ALTERTABLE語句,并在DROPFOREIGNKEY子句中指定要?jiǎng)h除的外鍵約束的名稱。刪除表的外鍵約束的SQL語法格式如下。140項(xiàng)目四數(shù)據(jù)表記錄檢索141142任務(wù)1使用關(guān)鍵字進(jìn)行單表查詢?nèi)蝿?wù)2使用聚合函數(shù)進(jìn)行函數(shù)查詢?nèi)蝿?wù)3多表間進(jìn)行連接查詢?nèi)蝿?wù)4使用關(guān)鍵字進(jìn)行子查詢?nèi)蝿?wù)5使用正則表達(dá)式進(jìn)行查詢使用關(guān)鍵字進(jìn)行單表查詢?nèi)蝿?wù)11431.?了解查詢的SQL語法格式。2.?掌握基本查詢操作。3.?能使用各種關(guān)鍵字進(jìn)行查詢。144145基本查詢是使用數(shù)據(jù)庫的基本操作,除了查詢所有信息外,更多的時(shí)候是指定條件進(jìn)行查詢的,這樣才能實(shí)現(xiàn)高效快捷地找到所需要的信息。本任務(wù)要求使用Navicat查詢課程表中“課程學(xué)分”(cou_credit)為3且“課程類型”(cou_type)為選修的課程信息,查詢結(jié)果如圖所示。146
查詢結(jié)果147一、基本查詢查詢語句是SQL語言以及MySQL中極為重要的語句。數(shù)據(jù)庫最常使用的四大功能是查詢、增加、更新、刪除,其中查詢功能是展示數(shù)據(jù)庫中存放數(shù)據(jù)的最基本的方式。查詢使用的是SELECT語句,它的使用方式既可以簡單化也可以復(fù)雜化,其功能十分強(qiáng)大?;静樵冋Z句SELECT的基本語法格式如下(其中{}表示必選其一或多選,[]表示可選)。148二、指定查詢字段按字段查詢是指查詢數(shù)據(jù)表中指定字段的數(shù)據(jù)。在MySQL中,可以使用通配符“*”指定查詢所有列,也可以使用“<字段名>”直接指定字段名稱進(jìn)行查詢。查詢字段的語法格式如下。149三、用關(guān)鍵字WHERE進(jìn)行條件查詢1.?用比較運(yùn)算符實(shí)現(xiàn)簡單條件除了字段查詢外,為了滿足用戶更多的查詢需求,提高查詢效率,可指定條件查詢相關(guān)數(shù)據(jù)。指定條件查詢需要使用WHERE子句來指定條件,指定條件查詢的SQL語法格式如下。150如果要從眾多記錄中查詢出指定的記錄,需要設(shè)定查詢的條件。在使用WHERE子句時(shí),需要使用比較運(yùn)算符來表示查詢條件。常用的比較運(yùn)算符見下表。151
常用的比較運(yùn)算符152
常用的比較運(yùn)算符2.?用關(guān)鍵字IN實(shí)現(xiàn)集合條件使用關(guān)鍵字IN可以判斷某個(gè)字段的值是否在指定的集合中。如果字段的值在集合中,則滿足查詢條件能進(jìn)行查詢;如果不在集合中,則不滿足查詢條件。其語法格式如下。1533.?用關(guān)鍵字BETWEEN?AND實(shí)現(xiàn)范圍條件關(guān)鍵字BETWEENAND的范圍查詢與關(guān)鍵字IN的查詢有所區(qū)別。IN子句用于查詢字段值在指定集合內(nèi)的數(shù)據(jù),而BETWEENAND子句用于查詢字段值在指定區(qū)間內(nèi)的數(shù)據(jù),不在該區(qū)間內(nèi)的數(shù)據(jù)將不會出現(xiàn)在查詢結(jié)果中。關(guān)鍵字BETWEENAND范圍查詢的SQL語法格式如下。1544.?用關(guān)鍵字?LIKE實(shí)現(xiàn)模糊條件關(guān)鍵字LIKE是SQL中常用的比較運(yùn)算符,用于實(shí)現(xiàn)模糊查詢。LIKE在使用時(shí)會搭配兩種通配符——百分號“%”和下畫線“_”。其中,通配符“%”可以匹配任何數(shù)量的字符包括零個(gè)字符;通配符“_”只能匹配一個(gè)字符。1555.?用關(guān)鍵字IS?NULL實(shí)現(xiàn)空值條件關(guān)鍵字ISNULL用來判斷數(shù)據(jù)表中某字段的值是否為空(NULL)。當(dāng)某條記錄中指定字段的值為空(NULL)時(shí),則該記錄滿足查詢條件,可被查詢輸出;如果該字段的值不為空,則不滿足查詢條件,不會被輸出。其SQL語法格式如下。1566.?用關(guān)鍵字?AND、OR?實(shí)現(xiàn)復(fù)合條件相對于基本查詢,單一條件可能無法滿足更多的需求,SQL中提供了關(guān)鍵字AND,可以為查詢語句指定多個(gè)條件。使用關(guān)鍵字AND進(jìn)行條件查詢時(shí),只有當(dāng)記錄中的字段值滿足了全部條件時(shí),才能成功地完成查詢;反之,則不滿足查詢條件,無法被查詢輸出??梢酝瑫r(shí)使用多個(gè)
關(guān)鍵字AND來連接多個(gè)表達(dá)式。AND子句的SQL語法格式如下。157關(guān)鍵字OR與
關(guān)鍵字AND都可以用于指定多個(gè)條件,但是與
關(guān)鍵字AND不同的是,當(dāng)記錄中的字段值能滿足OR子句眾多條件中的一個(gè)時(shí)就能實(shí)現(xiàn)查詢;反之,則不符合查詢條件,無法被查詢輸出。OR子句的SQL語法格式如下。158四、用關(guān)鍵字DISTINCT去除結(jié)果中的重復(fù)行數(shù)據(jù)表存儲的數(shù)據(jù)在某些情況下會出現(xiàn)大量重復(fù)的情況,例如分類、統(tǒng)計(jì)等情況就需要使用關(guān)鍵字DISTINCT,它能去除查詢結(jié)果中的重復(fù)記錄,讓數(shù)據(jù)能更加直觀地展示,DISTINCT子句的SQL語法格式如下。159五、用關(guān)鍵字ORDERBY對查詢結(jié)果進(jìn)行排序?qū)τ跀?shù)字、字母等有順序的數(shù)據(jù),可以使用關(guān)鍵字ORDERBY對查詢的結(jié)果進(jìn)行升序或降序排列。ORDERBY子句的SQL語法格式如下。160六、用關(guān)鍵字LIMIT限制查詢結(jié)果的數(shù)量有時(shí)查詢結(jié)果中記錄較多,不方便查看,可使用MySQL提供的關(guān)鍵字LIMIT來限制查詢結(jié)果的數(shù)量,分頁顯示查詢結(jié)果。其語法格式如下。161使用聚合函數(shù)進(jìn)行函數(shù)查詢?nèi)蝿?wù)21621.了解函數(shù)的作用。2.了解常用的單行函數(shù)。3.能使用聚合函數(shù)進(jìn)行函數(shù)查詢。4.能使用關(guān)鍵字GROUP?BY和HAVING進(jìn)行查詢。5.了解SELECT?語句的執(zhí)行過程。163164MySQL內(nèi)置函數(shù)可直接通過函數(shù)名調(diào)用,幫助用戶簡化復(fù)雜的數(shù)據(jù)處理,降低數(shù)據(jù)維護(hù)與管理難度。本任務(wù)要求通過Navicat查詢成績表中每門課程的平均成績,結(jié)果保留為整數(shù),得到查詢效果如圖所示。
每門課程的平均成績165一、函數(shù)概述1.?函數(shù)的作用函數(shù)在計(jì)算機(jī)語言的使用中貫穿始終,函數(shù)可以把經(jīng)常使用的代碼封裝起來,需要的時(shí)候直接調(diào)用即可,這樣既提高了代碼的開發(fā)效率,又提高了代碼的可維護(hù)性。通過使用函數(shù),可以極大地提高用戶對數(shù)據(jù)庫的管理效率。2.?不同DBMS函數(shù)的差異不同DBMS的函數(shù)實(shí)現(xiàn)差異性很大,遠(yuǎn)超過SQL語言版本間的差異。實(shí)際上,只有很少的SQL函數(shù)是被DBMS同時(shí)支持的。大部分DBMS會有特定的函數(shù),這就意味著采用SQL函數(shù)的代碼可移植性是很差的,因此,在使用函數(shù)的時(shí)候要特別注意。MySQL提供了豐富的內(nèi)置函數(shù),這些函數(shù)使得數(shù)據(jù)的維護(hù)與管理更加方便。根據(jù)實(shí)現(xiàn)的功能不同,函數(shù)可以分為數(shù)值函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、流程控制函數(shù)、加密與解密函數(shù)、獲取MySQL信息函數(shù)、聚合函數(shù)等。按照操作記錄的行數(shù)和結(jié)果返回?cái)?shù)不同,可將這些豐富的內(nèi)置函數(shù)分為單行函數(shù)和聚合函數(shù)(或分組函數(shù))。1663.?常用的單行函數(shù)單行函數(shù)對每條記錄單獨(dú)計(jì)算并返回結(jié)果,常用的有數(shù)值函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)等。(1)常用的數(shù)值函數(shù)見下表。167常用的數(shù)值函數(shù)168常用的數(shù)值函數(shù)169常用的數(shù)值函數(shù)(2)常用的字符串函數(shù)見下表。170
常用的字符串函數(shù)171
常用的字符串函數(shù)(3)常用的日期和時(shí)間函數(shù)見下表。172常用的日期和時(shí)間函數(shù)173常用的日期和時(shí)間函數(shù)4.?常用的聚合函數(shù)聚合函數(shù)對一組數(shù)據(jù)返回單個(gè)統(tǒng)計(jì)值,通常與GROUPBY配合使用。SUM()函數(shù)用于計(jì)算表中某個(gè)數(shù)值類型字段取值的總和。AVG()函數(shù)用于計(jì)算表中某個(gè)數(shù)值類型字段取值的平均值。MAX()、MIN()函數(shù)用于計(jì)算表中某個(gè)數(shù)值類型字段取值的最大值和最小值。COUNT()函數(shù)用于統(tǒng)計(jì)表中的記錄數(shù),如果參數(shù)不為“*”,返回所選擇集合中非NULL值的行的數(shù)目;如果參數(shù)為“*”,返回所選擇集合中所有行的數(shù)目,包含NULL值所在的行。沒有WHERE子句的COUNT(*)是經(jīng)過內(nèi)部優(yōu)化的,能快速地返回表中所有記錄的總數(shù)。174上述函數(shù)的SQL語法格式一致,其語法格式如下。175二、用關(guān)鍵字GROUPBY分組查詢通過GROUPBY子句可以將數(shù)據(jù)劃分到不同的組中,實(shí)現(xiàn)對記錄進(jìn)行分組查詢。GROUPBY子句常常與聚合函數(shù)配合使用,SELECT語句中未使用聚合函數(shù)的字段應(yīng)包含在GROUPBY子句中。1.?使用關(guān)鍵字GROUP?BY進(jìn)行分組查詢使用GROUPBY關(guān)鍵字的SQL語法格式如下。1762.?按多個(gè)字段分組使用關(guān)鍵字GROUPBY時(shí)還可按多個(gè)字段分組。分組過程中,先按照第一個(gè)字段分組,當(dāng)?shù)谝粋€(gè)字段有相同值時(shí),再按第二個(gè)字段分組,其余以此類推。177三、用關(guān)鍵字HAVING分組過濾條件進(jìn)行查詢HAVING語句通常與GROUPBY語句聯(lián)合使用,用來過濾由GROUPBY語句返回的記錄集。其SQL語法格式如下。178多表間進(jìn)行連接查詢?nèi)蝿?wù)31791.了解連接查詢的作用。2.掌握內(nèi)連接查詢操作。3.掌握外連接查詢操作。4.能合并查詢結(jié)果。180連接查詢(JOIN操作)是SQL中用于整合多個(gè)相關(guān)數(shù)據(jù)表數(shù)據(jù)的核心機(jī)制。不同的數(shù)據(jù)表之間存在一定的聯(lián)系,單表查詢無法實(shí)現(xiàn)復(fù)雜數(shù)據(jù)表之間的連接,因此,使用連接查詢,可利用數(shù)據(jù)表之間存在關(guān)聯(lián)的特點(diǎn)進(jìn)行多表間的查詢。181本任務(wù)要求使用Navicat查詢計(jì)算機(jī)系學(xué)生的平均分?jǐn)?shù),要求該平均分?jǐn)?shù)取整數(shù),得到的查詢結(jié)果如圖所示。182
計(jì)算機(jī)系學(xué)生的平均分?jǐn)?shù)一、連接查詢連接是關(guān)系數(shù)據(jù)庫的核心機(jī)制,用于通過共有字段(如外鍵)關(guān)聯(lián)多表數(shù)據(jù)。連接主要分為兩類:內(nèi)連接(INNERJOIN)和外連接(OUTERJOIN)。其中,內(nèi)連接僅返回兩表匹配的行(交集)。外連接包括左連接(LEFTJOIN)、右連接(RIGHTJOIN)和全連接(FULLJOIN)。其中,左連接保留左表全部行,右表無匹配時(shí)填充NULL。右連接保留右表全部行,左表無匹配時(shí)填充NULL。全連接(FULLJOIN)返回所有匹配與不匹配行。1831.?內(nèi)連接查詢內(nèi)連接查詢使用比較運(yùn)算符進(jìn)行表間某(些)列數(shù)據(jù)的比較操作,并列出這些表中與連接條件相匹配的數(shù)據(jù)行,組合成新的記錄。也就是說,在內(nèi)連接查詢中,只有滿足條件的記錄才能出現(xiàn)在結(jié)果中。內(nèi)連接查詢的SQL語法格式如下。1842.?外連接查詢內(nèi)連接查詢僅返回查詢結(jié)果集合中符合連接條件的行;而外連接查詢既返回查詢結(jié)果集合中符合連接條件的行,還包括左表(左外連接或左連接)、右表(右外連接或右連接)或兩個(gè)連接表(全外連接)中的所有數(shù)據(jù)行。外連接查詢分為左外連接查詢(左連接查詢)、右外連接查詢(右連接查詢)和全外連接查詢。185LEFTJOIN(左連接查詢)子句可以返回包括左表中的所有記錄和右表中連接字段值相等的記錄。左連接查詢的結(jié)果包括LEFT[OUTER]JOIN子句中指定的左表的所有行,而不僅僅是連接字段所匹配的行。全外連接查詢返回的結(jié)果集合中包含了左表中的所有記錄和右表中的所有記錄,不論是否存在匹配記錄。外連接字段的SQL語法格式如下。186二、定義別名在MySQL中,輸出查詢字段默認(rèn)使用其列名,由于語句可能較為煩瑣或者字段、表名稱較為復(fù)雜,容易出現(xiàn)錯(cuò)誤拼寫等情況。MySQL支持為表和字段取別名,使用別名能提高語句的可讀性,同時(shí)也能為輸出結(jié)果提供更清晰、精確的命名。為字段定義別名時(shí),使用關(guān)鍵字AS,其SQL語法格式如下。為數(shù)據(jù)表定義別名時(shí),同樣使用關(guān)鍵AS,其SQL語法格式如下。187使用關(guān)鍵字進(jìn)行子查詢?nèi)蝿?wù)41881.?了解子查詢的概念。2.?掌握子查詢的嵌套方式。3.?能使用關(guān)鍵字進(jìn)行子查詢操作。189如果說連接查詢是通過連接不同的數(shù)據(jù)表形成一個(gè)數(shù)據(jù)源進(jìn)行查詢,子查詢則是通過在查詢中嵌套其他查詢來獲取結(jié)果。嵌套查詢的語句可能不夠簡潔,但執(zhí)行效率要比多次查詢高,且對于較為復(fù)雜的查詢要求來說,子查詢提供了更強(qiáng)的功能和靈活性。本任務(wù)要求使用Navicat查詢選修了“數(shù)據(jù)庫原理及應(yīng)用”課程的學(xué)生姓名,執(zhí)行效果如圖所示。190191
選修“數(shù)據(jù)庫原理及應(yīng)用”課程的學(xué)生姓名(部分)子查詢是指一個(gè)查詢語句嵌套在另一個(gè)查詢語句內(nèi)部的查詢,這個(gè)特性從MySQL4.1開始引入。在SELECT語句中先計(jì)算子查詢,其結(jié)果作為外層查詢的過濾條件,查詢可以基于一張表或者多張表。子查詢中常用的關(guān)鍵字有IN、EXISTS等。子查詢中也可以使用比較運(yùn)算符。子查詢可以添加到SELECT、UPDATE和DELETE語句中,而且可以進(jìn)行多層嵌套。本項(xiàng)目中所使用的相關(guān)關(guān)鍵字的SQL語法格式如下。192一、帶比較運(yùn)算符的子查詢比較運(yùn)算符廣泛地運(yùn)用在查詢中,子查詢也可以使用比較運(yùn)算符,包括“=”“!=”“>”“>=”“<”“<=”等。比較運(yùn)算符在子查詢中的用法與基本查詢一致,子查詢也是通過查詢嵌套形成的。用戶可以通過一定程度的查詢嵌套,實(shí)現(xiàn)連接查詢。193二、帶關(guān)鍵字IN的子查詢使用關(guān)鍵字IN進(jìn)行子查詢時(shí),內(nèi)層查詢語句僅僅返回一個(gè)數(shù)據(jù)列,這個(gè)數(shù)據(jù)列里的值將提供給外層查詢的語句進(jìn)行比較操作。三、帶關(guān)鍵字EXISTS的子查詢關(guān)鍵字EXISTS后面的參數(shù)是一個(gè)任意的子查詢,系統(tǒng)對子查詢進(jìn)行運(yùn)算以判斷其是否返回行,如果至少返回一行,那么EXISTS子句的結(jié)果為TRUE,此時(shí)外層查詢語句將進(jìn)行查詢;如果子查詢沒有返回任何行,那么EXISTS子句返回的結(jié)果為FALSE,此時(shí)外層語句將不進(jìn)行查詢。194四、帶關(guān)鍵字ANY的子查詢關(guān)鍵字ANY表示數(shù)據(jù)滿足其中任意一個(gè)條件即可返回查詢結(jié)果,該關(guān)鍵字通常與比較運(yùn)算符一起使用。使用關(guān)鍵字ANY時(shí),只要滿足子查詢語句返回的結(jié)果中的任意一個(gè),就可以通過該條件來執(zhí)行外層查詢語句。其SQL語法格式如下。如果比較運(yùn)算符為“<”,則表示小于子查詢結(jié)果集中的任意一個(gè)值,即小于結(jié)果集中的最大值;如果比較運(yùn)算符為“>”,則表示大于子查詢結(jié)果集中的任意一個(gè)值,即大于子查詢結(jié)果集中的最小值。195五、帶關(guān)鍵字ALL的子查詢雖然關(guān)鍵字ALL與關(guān)鍵字ANY都常與比較運(yùn)算符一起使用,但性質(zhì)有所不同,關(guān)鍵字ALL表示滿足所有條件,使用關(guān)鍵字ALL時(shí),只有滿足子查詢返回的所有結(jié)果,才會繼續(xù)執(zhí)行外層查詢。其SQL語法格式如下。如果比較運(yùn)算符為“<”,則表示小于子查詢結(jié)果集中所有的值,即小于結(jié)果集中的最小值;如果比較運(yùn)算符為“>”,則表示大于子查詢結(jié)果集中所有的值,即大于結(jié)果集中的最大值。196使用正則表達(dá)式進(jìn)行查詢?nèi)蝿?wù)51971.了解正則表達(dá)式。2.能使用正則表達(dá)式進(jìn)行查詢。198正則表達(dá)式通常被用來檢索或替換那些符合某個(gè)模式的文本內(nèi)容,根據(jù)指定的模式匹配文本中符合要求的字符串。正則表達(dá)式的查詢能力比通配符更加強(qiáng)大,而且更加靈活。本任務(wù)要求通過正則表達(dá)式查詢學(xué)生表“tb_student”的字段“cla_id”中以字母“B”開頭的記錄,得到的執(zhí)行效果如圖所示。199200
字段“cla_id”中以字母“B”開頭的記錄正則表達(dá)式是一種用于匹配和操作文本的強(qiáng)大工具,可以在文本中查找、替換、提取和驗(yàn)證特定的模式。例如,從一個(gè)文本文件中提取電話號碼,查找一篇文章中重復(fù)的單詞,或者替換用戶輸入的某些敏感詞語等,這些場景都可以使用正則表達(dá)式。正則表達(dá)式強(qiáng)大而且靈活,可以應(yīng)用于非常復(fù)雜的查詢。在MySQL中,使用運(yùn)算符REGEXP來執(zhí)行正則表達(dá)式匹配查詢,其基本形式如下。201項(xiàng)目五數(shù)據(jù)表數(shù)據(jù)的插入、更新與刪除202203任務(wù)1向數(shù)據(jù)表中插入數(shù)據(jù)任務(wù)2更新數(shù)據(jù)表數(shù)據(jù)任務(wù)3刪除數(shù)據(jù)表數(shù)據(jù)向數(shù)據(jù)表中插入數(shù)據(jù)任務(wù)12041.?掌握?INSERT?INTO?的SQL語法。2.?能使用INSERT?INTO語句插入數(shù)據(jù)。3.?能將查詢結(jié)果插入到數(shù)據(jù)表中。205206插入數(shù)據(jù)是向數(shù)據(jù)表中插入新的記錄。在MySQL中,主要通過INSERT語句實(shí)現(xiàn)插入數(shù)據(jù)操作。本任務(wù)要求使用Navicat向數(shù)據(jù)庫“schoolsys”中的課程表插入多條記錄,要求插入的記錄內(nèi)容為('K0029','mysql','必修','4','很重要')、('K0030','MySQL','必修','4','非常重要')、('K0031','Mysql','必修','4','十分重要')。得到執(zhí)行效果如圖所示。207插入多條記錄208一、INSERTINTO的SQL語法1.?通過INSERT...VALUES語句插入數(shù)據(jù)在使用數(shù)據(jù)庫之前,數(shù)據(jù)庫中必須有數(shù)據(jù),在MySQL中,可使用INSERT語句向數(shù)據(jù)
表中插入新的數(shù)據(jù)記錄。插入數(shù)據(jù)的INSERTINTO語句的SQL語法格式如下。使用INSERT...VALUES語句插入數(shù)據(jù)有兩種情況:第一種情況是為數(shù)據(jù)表的所有字段插入數(shù)據(jù),第二種情況是為數(shù)據(jù)表的指定字段插入數(shù)據(jù)。2092.?通過INSERT...SET語句插入數(shù)據(jù)在MySQL中,除了通過INSERT...VALUES語句對指定字段插入數(shù)據(jù)以外,
還
能利用INSERT...SET語句往數(shù)據(jù)表中插入數(shù)據(jù),其基本的SQL語法格式如下。210二、將查詢結(jié)果插入表中的SQL語法INSERT語句不僅可以插入新數(shù)據(jù),還可以將SELECT語句的查詢結(jié)果批量插入表中。如果需要將一張表中的信息合并到另一張表中,不需要把每一條記錄依次輸入,只需要使用由INSERT語句和SELECT語句組成的語句即可實(shí)現(xiàn)記錄的批量插入。其基本的SQL語法格式如下。211
更新數(shù)據(jù)表數(shù)據(jù)任務(wù)22121.?了解更新數(shù)據(jù)的SQL語法。2.?能使用?UPDATE?語句修改字段值。213214數(shù)據(jù)更新為數(shù)據(jù)表數(shù)據(jù)維護(hù)做出了較大的貢獻(xiàn),強(qiáng)大的更新功能提高了數(shù)據(jù)容錯(cuò)率,不會因?yàn)橐淮尾迦胧д`就重新開始。本任務(wù)要求使用Navicat更新課程表中的字段“cou_credit”和“cou_describe”,要求將“cou_name”字段內(nèi)容為“MySQL”的記錄中的“cou_credit”字段內(nèi)容修改為“3”,將“cou_describe”字段內(nèi)容修改為空。得到執(zhí)行效果如圖所示。215更新數(shù)據(jù)成功216更新數(shù)據(jù)是修改表中已存在的記錄,是數(shù)據(jù)處理中常見的操作。MySQL中使用UPDATE語句可以更新表中特定的行或者同時(shí)更新所有行的記錄。更新數(shù)據(jù)的UPDATE語句中的SQL語法格式如下。刪除數(shù)據(jù)表數(shù)據(jù)任務(wù)32171.?了解?DELETE?語句和?TRUNCATE?TABLE?語句。2.?能使用?DELETE?語句和?DROP?語句刪除數(shù)據(jù)。3.?了解?DELETE語句、TRUNCATE?TABLE語句和?DROP語句的區(qū)別。218刪除數(shù)據(jù)與插入數(shù)據(jù)、更新數(shù)據(jù)同屬于數(shù)據(jù)修改操作,但功能不同。數(shù)據(jù)庫不能一味地增加數(shù)據(jù),要根據(jù)需求保留和刪除數(shù)據(jù),刪除操作為數(shù)據(jù)庫減輕了負(fù)擔(dān),提高了運(yùn)行效率。本任務(wù)要求使用Navicat刪除課程表“tb_course”中字段“cou_name”內(nèi)容為“MySQL”的記錄,得到執(zhí)行結(jié)果如圖所示。219刪除數(shù)據(jù)成功一、通過DELETE語句刪除數(shù)據(jù)從數(shù)據(jù)表中刪除數(shù)據(jù)使用DELETE語句,DELETE語句允許WHERE子句指定刪除條件。DELETE語句的語法與SELECT語句的語法有著相似之處。如果說查詢是將SELECT語句的查詢結(jié)果顯示出來的話,那么DELETE就是將這些查詢到的結(jié)果刪除。DELETE語句的基本SQL語法格式如下。220二、通過TRUNCATETABLE語句清空數(shù)據(jù)表如果要?jiǎng)h除表中所有行,可以通過TRUNCATETABLE語句實(shí)現(xiàn),其基本SQL語法格式如下。221DELETE語句和TRUNCATETABLE語句的區(qū)別如下。1.使用TRUNCATETABLE語句后,表中的AUTO_INCREMENT計(jì)數(shù)器將被重新設(shè)置為該列的初始值。2.對于參與了索引和視圖的表,不能使用TRUNCATETABLE語句來刪除數(shù)據(jù),而應(yīng)使用DELETE語句。3.TRUNCATETABLE操作比DELETE操作使用的系統(tǒng)和事務(wù)日志資源少。使用DELETE語句每刪除一行,都會在事務(wù)日志中添加一行記錄,而TRUNCATETABLE語句是通過釋放存儲表數(shù)據(jù)所用的數(shù)據(jù)頁來刪除數(shù)據(jù)的,且在事務(wù)日志中僅記錄頁釋放。222三、DELETE語句、TRUNCATETA
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年叉車崗位實(shí)操考試題庫帶答案
- 2026年叉車技能大賽筆試題庫附答案
- 2026年叉車模擬理論考試題庫及完整答案一套
- 2026年叉車?yán)碚摽荚囶}庫初級及完整答案1套
- 2025-2030亞太區(qū)寵物食品行業(yè)發(fā)展現(xiàn)狀與企業(yè)競爭格局分析報(bào)告
- 2025-2030丹麥?zhǔn)称芳庸I(yè)經(jīng)濟(jì)供需現(xiàn)狀評估及發(fā)展?jié)摿ρ芯恳?guī)劃報(bào)告
- 2025-2030丹麥家具行業(yè)市場發(fā)展及投資評估規(guī)劃分析研究報(bào)告
- 2025-2030中國納米材料市場發(fā)展現(xiàn)狀及科研轉(zhuǎn)化與商業(yè)化前景研究報(bào)告
- 2025-2030中國智慧城市發(fā)展路徑與典型應(yīng)用場景案例研究報(bào)告
- 2025-2030東歐家具制造行業(yè)市場供需格局分析及投資方向規(guī)劃分析研究報(bào)告
- DB21-T 20012-2024 公路養(yǎng)護(hù)工程基層注漿補(bǔ)強(qiáng)技術(shù)規(guī)范
- 造紙業(yè)五年環(huán)?;?025年竹漿環(huán)保再生紙行業(yè)報(bào)告
- 心力衰竭急性加重的危重監(jiān)護(hù)護(hù)理指南
- 堤防工程勘察設(shè)計(jì)方案
- 注冊監(jiān)理工程師(市政公用)繼續(xù)教育試題答案
- 2025年水空調(diào)市場分析報(bào)告
- 質(zhì)量員考核評價(jià)大綱及習(xí)題集第二版
- 八年級上冊壓軸題數(shù)學(xué)考試試卷含詳細(xì)答案
- T/GFPU 1007-2022中小學(xué)幼兒園供餐潮汕牛肉丸
- 2024年攀枝花市中考英語試題(附答案)
- 人工智能通識教程第5章智能體
評論
0/150
提交評論