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

下載本文檔

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

文檔簡介

項目1了解數(shù)據(jù)庫——氣象記錄數(shù)據(jù)庫目錄任務(wù)1認識MySQL任務(wù)1認識MySQL數(shù)據(jù)庫引擎排行榜MySQL與其他數(shù)據(jù)庫管理系統(tǒng)的比較任務(wù)2安裝、配置和使用MySQL任務(wù)3體驗MySQL任務(wù)4理解數(shù)據(jù)庫任務(wù)1認識MySQLMySQL是一種數(shù)據(jù)庫管理系統(tǒng)軟件什么是數(shù)據(jù)庫?集中保存數(shù)據(jù)的地方通常是一個目錄下的一組文件就象超市后面的倉庫生活中哪里用到數(shù)據(jù)庫?數(shù)據(jù)無處不在,需要收集、處理、分析和使用例如手機APP,幾乎每個APP的后面都有數(shù)據(jù)庫的支持?jǐn)?shù)據(jù)庫技術(shù)是軟件和計算機相關(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ù)字、日期時間和簡單的文本非關(guān)系數(shù)據(jù)庫管理系統(tǒng)

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

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

2011年Oracle公司開始推出收費的企業(yè)版和免費的社區(qū)版目前最新版本是8.0.xxMySQL版本介紹版本新增功能5.0存儲過程、游標(biāo)、觸發(fā)器、查詢優(yōu)化以及分布式事務(wù)功能等5.1事件(一種定時任務(wù))、分區(qū),基于行的復(fù)制等5.5一次重要的升級,默認存儲引擎更改為InnoDB、提高性能和可擴展性以及其他改進5.6InnoDB性能加強以及其他改進5.7提升MySQL安全性以及其他改進,例如引入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直接安裝,采用默認選項即可安裝后的配置,主要有三項字符集設(shè)置為utf8(第6頁圖1.5)添加MySQL的路徑(第6頁圖1.6)管理員密碼(建議用sa作為密碼)(第7頁圖1.7)請觀看微課視頻另一種安裝選項安裝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控制臺,它是使用和管理數(shù)據(jù)庫的一個界面,通常從命令行窗口中啟動它mysqld.exe:MySQL服務(wù)器(其中字母d表示服務(wù)守護程序),它是數(shù)據(jù)庫管理系統(tǒng)的核心,提供了數(shù)據(jù)庫管理的所有功能,開機時它是自動啟動的。1.2.3使用MySQL命令行客戶端三種啟動MySQL命令行客戶端的辦法辦法一、直接雙擊mysql.exe文件 不建議使用辦法二、從開始菜單找到MySQL

5.5

Command

Line

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

root-p

啟動建議使用,因為容易看到出錯情況使用MySQL命令行客戶端建議使用第三種啟動MySQL命令行客戶端的辦法第一步:先打開“命令提示符”窗口方法1:Win+R打開“運行”窗口,輸入命令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盤符下(進入時的狀態(tài))這條命令行末可以有分號,也可以沒有退回Windows提示符后,可以按上光標(biāo)鍵,調(diào)出上次的命令,按回車鍵重復(fù)執(zhí)行小技巧:上下右左光標(biāo)鍵:調(diào)出用過的命令,修改后,再次執(zhí)行在Windows提示符和MySQL命令行客戶端上同樣有效常用的MySQL命令(二)show

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

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

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

connect

to

MySQL

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

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

denied

for

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

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

user

user()

identified

by

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

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

Navicat:本書也支持Navicat,附錄

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

PDF文件,點擊這里下載

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

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

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

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

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

3s、ho單w

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

“!Execute”

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

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

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

MySQL(二)氣象記錄數(shù)據(jù)庫的實施【實訓(xùn)1-1】播放微課播放微課:體驗MySQL(二)氣象記錄數(shù)據(jù)庫的實施需要的讀者可以預(yù)先下載:微課下載提取碼:12341.3.3【實訓(xùn)1–1】體驗MySQL——氣象記錄數(shù)據(jù)庫(續(xù))根據(jù)Jitor校驗器的要求,打開dbForge,完成實訓(xùn)第1步實訓(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校驗器的支持第6步修改數(shù)據(jù):按要求修改數(shù)據(jù)第7步實訓(xùn)總結(jié)

注意:不要手工輸入數(shù)據(jù)庫名、表名、以及數(shù)據(jù),要從Jitor指導(dǎo)材料中復(fù)制,以免打字錯誤(錯了要倒扣分的)主鍵許多細節(jié)在微課中已經(jīng)作了講解,同學(xué)們應(yīng)該在實訓(xùn)過程中加以理解這里講一個最重要的概念,在課本的第19頁第一次提到主鍵不能有重復(fù)的值,也不能為空就是說它必須有一個唯一的值,用來標(biāo)識這一行例如,每一個人的信息可以用身份證號來唯一標(biāo)識,這個身份證號就是主鍵主鍵目錄任務(wù)4理解數(shù)據(jù)庫任務(wù)1認識MySQL任務(wù)2安裝、配置和使用MySQL任務(wù)3體驗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è)計、組織、管理數(shù)據(jù)然后訪問者可以通過網(wǎng)站來訪問這些數(shù)據(jù)應(yīng)用程序用于查詢、展示數(shù)據(jù)1.4.2數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)(Data)是對客觀事物的描述,這些數(shù)據(jù)可以是數(shù)字,也可以是文字、圖像、音頻、視頻等數(shù)據(jù)庫(Database,DB)

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

Management

System,DBMS)是為管理數(shù)據(jù)庫而設(shè)計的通用軟件系統(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ù),實現(xiàn)對數(shù)據(jù)庫中數(shù)據(jù)的插入、更新與刪除等操作3.數(shù)據(jù)查詢功能——數(shù)據(jù)查詢語言(DQL)查詢數(shù)據(jù)庫中的數(shù)據(jù),實現(xiàn)查詢、統(tǒng)計和分析等各種靈活的查詢操作4.管理和維護功能——數(shù)據(jù)控制語言(DCL)確保數(shù)據(jù)庫的安全性、完整性,以及數(shù)據(jù)的備份、恢復(fù),確保數(shù)據(jù)庫的穩(wěn)定運行本書就是講解這四大功能全書概覽——【基礎(chǔ)篇】講解數(shù)據(jù)庫的入門知識和一些基礎(chǔ)概念講解數(shù)據(jù)定義語言DDL,即關(guān)系數(shù)據(jù)庫講解數(shù)據(jù)操縱語言DML,即對數(shù)據(jù)庫的增、刪、改操作

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

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

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

System,DBS)

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

計算機硬件系統(tǒng)是指計算機設(shè)備、服務(wù)器(數(shù)據(jù)庫服務(wù)器、應(yīng)用程序服務(wù)器等)、網(wǎng)絡(luò)設(shè)備等計算機軟件系統(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é)對此做過詳細的討論數(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ù)庫則是針對具體的應(yīng)用需求,由開發(fā)人員采用某種數(shù)據(jù)庫管理系統(tǒng)設(shè)計的滿足應(yīng)用需求的數(shù)據(jù)結(jié)構(gòu),以及保存在其中的數(shù)據(jù),可供進一步的處理和應(yīng)用

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

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

常用的數(shù)據(jù)庫應(yīng)用程序開發(fā)語言有PHP、Java、Delphi和C#等。例如,圖1.33所示的就是一個簡單的應(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ù)是負責(zé)數(shù)據(jù)庫的日常維護和安全,保障數(shù)據(jù)庫的正常運行。數(shù)據(jù)庫應(yīng)用程序開發(fā)人員根據(jù)數(shù)據(jù)庫應(yīng)用的具體需求,設(shè)計數(shù)據(jù)庫的數(shù)據(jù)結(jié)構(gòu),設(shè)計和編寫數(shù)據(jù)庫應(yīng)用程序中各功能模塊的界面與程序代碼。終端用戶是最終使用數(shù)據(jù)庫應(yīng)用程序的人員,終端用戶可以通過計算機或手機來使用數(shù)據(jù)庫應(yīng)用程序。例如,對于醫(yī)院管理系統(tǒng),終端用戶是醫(yī)生和護士等;對于學(xué)生管理系統(tǒng),終端用戶是教師和學(xué)生,以及管理人員。1.4.5

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

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

Query

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

SQL(Structured

Query

Language,結(jié)構(gòu)化查詢語言)是一種實現(xiàn)關(guān)系操作的語言,它是基于嚴(yán)格的數(shù)學(xué)理論的,因此關(guān)系數(shù)據(jù)庫是有堅實的數(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組織也采用這個標(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)適用于對傳統(tǒng)數(shù)據(jù)的處理,以數(shù)字和普通的文字為主,例如財務(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ù)庫來實現(xiàn),這時需要用非關(guān)系數(shù)據(jù)庫。每一種非關(guān)系數(shù)據(jù)庫都有各自的特點,適合不同種類的特殊數(shù)據(jù)以及不同的處理要求。

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

Server、Oracle和SQLite進行比較任務(wù)2安裝、配置和使用MySQL學(xué)會安裝和配置MySQL,了解用命令行方式使用MySQL任務(wù)3體驗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é)項目1小結(jié)謝謝大家!項目2認識數(shù)據(jù)庫——聯(lián)系人數(shù)據(jù)庫目錄任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計需求分析數(shù)據(jù)結(jié)構(gòu)設(shè)計命名規(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需求分析需求分析

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

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

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

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

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

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

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

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

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

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

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

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

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

3張表與原始數(shù)據(jù)比較一下電話表人員表類型表2.1.2數(shù)據(jù)結(jié)構(gòu)設(shè)計(續(xù))根據(jù)前面的分析結(jié)果,可以得到下述數(shù)據(jù)結(jié)構(gòu)設(shè)計的成果2.1.3命名規(guī)范本書的命名規(guī)范不同的公司對命名規(guī)范的要求會有所不同,應(yīng)該嚴(yán)格按照規(guī)范進行命名目錄任務(wù)2理解MySQL的數(shù)據(jù)類型任務(wù)1需求分析和數(shù)據(jù)結(jié)構(gòu)設(shè)計任務(wù)2理解MySQL的數(shù)據(jù)類型2.2.1整型浮點型和精確浮點型日期和時間類型字符串類型任務(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。

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

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

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

任務(wù)3創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表理解MySQL字符集【實訓(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)

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

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

names

"GBK";數(shù)據(jù)庫輸入(鍵盤)輸出(顯示器)連接2.3.2【實訓(xùn)2–1】創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表觀看教材第37頁的微課然后根據(jù)Jitor校驗器的要求,在圖形界面上一步一步完成下述任務(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等.壓縮文件請下載最新的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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論