《MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(微課版)》-第1、2章-了解數(shù)據(jù)庫、認(rèn)識(shí)數(shù)據(jù)庫_第1頁
《MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(微課版)》-第1、2章-了解數(shù)據(jù)庫、認(rèn)識(shí)數(shù)據(jù)庫_第2頁
《MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(微課版)》-第1、2章-了解數(shù)據(jù)庫、認(rèn)識(shí)數(shù)據(jù)庫_第3頁
《MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(微課版)》-第1、2章-了解數(shù)據(jù)庫、認(rèn)識(shí)數(shù)據(jù)庫_第4頁
《MySQL數(shù)據(jù)庫應(yīng)用實(shí)戰(zhàn)教程(微課版)》-第1、2章-了解數(shù)據(jù)庫、認(rèn)識(shí)數(shù)據(jù)庫_第5頁
已閱讀5頁,還剩94頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目1了解數(shù)據(jù)庫——?dú)庀笥涗洈?shù)據(jù)庫目錄任務(wù)1認(rèn)識(shí)MySQL任務(wù)1認(rèn)識(shí)MySQL數(shù)據(jù)庫引擎排行榜MySQL與其他數(shù)據(jù)庫管理系統(tǒng)的比較任務(wù)2安裝、配置和使用MySQL任務(wù)3體驗(yàn)MySQL任務(wù)4理解數(shù)據(jù)庫任務(wù)1認(rèn)識(shí)MySQLMySQL是一種數(shù)據(jù)庫管理系統(tǒng)軟件什么是數(shù)據(jù)庫?集中保存數(shù)據(jù)的地方通常是一個(gè)目錄下的一組文件就象超市后面的倉庫生活中哪里用到數(shù)據(jù)庫?數(shù)據(jù)無處不在,需要收集、處理、分析和使用例如手機(jī)APP,幾乎每個(gè)APP的后面都有數(shù)據(jù)庫的支持?jǐn)?shù)據(jù)庫技術(shù)是軟件和計(jì)算機(jī)相關(guān)專業(yè)最為核心的課程之一什么是數(shù)據(jù)庫管理系統(tǒng)?管理數(shù)據(jù)庫的軟件提供操縱數(shù)據(jù)(增加、修改、刪除數(shù)據(jù))的功能提供查詢數(shù)據(jù)的功能就象超市里的貨架,可以方便地找到客戶需要的商品數(shù)據(jù)庫管理系統(tǒng)軟件有幾百種,常見的有十幾種,MySQL是其中之一1.1.1數(shù)據(jù)庫引擎排行榜數(shù)據(jù)庫管理系統(tǒng)的核心是數(shù)據(jù)庫引擎,哪種數(shù)據(jù)庫管理系統(tǒng)最流行?自2013年起,穩(wěn)居第二名近十年之久1.1.2

MySQL與其他數(shù)據(jù)庫管理系統(tǒng)的比較關(guān)系數(shù)據(jù)庫管理系統(tǒng)Oracle、MySQL、SQL

Server、SQLite是其中最典型的4種關(guān)系數(shù)據(jù)庫管理系統(tǒng)主要用于處理數(shù)字、日期時(shí)間和簡單的文本非關(guān)系數(shù)據(jù)庫管理系統(tǒng)

非關(guān)系數(shù)據(jù)庫管理系統(tǒng)用于處理復(fù)雜的數(shù)據(jù),如大量的文本、音頻、視頻等多媒體,或者有不同的處理需求的場景,因此不同的系統(tǒng)有不同的指標(biāo),無法比較目錄任務(wù)2安裝、配置和使用MySQL任務(wù)1認(rèn)識(shí)MySQL任務(wù)2安裝、配置和使用MySQLMySQL的安裝和配置MySQL程序介紹使用MySQL命令行客戶端圖形界面工具dbForge軟件安裝相關(guān)的常見問題任務(wù)3體驗(yàn)MySQL任務(wù)4理解數(shù)據(jù)庫MySQL的歷史MySQL大事記1995年發(fā)布1.0版,內(nèi)部使用2000年,MySQL公開了源代碼,成為開源軟件2008年Sun公司收購了MySQL2010年Oracle(甲骨文)公司又收購了Sun公司

為應(yīng)對(duì)商業(yè)公司將MySQL閉源的可能性,MySQL的創(chuàng)始人發(fā)布了新的開源軟件MariaDB

2011年Oracle公司開始推出收費(fèi)的企業(yè)版和免費(fèi)的社區(qū)版目前最新版本是8.0.xxMySQL版本介紹版本新增功能5.0存儲(chǔ)過程、游標(biāo)、觸發(fā)器、查詢優(yōu)化以及分布式事務(wù)功能等5.1事件(一種定時(shí)任務(wù))、分區(qū),基于行的復(fù)制等5.5一次重要的升級(jí),默認(rèn)存儲(chǔ)引擎更改為InnoDB、提高性能和可擴(kuò)展性以及其他改進(jìn)5.6InnoDB性能加強(qiáng)以及其他改進(jìn)5.7提升MySQL安全性以及其他改進(jìn),例如引入alter

user語句,用于修改用戶

密碼、密碼過期策略及鎖定用戶等。參見“10.2.7

MySQL

5.7的安全性”一節(jié)8.0

目前最新版本,5.7版之后就是8.0版。沒有6和7版本書可使用

5.5版及以上,包括

8.0版1.2.1

MySQL的安裝和配置從本書附錄E提供的網(wǎng)盤地址下載文件名:mysql-5.5.62-win32.msi直接安裝,采用默認(rèn)選項(xiàng)即可安裝后的配置,主要有三項(xiàng)字符集設(shè)置為utf8(第6頁圖1.5)添加MySQL的路徑(第6頁圖1.6)管理員密碼(建議用sa作為密碼)(第7頁圖1.7)請(qǐng)觀看微課視頻另一種安裝選項(xiàng)安裝MySQL

8.0見本書的附錄E/MySQLa/微課:1-1安裝和配置MySQL

5.5播放微課播放微課:安裝和配置MySQL

5.5需要的讀者可以預(yù)先下載:微課下載提取碼:12341.2.2

MySQL程序介紹MySQLInstanceConfig:MySQL配置工具,安裝后就是通過它初始化服務(wù)器,設(shè)置或修改一些配置參數(shù),例如設(shè)置根用戶密碼C:\Program

Files

(x86)\MySQL\MySQL

Server

5.5\binmysql.exe:MySQL命令行客戶端,也稱為MySQL控制臺(tái),它是使用和管理數(shù)據(jù)庫的一個(gè)界面,通常從命令行窗口中啟動(dòng)它mysqld.exe:MySQL服務(wù)器(其中字母d表示服務(wù)守護(hù)程序),它是數(shù)據(jù)庫管理系統(tǒng)的核心,提供了數(shù)據(jù)庫管理的所有功能,開機(jī)時(shí)它是自動(dòng)啟動(dòng)的。1.2.3使用MySQL命令行客戶端三種啟動(dòng)MySQL命令行客戶端的辦法辦法一、直接雙擊mysql.exe文件 不建議使用辦法二、從開始菜單找到MySQL

5.5

Command

Line

Client不建議使用辦法三、從Windows的“命令提示符”窗口通過命令mysql-u

root-p

啟動(dòng)建議使用,因?yàn)槿菀卓吹匠鲥e(cuò)情況使用MySQL命令行客戶端建議使用第三種啟動(dòng)MySQL命令行客戶端的辦法第一步:先打開“命令提示符”窗口方法1:Win+R打開“運(yùn)行”窗口,輸入命令cmd,左圖方法2:從開始菜單中選擇“命令提示符”,右圖微課:1-2使用

MySQL命令行客戶端使用MySQL命令行客戶端MySQL提示符第二步:在“命令提示符”窗口輸入下述命令C:\users\huangng>mysql

-u

root

-p其中C:\users\huangng>是Windwos的提示符,后面的mysql-u

root–p

才是要輸入的命令按回車鍵后,輸入根用戶密碼(在安裝后的配置中設(shè)置的,見教材第7頁圖1.7)看到如下提示符mysql>表示成功登錄注意區(qū)分兩種提示符:Windows提示符mysql>C:\users\huangng>常用的MySQL命令(一)quit功能:退出MySQL客戶端鍵入quit,再按回車鍵,退出回到C盤符下(進(jìn)入時(shí)的狀態(tài))這條命令行末可以有分號(hào),也可以沒有退回Windows提示符后,可以按上光標(biāo)鍵,調(diào)出上次的命令,按回車鍵重復(fù)執(zhí)行小技巧:上下右左光標(biāo)鍵:調(diào)出用過的命令,修改后,再次執(zhí)行在Windows提示符和MySQL命令行客戶端上同樣有效常用的MySQL命令(二)show

databases;功能:顯示數(shù)據(jù)庫名的列表這條命令行末必須有分號(hào),否則會(huì)等待補(bǔ)充最后的分號(hào)幾乎所有命令都需要分號(hào)作為結(jié)束常見問題之一

如果出現(xiàn)圖1.13所示的錯(cuò)誤“‘mysql’不是內(nèi)部或外部命令……”,說明系統(tǒng)找不到mysql命令,可能的原因有:還沒有安裝MySQL拼寫錯(cuò)誤,例如小寫的字母“l(fā)”寫成了數(shù)字“1”

mysql的路徑設(shè)置有錯(cuò),應(yīng)參考圖1.6所示的正確設(shè)置將mysql的路徑添加到PATH環(huán)境變量中常見問題之二如果出現(xiàn)圖1.14所示的錯(cuò)誤“Can’t

connect

to

MySQL

server…”,說明系統(tǒng)連接不到MySQL服務(wù)器,MySQL服務(wù)器可能沒有啟動(dòng)通常不會(huì)出現(xiàn)可以嘗試重新開機(jī),或者重新安裝MySQL如果遇到更復(fù)雜的情況,則按照附錄E的說明進(jìn)行處理常見問題之三

如果出現(xiàn)圖1.15所示的錯(cuò)誤“Access

denied

for

user…”,說明是登錄錯(cuò)誤,可能的原因有:賬號(hào)錯(cuò)誤,應(yīng)該使用root根用戶賬號(hào)密碼錯(cuò)誤,應(yīng)該用圖1.7中設(shè)置的密碼MySQL5.7版和8.0版的安全措施對(duì)于MySQL

5.7和8.0版登錄后可能會(huì)出現(xiàn)密碼過期的提示,這時(shí)無法繼續(xù)使用MySQL原因是一段時(shí)間沒有修改根用戶的密碼,例如機(jī)房中的機(jī)器,由于硬盤還原引起這時(shí)必須用下述命令設(shè)置根用戶的新密碼mysql>alter

user

user()

identified

by

"sa";其中user()表示當(dāng)前用戶,密碼sa要用單引號(hào)括起來如果提示密碼太短,則可以用sasa作為密碼,用簡單一點(diǎn)的密碼,以免忘記重新設(shè)置密碼后,就可以繼續(xù)使用MySQL客戶端與服務(wù)器使用MySQL的過程就是程序員通過MySQL客戶端與MySQL服務(wù)器實(shí)現(xiàn)交互的過程程序員發(fā)出一條命令,MySQL客戶端將命令傳遞給MySQL服務(wù)器,MySQL服務(wù)器執(zhí)行命令,根據(jù)命令的要求對(duì)數(shù)據(jù)庫進(jìn)行操作,并返回有關(guān)執(zhí)行情況的信息,MySQL客戶端顯示這些信息,如圖1.19所示然后程序員繼續(xù)發(fā)出命令,這樣一問一答,就實(shí)現(xiàn)了對(duì)MySQL數(shù)據(jù)庫的操作和管理MySQL客戶端只是一個(gè)界面,真正執(zhí)行命令的是MySQL服務(wù)器服務(wù)器根據(jù)命令的要求,將數(shù)據(jù)保存到數(shù)據(jù)庫中,或從數(shù)據(jù)庫中查詢數(shù)據(jù)

因此,MySQL的核心是MySQL服務(wù)器,用戶可以用不同的MySQL客戶端連接到MySQL服務(wù)器,向MySQL服務(wù)器發(fā)出命令,實(shí)現(xiàn)的功能都是相同的兩大類客戶端MySQL自帶的,無需另外安裝初學(xué)者使用不方便遠(yuǎn)程管理時(shí)最常使用需要另外安裝容易學(xué)習(xí)、容易使用dbForge:本書使用dbForge客戶端

Navicat:本書也支持Navicat,附錄

E提供本書有關(guān)章節(jié)的Navicat版的

PDF文件,點(diǎn)擊這里下載

其他各種圖形界面客戶端,暫時(shí)不建議使用命令行客戶端圖形界面客戶端1.2.4圖形界面工具dbForge軟件下載dbForge使用dbForge的Express免費(fèi)版,可以長期免費(fèi)使用。從本書附錄E提供的網(wǎng)盤地址下載安裝dbForge全部按默認(rèn)選項(xiàng)進(jìn)行安裝另一種安裝選擇安裝Navicat

16版附錄E提供本書有關(guān)章節(jié)的Navicat版的PDF文件,點(diǎn)擊這里下載微課:1-3安裝

MySQL圖形界面客戶端dbForge使用dbForge軟件(登錄連接)從dbForge

Studio連接MySQL左圖提供根用戶密碼(安裝時(shí)設(shè)置的)選擇一個(gè)默認(rèn)數(shù)據(jù)庫右圖設(shè)置自動(dòng)檢測字符集,避免中文亂碼主界面dbForge

Studio的主界面1、數(shù)據(jù)庫對(duì)象瀏覽區(qū)2、主功能區(qū)圖中顯示的是管理功能及其子功能3、信息顯示區(qū)執(zhí)行MySQL命令分3步進(jìn)行1、新建SQL編輯區(qū)2、輸入MySQL命令

3s、ho單w

d擊at執(zhí)ab行as按es;鈕

“!Execute”

然后在右下方的“信息顯示區(qū)”可以看到執(zhí)行的結(jié)果注:在圖形界面里,有時(shí)行末分號(hào)可以省略,但不建議省略1.2.5安裝相關(guān)的常見問題見附錄E在線提供如果您有問題,可向作者提出,作者還可能將你的問題加到這里呢目錄任務(wù)3體驗(yàn)MySQL任務(wù)1認(rèn)識(shí)MySQL任務(wù)2安裝、配置和使用MySQL任務(wù)3體驗(yàn)MySQL氣象記錄數(shù)據(jù)庫分析實(shí)訓(xùn)輔助工具——Jitor校驗(yàn)器【實(shí)訓(xùn)1–1】體驗(yàn)MySQL——?dú)庀笥涗洈?shù)據(jù)庫任務(wù)4理解數(shù)據(jù)庫1.3.1氣象記錄數(shù)據(jù)庫分析氣象數(shù)據(jù)庫的數(shù)據(jù)根據(jù)上述數(shù)據(jù)設(shè)計(jì)的數(shù)據(jù)庫結(jié)構(gòu)注:將在第3章詳細(xì)講解如何進(jìn)行數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì)微課:1-4體驗(yàn)

MySQL(一)氣象記錄數(shù)據(jù)庫的設(shè)計(jì)1.3.1氣象記錄數(shù)據(jù)庫分析(續(xù))氣象記錄數(shù)據(jù)庫用于保存和維護(hù)氣象數(shù)據(jù),并提供查詢功能,設(shè)計(jì)如下圖所示氣象記錄數(shù)據(jù)庫命名為weather序號(hào)是一個(gè)整數(shù),自動(dòng)進(jìn)行編號(hào),無需輸入日期和時(shí)間只允許輸入日期和時(shí)間觀測點(diǎn)是文本類型,最長60個(gè)字符溫度(℃)是一個(gè)實(shí)數(shù),有一位小數(shù)風(fēng)速(級(jí))是一個(gè)整數(shù),暫時(shí)沒有要求id_weather_datacol_date_timecol_locationcol_temperaturecol_wind_speed氣象記錄數(shù)據(jù)表命名為

weather_data1.3.2實(shí)訓(xùn)輔助工具——Jitor校驗(yàn)器在進(jìn)行實(shí)訓(xùn)之前,先介紹本書的配套軟件——Jitor校驗(yàn)器Jitor校驗(yàn)器提供在線實(shí)訓(xùn)指導(dǎo)材料,本書所有實(shí)訓(xùn)需要在它的輔助下完成Jitor校驗(yàn)器是“Jitor實(shí)訓(xùn)教學(xué)平臺(tái)”的客戶端(/)Jitor校驗(yàn)器的用途Jitor校驗(yàn)器在線提供圖文并茂的實(shí)訓(xùn)指導(dǎo)材料檢查學(xué)生的每一步操作為本書提供近百個(gè)實(shí)訓(xùn)實(shí)訓(xùn)的用途上課講授:老師演示用機(jī)房實(shí)訓(xùn):學(xué)生在機(jī)房完成作業(yè):學(xué)生在課后完成測試:在測試時(shí)間內(nèi)完成自學(xué)拓展:不計(jì)入總評(píng)成績使用Jitor校驗(yàn)器做中學(xué),強(qiáng)調(diào)動(dòng)手操作每一位學(xué)生都要?jiǎng)邮肿雒恳还?jié)的課上都要?jiǎng)邮肿雒恳还?jié)的課后都要?jiǎng)邮肿鲎鐾暌徊?,再做一步每一步驟都有詳細(xì)指導(dǎo)校驗(yàn)成功,得7分,繼續(xù)下一步校驗(yàn)失敗,倒扣1分,重做直到成功右圖截屏含有三個(gè)步驟每個(gè)步驟有指導(dǎo)說明每個(gè)步驟通過后才能繼續(xù)下一步使用Jitor實(shí)訓(xùn)教學(xué)平臺(tái)教師端管理工具,界面如下圖使用Jitor實(shí)訓(xùn)教學(xué)平臺(tái)(續(xù))教師端管理工具功能簡介班級(jí)管理在第一次上課前創(chuàng)建班級(jí),這種班級(jí)是教學(xué)班,而不是行政班平時(shí)教學(xué)過程中,可以向班級(jí)發(fā)布通知學(xué)生管理向班級(jí)添加學(xué)生名單,如果一位學(xué)生在Jitor中有多門課程,每門課程都有一個(gè)賬號(hào)需要時(shí),可以修改學(xué)生的密碼實(shí)訓(xùn)安排為一個(gè)班級(jí)安排實(shí)訓(xùn),從本書提供的實(shí)訓(xùn)中選擇,也可以建立實(shí)訓(xùn)的副本指定每個(gè)實(shí)訓(xùn)的開始時(shí)間,和結(jié)束時(shí)間,學(xué)生只能在這個(gè)時(shí)間段內(nèi)完成指定每個(gè)實(shí)訓(xùn)的用途,學(xué)期總評(píng)成績將根據(jù)實(shí)訓(xùn)用途進(jìn)行分類統(tǒng)計(jì)成績成績統(tǒng)計(jì)實(shí)時(shí)查看學(xué)生實(shí)訓(xùn)的進(jìn)度,及時(shí)進(jìn)行輔導(dǎo)導(dǎo)出學(xué)期的期末總評(píng)成績(機(jī)房實(shí)訓(xùn)30%、作業(yè)30%、測試30%、考勤10%)1.3.3【實(shí)訓(xùn)1–1】體驗(yàn)MySQL——?dú)庀笥涗洈?shù)據(jù)庫本實(shí)訓(xùn)需要使用Jitor校驗(yàn)器從“Jitor實(shí)訓(xùn)教學(xué)平臺(tái)”下載“Jitor校驗(yàn)器”解壓到根目錄,而不能解壓到子目錄中雙擊其中的“JitorSTART.bat”文件,啟動(dòng)“Jitor校驗(yàn)器”使用教師提供的賬號(hào)和密碼登錄,可以看到實(shí)訓(xùn)列表單擊打開“【實(shí)訓(xùn)1–1】體驗(yàn)MySQL——?dú)庀笥涗洈?shù)據(jù)庫”根據(jù)Jitor校驗(yàn)器的要求,完成實(shí)訓(xùn)微課:1-5體驗(yàn)

MySQL(二)氣象記錄數(shù)據(jù)庫的實(shí)施【實(shí)訓(xùn)1-1】播放微課播放微課:體驗(yàn)MySQL(二)氣象記錄數(shù)據(jù)庫的實(shí)施需要的讀者可以預(yù)先下載:微課下載提取碼:12341.3.3【實(shí)訓(xùn)1–1】體驗(yàn)MySQL——?dú)庀笥涗洈?shù)據(jù)庫(續(xù))根據(jù)Jitor校驗(yàn)器的要求,打開dbForge,完成實(shí)訓(xùn)第1步實(shí)訓(xùn)內(nèi)容介紹第2步創(chuàng)建數(shù)據(jù)庫:數(shù)據(jù)庫名weather第3步創(chuàng)建數(shù)據(jù)表:按要求創(chuàng)建數(shù)據(jù)表,名為weather_data,注意數(shù)據(jù)類型及其他要求第4步輸入數(shù)據(jù):輸入表1.6所示的數(shù)據(jù)第5步查詢數(shù)據(jù):按要求生成查詢語句,并從瀏覽器查看數(shù)據(jù),需要Jitor校驗(yàn)器的支持第6步修改數(shù)據(jù):按要求修改數(shù)據(jù)第7步實(shí)訓(xùn)總結(jié)

注意:不要手工輸入數(shù)據(jù)庫名、表名、以及數(shù)據(jù),要從Jitor指導(dǎo)材料中復(fù)制,以免打字錯(cuò)誤(錯(cuò)了要倒扣分的)主鍵許多細(xì)節(jié)在微課中已經(jīng)作了講解,同學(xué)們應(yīng)該在實(shí)訓(xùn)過程中加以理解這里講一個(gè)最重要的概念,在課本的第19頁第一次提到主鍵不能有重復(fù)的值,也不能為空就是說它必須有一個(gè)唯一的值,用來標(biāo)識(shí)這一行例如,每一個(gè)人的信息可以用身份證號(hào)來唯一標(biāo)識(shí),這個(gè)身份證號(hào)就是主鍵主鍵目錄任務(wù)4理解數(shù)據(jù)庫任務(wù)1認(rèn)識(shí)MySQL任務(wù)2安裝、配置和使用MySQL任務(wù)3體驗(yàn)MySQL任務(wù)4理解數(shù)據(jù)庫理解氣象記錄數(shù)據(jù)庫數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫系統(tǒng)SQL和NoSQL1.4.1理解氣象記錄數(shù)據(jù)庫在氣象記錄數(shù)據(jù)庫中我們做了什么?在MySQL中創(chuàng)建名為weather的數(shù)據(jù)庫、名為weather_data的表,并錄入下面的數(shù)據(jù)數(shù)據(jù)庫管理系統(tǒng)

用于設(shè)計(jì)、組織、管理數(shù)據(jù)然后訪問者可以通過網(wǎng)站來訪問這些數(shù)據(jù)應(yīng)用程序用于查詢、展示數(shù)據(jù)1.4.2數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)(Data)是對(duì)客觀事物的描述,這些數(shù)據(jù)可以是數(shù)字,也可以是文字、圖像、音頻、視頻等數(shù)據(jù)庫(Database,DB)

是存儲(chǔ)在計(jì)算機(jī)上的有組織的、可共享的數(shù)據(jù)的集合。這些數(shù)據(jù)以一定的方式儲(chǔ)存在一起、能為多個(gè)用戶共享、具有盡可能小的冗余度,是與應(yīng)用程序彼此獨(dú)立的數(shù)據(jù)集合1.4.3數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(Database

Management

System,DBMS)是為管理數(shù)據(jù)庫而設(shè)計(jì)的通用軟件系統(tǒng)DBMS的四大功能1.數(shù)據(jù)定義功能——數(shù)據(jù)定義語言(DDL)定義數(shù)據(jù)庫中數(shù)據(jù)的組織形式,即數(shù)據(jù)結(jié)構(gòu),如定義數(shù)據(jù)庫、數(shù)據(jù)表、視圖和索引等2.數(shù)據(jù)操縱功能——數(shù)據(jù)操縱語言(DML)操縱數(shù)據(jù)庫中的數(shù)據(jù),實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中數(shù)據(jù)的插入、更新與刪除等操作3.數(shù)據(jù)查詢功能——數(shù)據(jù)查詢語言(DQL)查詢數(shù)據(jù)庫中的數(shù)據(jù),實(shí)現(xiàn)查詢、統(tǒng)計(jì)和分析等各種靈活的查詢操作4.管理和維護(hù)功能——數(shù)據(jù)控制語言(DCL)確保數(shù)據(jù)庫的安全性、完整性,以及數(shù)據(jù)的備份、恢復(fù),確保數(shù)據(jù)庫的穩(wěn)定運(yùn)行本書就是講解這四大功能全書概覽——【基礎(chǔ)篇】講解數(shù)據(jù)庫的入門知識(shí)和一些基礎(chǔ)概念講解數(shù)據(jù)定義語言DDL,即關(guān)系數(shù)據(jù)庫講解數(shù)據(jù)操縱語言DML,即對(duì)數(shù)據(jù)庫的增、刪、改操作

講解數(shù)據(jù)查詢語言DQL,即對(duì)數(shù)據(jù)庫的查詢、統(tǒng)計(jì)、分析全書概覽——【提高篇】帶領(lǐng)讀者體驗(yàn)一個(gè)案例的完整開發(fā)過程用案例繼續(xù)講解數(shù)據(jù)定義語言DDL用案例深入講解數(shù)據(jù)查詢語言DQL,是查詢的提高部分綜合運(yùn)用DDL、DML和DQL,進(jìn)行編程開發(fā)全書概覽——【管理篇】講解數(shù)據(jù)庫的運(yùn)維管理講解數(shù)據(jù)控制語言DCL,安全管理部分講解數(shù)據(jù)控制語言DCL,日常管理部分?jǐn)?shù)據(jù)、信息和知識(shí)右圖是一個(gè)形象的比喻

數(shù)據(jù)庫是一個(gè)管理數(shù)據(jù)、信息和知識(shí)的工具

在這個(gè)基礎(chǔ)上,進(jìn)行分析,可以得到洞見和智慧,但是要避免走入歧途1.4.4數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫系統(tǒng)(Database

System,DBS)

由計(jì)算機(jī)軟硬件系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫、數(shù)據(jù)庫應(yīng)用程序、使用人員五個(gè)部分組成,1.4.4數(shù)據(jù)庫系統(tǒng)(續(xù))1.計(jì)算機(jī)軟硬件系統(tǒng)

計(jì)算機(jī)硬件系統(tǒng)是指計(jì)算機(jī)設(shè)備、服務(wù)器(數(shù)據(jù)庫服務(wù)器、應(yīng)用程序服務(wù)器等)、網(wǎng)絡(luò)設(shè)備等計(jì)算機(jī)軟件系統(tǒng)是指操作系統(tǒng)和軟件支撐環(huán)境圖1.35中所用到的硬件、網(wǎng)絡(luò)、系統(tǒng)軟件都屬于這一類2.?dāng)?shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)是管理和操縱數(shù)據(jù)庫的軟件系統(tǒng),是數(shù)據(jù)庫系統(tǒng)的核心“1.4.3數(shù)據(jù)庫管理系統(tǒng)”小節(jié)對(duì)此做過詳細(xì)的討論數(shù)據(jù)庫管理系統(tǒng)(軟件)是安裝在數(shù)據(jù)庫服務(wù)器(硬件)上的1.4.4數(shù)據(jù)庫系統(tǒng)(續(xù)二)3.?dāng)?shù)據(jù)庫

數(shù)據(jù)庫是由數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建的,包含了數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù),它通常是由一組文件構(gòu)成的

數(shù)據(jù)庫管理系統(tǒng)是通用軟件,可用于各種應(yīng)用需求。而數(shù)據(jù)庫則是針對(duì)具體的應(yīng)用需求,由開發(fā)人員采用某種數(shù)據(jù)庫管理系統(tǒng)設(shè)計(jì)的滿足應(yīng)用需求的數(shù)據(jù)結(jié)構(gòu),以及保存在其中的數(shù)據(jù),可供進(jìn)一步的處理和應(yīng)用

例如,在MySQL中可以創(chuàng)建多個(gè)數(shù)據(jù)庫(如氣象記錄數(shù)據(jù)庫的weather數(shù)據(jù)庫)。通常每個(gè)數(shù)據(jù)庫是一個(gè)實(shí)際的項(xiàng)目,每個(gè)項(xiàng)目會(huì)有不同的用途,例如學(xué)生管理數(shù)據(jù)庫、財(cái)務(wù)管理數(shù)據(jù)庫、圖書借閱數(shù)據(jù)庫等通常情況下,數(shù)據(jù)庫一詞可以用來表示數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)以及數(shù)據(jù)庫系統(tǒng)等多種意思,需要根據(jù)應(yīng)用場景進(jìn)行判斷。1.4.4數(shù)據(jù)庫系統(tǒng)(續(xù)三)4.?dāng)?shù)據(jù)庫應(yīng)用程序

數(shù)據(jù)庫應(yīng)用程序是為方便用戶操縱和維護(hù)數(shù)據(jù)庫中的數(shù)據(jù)而開發(fā)的應(yīng)用程序,提供友好的界面,允許用戶方便地插入、更新、刪除數(shù)據(jù),以及查詢數(shù)據(jù)庫中的數(shù)據(jù)數(shù)據(jù)庫應(yīng)用程序通過數(shù)據(jù)庫管理系統(tǒng)對(duì)數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行操作數(shù)據(jù)庫應(yīng)用程序是安裝在應(yīng)用程序服務(wù)器上的

常用的數(shù)據(jù)庫應(yīng)用程序開發(fā)語言有PHP、Java、Delphi和C#等。例如,圖1.33所示的就是一個(gè)簡單的應(yīng)用程序,是用Java語言開發(fā)的1.4.4數(shù)據(jù)庫系統(tǒng)(續(xù)四)5.使用人員使用數(shù)據(jù)庫的人員分為3類:數(shù)據(jù)庫管理員、數(shù)據(jù)庫應(yīng)用程序開發(fā)人員和終端用戶。數(shù)據(jù)庫管理員(Database

Administrator,DBA)是管理數(shù)據(jù)庫系統(tǒng)的人員,他們的主要任務(wù)是負(fù)責(zé)數(shù)據(jù)庫的日常維護(hù)和安全,保障數(shù)據(jù)庫的正常運(yùn)行。數(shù)據(jù)庫應(yīng)用程序開發(fā)人員根據(jù)數(shù)據(jù)庫應(yīng)用的具體需求,設(shè)計(jì)數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu),設(shè)計(jì)和編寫數(shù)據(jù)庫應(yīng)用程序中各功能模塊的界面與程序代碼。終端用戶是最終使用數(shù)據(jù)庫應(yīng)用程序的人員,終端用戶可以通過計(jì)算機(jī)或手機(jī)來使用數(shù)據(jù)庫應(yīng)用程序。例如,對(duì)于醫(yī)院管理系統(tǒng),終端用戶是醫(yī)生和護(hù)士等;對(duì)于學(xué)生管理系統(tǒng),終端用戶是教師和學(xué)生,以及管理人員。1.4.5

SQL和NoSQL關(guān)系數(shù)據(jù)庫管理系統(tǒng)(SQL)

SQL(結(jié)構(gòu)化查詢語言,Structured

Query

Language)是一種實(shí)現(xiàn)關(guān)系操作的語言,它是基于嚴(yán)格的數(shù)學(xué)理論的,因此關(guān)系數(shù)據(jù)庫是有堅(jiān)實(shí)的數(shù)學(xué)理論基礎(chǔ)的所有基于SQL的都是關(guān)系數(shù)據(jù)庫管理系統(tǒng)NoSQL用于管理不適合使用SQL進(jìn)行管理的數(shù)據(jù),針對(duì)不同的數(shù)據(jù)有不同的NoSQL每種NoSQL數(shù)據(jù)庫都有各自的特點(diǎn),適用于不同種類的特殊數(shù)據(jù)以及不同的處理要求1.關(guān)系數(shù)據(jù)庫管理系統(tǒng)

SQL(Structured

Query

Language,結(jié)構(gòu)化查詢語言)是一種實(shí)現(xiàn)關(guān)系操作的語言,它是基于嚴(yán)格的數(shù)學(xué)理論的,因此關(guān)系數(shù)據(jù)庫是有堅(jiān)實(shí)的數(shù)學(xué)理論基礎(chǔ)的。學(xué)好了SQL,就基本

可以使用各種關(guān)系數(shù)據(jù)庫管理系統(tǒng)了。

SQL是在20世紀(jì)70年代隨著關(guān)系數(shù)據(jù)庫的出現(xiàn)而產(chǎn)生的,1986年ANSI將其制訂為標(biāo)準(zhǔn)

SQL-86,隨后ISO組織也采用這個(gè)標(biāo)準(zhǔn),稱其為SQL-87。

SQL是一種國際標(biāo)準(zhǔn),是一種非常成熟的語言,一般所說的支持SQL標(biāo)準(zhǔn)通常是指支持

SQL-92或SQL-99標(biāo)準(zhǔn),所有關(guān)系數(shù)據(jù)庫管理系統(tǒng)都是基于SQL的。關(guān)系數(shù)據(jù)庫管理系統(tǒng)適用于對(duì)傳統(tǒng)數(shù)據(jù)的處理,以數(shù)字和普通的文字為主,例如財(cái)務(wù)系統(tǒng)、銷售系統(tǒng)、銀行系統(tǒng),以及各種管理系統(tǒng)等等。典型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)有MySQL、SQL

Server、Oracle、DB2和SQLite等。1.關(guān)系數(shù)據(jù)庫管理系統(tǒng)(續(xù))最重要的版本是SQL92和SQL99,這說明SQL語言是一種非常成熟的語言2.非關(guān)系數(shù)據(jù)庫管理系統(tǒng)

關(guān)系數(shù)據(jù)庫可以處理大多數(shù)種類的數(shù)據(jù),但是有些種類的數(shù)據(jù)或處理要求無法使用關(guān)系數(shù)據(jù)庫來實(shí)現(xiàn),這時(shí)需要用非關(guān)系數(shù)據(jù)庫。每一種非關(guān)系數(shù)據(jù)庫都有各自的特點(diǎn),適合不同種類的特殊數(shù)據(jù)以及不同的處理要求。

非關(guān)系數(shù)據(jù)庫管理系統(tǒng)適用于對(duì)非傳統(tǒng)的數(shù)據(jù)的處理,如長文本、圖像、音頻、視頻,用于滿足新的業(yè)務(wù)需求。典型的關(guān)系數(shù)據(jù)庫管理系統(tǒng)有MongoDB、BigTable等,根據(jù)所處理數(shù)據(jù)的特點(diǎn)的不同和所采用技術(shù)的不同,還可細(xì)分為多種類型。小結(jié)項(xiàng)目1了解數(shù)據(jù)庫——?dú)庀笥涗洈?shù)據(jù)庫任務(wù)1認(rèn)識(shí)MySQL認(rèn)識(shí)MySQL,并與SQL

Server、Oracle和SQLite進(jìn)行比較任務(wù)2安裝、配置和使用MySQL學(xué)會(huì)安裝和配置MySQL,了解用命令行方式使用MySQL任務(wù)3體驗(yàn)MySQL通過氣象記錄數(shù)據(jù)庫,了解創(chuàng)建數(shù)據(jù)庫、表,錄入數(shù)據(jù)和查詢數(shù)據(jù)的過程任務(wù)4理解數(shù)據(jù)庫數(shù)據(jù)、數(shù)據(jù)庫、數(shù)據(jù)庫管理系統(tǒng)、數(shù)據(jù)庫系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)的四大功能數(shù)據(jù)定義語言(DDL)數(shù)據(jù)操縱語言(DML)數(shù)據(jù)查詢語言(DQL)數(shù)據(jù)控制語言(DCL)看思維導(dǎo)圖,總結(jié)項(xiàng)目1小結(jié)謝謝大家!項(xiàng)目2認(rèn)識(shí)數(shù)據(jù)庫——聯(lián)系人數(shù)據(jù)庫目錄任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)需求分析數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)命名規(guī)范任務(wù)2理解MySQL的數(shù)據(jù)類型任務(wù)3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表任務(wù)4操縱數(shù)據(jù)和查詢數(shù)據(jù)任務(wù)5理解主鍵和外鍵2.1.1需求分析需求分析

項(xiàng)目開發(fā)的第一步是對(duì)項(xiàng)目進(jìn)行分析,看看這個(gè)項(xiàng)目有哪些需求,開發(fā)一個(gè)項(xiàng)目的最終目標(biāo)就是滿足這些需求開發(fā)的過程就是根據(jù)需求,設(shè)計(jì)規(guī)范的數(shù)據(jù)結(jié)構(gòu),并加以實(shí)施,以滿足這些需求寫一篇作文之前要審題,做一道數(shù)學(xué)題之前也要審題同樣,在開發(fā)一個(gè)項(xiàng)目之前也要審題,這個(gè)審題的過程就是需求分析。項(xiàng)目概述名稱:聯(lián)系人項(xiàng)目數(shù)據(jù)庫名稱:contact需求概述:管理個(gè)人用的聯(lián)系人信息,要求使用方便、容易查找、不易出錯(cuò)收集到的數(shù)據(jù):見下表2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)方案一:簡單但有缺陷的設(shè)計(jì)缺陷一:聯(lián)系人信息中姓名是重復(fù)的,如果為一個(gè)已有的聯(lián)系人增加一個(gè)聯(lián)系方式時(shí),是否可以避免重復(fù)輸入姓名?

缺陷二:聯(lián)系人類型有更多的重復(fù),并且聯(lián)系人類型一般不會(huì)超過10種(如同學(xué)、同事和親屬等),是否可以把聯(lián)系人類型固定下來,輸入時(shí)只需要選擇即可,這樣還可以避免出現(xiàn)含義相同的類型(如親屬和親戚是同義詞)。2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))方案二:復(fù)雜但完美的設(shè)計(jì)設(shè)計(jì)原則:消除重復(fù)數(shù)據(jù)解決辦法:拆分表步驟一(a):將電話數(shù)據(jù)拆分出來,消除了姓名的重復(fù),但聯(lián)系人類型還有重復(fù)人員表:保存姓名和聯(lián)系人類型電話表:保存聯(lián)系方式和說明每張表都有一個(gè)主鍵(類似于序號(hào))2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))步驟一(b):再將聯(lián)系人類型數(shù)據(jù)拆分出來,消除聯(lián)系人類型的重復(fù)人員表:新的人員表,保存姓名類型表:保存聯(lián)系人類型這時(shí)再也沒有重復(fù)數(shù)據(jù),拆分完畢2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))步驟一的結(jié)果拆分成為3張表

拆分后,不再出現(xiàn)重復(fù)的數(shù)據(jù)。例如“姓名”列和“聯(lián)系人類型”列都不再有重復(fù)的數(shù)據(jù),在輸入數(shù)據(jù)時(shí),不需要重復(fù)輸入。

拆分后,每張表都是獨(dú)立的,具有獨(dú)立的含義,簡化了數(shù)據(jù)結(jié)構(gòu)。例如聯(lián)系人類型、聯(lián)系人姓名和聯(lián)系方式三者都具有獨(dú)立的含義。2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))

通過拆分表,解決了前面提到的兩個(gè)缺陷,但又出現(xiàn)了新問題:將聯(lián)系人信息拆分為3張表(電話表、人員表和類型表)之后,如何將它們聯(lián)系起來成為一個(gè)整體?

解決的辦法是建立它們之間的聯(lián)系(Relationship)。建立聯(lián)系時(shí)要考慮以下兩個(gè)問題哪張表和哪張表有聯(lián)系?聯(lián)系的類型是什么?有聯(lián)系的兩張表如何關(guān)聯(lián)起來?這是步驟二要解決的問題第1個(gè)問題:聯(lián)系以及聯(lián)系的類型

現(xiàn)在一共有3張表:電話表、人員表和類型表。3張表的兩兩組合共有3種,下面分析每個(gè)組合的聯(lián)系,這3種組合如下。類型表和人員表:有主從聯(lián)系,人員是從屬于類型的。類型表是主表,人員表是從表。一個(gè)人只屬于一種聯(lián)系人類型,一種聯(lián)系人類型可以有多個(gè)人。在關(guān)系數(shù)據(jù)庫理論中,這種聯(lián)系稱為一對(duì)多的聯(lián)系,“一”的一方是類型表,是主表(也稱為父表),“多”的一方是人員表,是從表(也稱為子表)。人員表和電話表:有主從聯(lián)系,電話是從屬于人員的。人員表是主表,電話表是從表。一個(gè)人有多種聯(lián)系方式,一種聯(lián)系方式只屬于一個(gè)人,也是一對(duì)多的聯(lián)系,“一”的一方是人員表,是主表(父表),“多”的一方是電話表,是從表(子表)。類型表和電話表:沒有直接的聯(lián)系,兩者需要通過人員表間接關(guān)聯(lián)起來。第2個(gè)問題:表與表之間的關(guān)聯(lián)先以人員表和類型表為例來討論,講解如何建立它們之間的多對(duì)一聯(lián)系。

對(duì)于人員表中的每個(gè)人,都應(yīng)該有一個(gè)聯(lián)系人類型,原來是用文字表示的,現(xiàn)在可以用類型表中的主鍵來表示,那么人員表(從表)就需要增加一列(或代替原來的“聯(lián)系人類型”列),這個(gè)列的值是類型表中的主鍵的值。經(jīng)過修改,人員表(見表2.5)和類型表(見表2.6)成為表2.7和表2.8所示的兩張表。在關(guān)系數(shù)據(jù)庫理論中,這個(gè)新增的列稱為外鍵。外鍵的作用是建立表與表之間的聯(lián)系,將從表與主表關(guān)聯(lián)起來,從表的外鍵參照(也稱為引用)主表的主鍵。外鍵與主鍵

這里講了一個(gè)重要的概念,在課本第31頁第一次講解外鍵參照另一張表的主鍵的值

就是說它的值必須是另一張表的主鍵值中的一個(gè)就像每個(gè)兒子都有父親一樣參照reference也翻譯為引用

項(xiàng)目一講了一個(gè)最重要的概念,在課本的第19頁第一次講解主鍵不能有重復(fù)的值,也不能為空

就是說它必須有一個(gè)唯一的值,用來標(biāo)識(shí)這一行

例如數(shù)據(jù)庫中,每一個(gè)人的信息可以用身份證號(hào)來唯一標(biāo)識(shí)主鍵外鍵理解主鍵與外鍵張三的外鍵1引用類型表的主鍵1,因此他的類型是“常用聯(lián)系人”李四的外鍵2引用類型表的主鍵2,因此他的類型是“朋友”王五的外鍵3引用類型表的主鍵3,因此他的類型是“同事”趙六的外鍵3引用類型表的主鍵3,因此他的類型也是“同事”2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))按照同樣的道理,可以建立電話表與人員表的聯(lián)系電話表人員表2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))這是步驟二的結(jié)果建立了聯(lián)系的

3張表與原始數(shù)據(jù)比較一下電話表人員表類型表2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)(續(xù))根據(jù)前面的分析結(jié)果,可以得到下述數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)的成果2.1.3命名規(guī)范本書的命名規(guī)范不同的公司對(duì)命名規(guī)范的要求會(huì)有所不同,應(yīng)該嚴(yán)格按照規(guī)范進(jìn)行命名目錄任務(wù)2理解MySQL的數(shù)據(jù)類型任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)2理解MySQL的數(shù)據(jù)類型2.2.1整型浮點(diǎn)型和精確浮點(diǎn)型日期和時(shí)間類型字符串類型任務(wù)3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表任務(wù)4操縱數(shù)據(jù)和查詢數(shù)據(jù)任務(wù)5理解主鍵和外鍵2.2.1整型微整型tinyint、短整型smallint、中整型mediumint、整型int、和大整型bigint常用的是微整型tinyint和整型int兩種微整型tinyint:通常用于保存范圍很小的數(shù)值,取值范圍是-128~127。

整型int:取值范圍大約是-20億~20億。如果要精確地保存全世界的人口數(shù),則要用大整型bigint。

定義整型時(shí)可以同時(shí)指定顯示時(shí)的寬度,例如int(11)和tinyint(4),指定顯示寬度并不影響內(nèi)部的存儲(chǔ)格式。如果使用的是MySQL

8.0,則不允許指定顯示時(shí)的寬度(會(huì)引起出錯(cuò))2.2.2浮點(diǎn)型和精確浮點(diǎn)型浮點(diǎn)型:有兩種,可能有誤差,不建議使用Float:單精度Double:雙精度精確浮點(diǎn)型:建議使用Decimal:它有一個(gè)別名Numeric,兩者同義如果使用的是MySQL

8.0,float和double不允許指定顯示時(shí)的寬度2.2.3日期和時(shí)間類型根據(jù)不同的需求,可以在5種與日期時(shí)間有關(guān)的類型中選擇Datetime和Timestamp都含有日期和時(shí)間信息,兩者的區(qū)別如下Datetime:不含時(shí)區(qū)信息,可表示的年份跨度大Timestamp:包含時(shí)區(qū)信息,可表示的年份跨度小一些2.2.4字符串類型通常只使用varchar(n)一種,只有對(duì)于定長的字符串,才會(huì)用char(n)不要使用各種text類型指定列類型長度時(shí)漢字和英文字母同等對(duì)待,例如varchar(10)的列可以保存10個(gè)字母或10個(gè)漢字但是字母(如"abc")和漢字("三個(gè)字")占用的字節(jié)數(shù)是不同的,求長度時(shí)返回的長度值也不同MySQL沒有字符類型,字符類型相當(dāng)于char(1)目錄任務(wù)3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)任務(wù)2理解MySQL的數(shù)據(jù)類型

任務(wù)3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表理解MySQL字符集【實(shí)訓(xùn)2–1】創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表任務(wù)4操縱數(shù)據(jù)和查詢數(shù)據(jù)任務(wù)5理解主鍵和外鍵2.3.1理解MySQL字符集字符集(Character

Set,簡寫為Charset)

字符編碼中的所有字符,指定字符編碼的同時(shí)也就指定了字符集。在中文里,常用的字符編碼是utf8,這幾乎是唯一應(yīng)該使用的字符集。在MySQL

8中,還細(xì)分為utf8mb3和utf8mb4,這時(shí)建議使用utf8mb4。如果字符集設(shè)置錯(cuò)誤,將可能出現(xiàn)中文亂碼的現(xiàn)象。校對(duì)(Collation)字符的排序規(guī)則例如英文的排序有兩種規(guī)則區(qū)分大小寫的排序不區(qū)分大小寫的排序。中文亂碼的原因當(dāng)輸入輸出的字符集與數(shù)據(jù)庫的字符集不同時(shí),就會(huì)出現(xiàn)中文亂碼數(shù)據(jù)庫通常設(shè)置為utf8,當(dāng)輸入輸出不是utf8時(shí),就會(huì)出現(xiàn)亂碼例如Windows操作系統(tǒng)的字符集是GBK,這時(shí)就會(huì)出現(xiàn)亂碼解決辦法是設(shè)置MySQL客戶端,讓客戶端的連接對(duì)字符集進(jìn)行轉(zhuǎn)換例子見教材第13頁“圖1.21設(shè)置連接參數(shù)(自動(dòng)選擇字符集)”在MySQL客戶端上可以用下述命令來解決中文亂碼set

names

"GBK";數(shù)據(jù)庫輸入(鍵盤)輸出(顯示器)連接2.3.2【實(shí)訓(xùn)2–1】創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表觀看教材第37頁的微課然后根據(jù)Jitor校驗(yàn)器的要求,在圖形界面上一步一步完成下述任務(wù)1、創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)庫名contact,注意選擇正確的字符集2、創(chuàng)建數(shù)據(jù)表3張表:類型類、人員表、和電話表,注意主鍵和外鍵3、建立表與表之間的聯(lián)系類型類和人員表:人員表的外鍵id_contact_type參照類型表的主鍵id_contact_type人員表和電話表:電話表的外鍵id_contact參照人員表的主鍵id

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論