數(shù)據(jù)庫(kù)概述、數(shù)據(jù)庫(kù)服務(wù)器和客戶端安裝
2.1數(shù)據(jù)庫(kù)概述
學(xué)習(xí)目標(biāo)
? 1. 能夠說(shuō)出什么是數(shù)據(jù)
? 2. 能夠說(shuō)出為什么要有數(shù)據(jù)庫(kù)
? 3. 能夠說(shuō)出什么是數(shù)據(jù)庫(kù)
? 4. 能夠說(shuō)出常用數(shù)據(jù)庫(kù)有哪些
? 5. 能夠說(shuō)出數(shù)據(jù)庫(kù)分為幾部分
? 6. 能夠說(shuō)出什么是關(guān)系型數(shù)據(jù)庫(kù)
? 7. 能夠說(shuō)出數(shù)據(jù)庫(kù)操作有哪些
--------------------------------------------------------------------------------
2.1.1 數(shù)據(jù)庫(kù)概述
數(shù)據(jù)需要小心的保存香罐,管理逸绎。這就需要使用到數(shù)據(jù)庫(kù)。
數(shù)據(jù)庫(kù)是在數(shù)據(jù)管理和程序開(kāi)發(fā)過(guò)程中淆游,一種非常重要的數(shù)據(jù)管理軟件傍睹,通過(guò)數(shù)據(jù)庫(kù),可以非常方便的對(duì)數(shù)據(jù)進(jìn)行管理操作犹菱。
2.1.2 什么是數(shù)據(jù)拾稳?
? 數(shù)據(jù)用來(lái)描述事物的特征,行為腊脱,記錄事物的狀態(tài)访得,過(guò)程,結(jié)果等等陕凹。
? ? ? 比如 一個(gè)人的姓名悍抑,姓別,年齡杜耙,職業(yè)搜骡,特長(zhǎng)等等,這些都是數(shù)據(jù)佑女。
? 從計(jì)算機(jī)角度來(lái)看记靡,數(shù)據(jù)體現(xiàn)在記錄現(xiàn)實(shí)數(shù)據(jù)信息的組織方式谈竿。
? ? ? 數(shù)據(jù)體現(xiàn)在:文本,圖片摸吠,表格空凸,視頻,音頻等等蜕便。都是以二進(jìn)進(jìn)制形式進(jìn)行存儲(chǔ)
以下我們所說(shuō)的數(shù)據(jù)劫恒,都是將現(xiàn)實(shí)信息轉(zhuǎn)換為計(jì)算機(jī)角度的表示形式。
2.1.3 什么是數(shù)據(jù)庫(kù)轿腺?
? 為什么會(huì)有數(shù)據(jù)庫(kù):
? ? ? 數(shù)據(jù)量越大两嘴,管理難度就越大。這時(shí)族壳,就需要一種管理組織方式憔辫,分門別類的將數(shù)據(jù)進(jìn)行保存,方便使用時(shí)的查找仿荆。
? 什么是數(shù)據(jù)庫(kù):
? ? ? 數(shù)據(jù)庫(kù)就是數(shù)據(jù)的倉(cāng)庫(kù)贰您,數(shù)據(jù)庫(kù)按照一定的數(shù)據(jù)格式,結(jié)構(gòu)來(lái)存儲(chǔ)數(shù)據(jù)拢操。方便數(shù)據(jù)和操作和管理锦亦。
2.1.4 數(shù)據(jù)庫(kù)管理數(shù)據(jù)和其它方式管理數(shù)據(jù)區(qū)別
? 內(nèi)存管理數(shù)據(jù)
? ? ? 優(yōu)點(diǎn):存取速度快
? ? ? 缺點(diǎn):斷電后數(shù)據(jù)不能保存
? 文件管理數(shù)據(jù)
? ? ? 優(yōu)點(diǎn):數(shù)據(jù)可以持久化保存
? ? ? 缺點(diǎn):讀取速度慢,數(shù)據(jù)組織格式不好控制
? 數(shù)據(jù)庫(kù)管理數(shù)據(jù)
? ? ? 優(yōu)點(diǎn):統(tǒng)一的數(shù)據(jù)組織格式 讀取速度快 容量大
? ? ? 缺點(diǎn):需要專門的管理軟件 需要一定的學(xué)習(xí)成本
2.1.5 數(shù)據(jù)庫(kù)如何管理數(shù)據(jù)
實(shí)際數(shù)據(jù)庫(kù)在管理數(shù)據(jù)時(shí)令境,也是管理文件的形式來(lái)進(jìn)行管理杠园,只是這些文件具有特定的文件格式。
如果要操作這些數(shù)據(jù)文件舔庶,需要通過(guò)專門的數(shù)據(jù)庫(kù)管理軟來(lái)進(jìn)行操作抛蚁。
? 數(shù)據(jù)庫(kù)管理軟件
? ? ? DBMS Database Management System 數(shù)據(jù)庫(kù)管理系統(tǒng),簡(jiǎn)稱DBMS 惕橙,是用來(lái)管理數(shù)據(jù)的專用軟件瞧甩。
? ? ? 數(shù)據(jù)庫(kù)在管理時(shí),通過(guò) DBMS 來(lái)操作數(shù)據(jù)庫(kù)文件弥鹦。
? ? ? 類似于 MS Office Excel 可以操作 .xls 的文件一樣肚逸。
? 使用者
? ? ? DBA Database Administrator 數(shù)據(jù)庫(kù)管理員
? ? ? Programmer 程序員
2.1.6 數(shù)據(jù)庫(kù)如何運(yùn)行?
DBS
? DBS Database System 數(shù)據(jù)庫(kù)系統(tǒng)惶凝,由幾部分組成吼虎,如下:
? ? ? DB Database? 數(shù)據(jù)庫(kù),真正用來(lái)存儲(chǔ)數(shù)據(jù)的部分
? ? ? DBMS? Database Management System? 數(shù)據(jù)庫(kù)管理系統(tǒng)苍鲜,用來(lái)操作數(shù)據(jù)庫(kù)的部分
? ? ? Client 數(shù)據(jù)庫(kù)客戶端,用來(lái)連接數(shù)據(jù)庫(kù)玷犹,發(fā)起請(qǐng)求操作
? ? ? DBS = DB + DBMS + Client
? 數(shù)據(jù)庫(kù)(DB Database):
? ? ? 真正用來(lái)存儲(chǔ)數(shù)據(jù)的倉(cāng)庫(kù)混滔。
? 數(shù)據(jù)庫(kù)服務(wù)管理軟件(Database Management System 數(shù)據(jù)庫(kù)管理系統(tǒng)洒疚,簡(jiǎn)稱DBMS):
? ? ? 用來(lái)操作數(shù)據(jù)庫(kù)中文件的管理軟件,也就是 DBMS坯屿, 但在使用過(guò)程中經(jīng)常的提及的數(shù)據(jù)庫(kù)常指 DBMS
? 數(shù)據(jù)庫(kù)客戶端軟件(Client):
? ? ? 用戶在需要使用數(shù)據(jù)時(shí)油湖,需要向數(shù)據(jù)庫(kù)服務(wù)管理軟件按照一定的格式申請(qǐng),提交申請(qǐng)的軟件軟件稱為數(shù)據(jù)庫(kù)客戶端軟件
2.1.7 常用數(shù)據(jù)庫(kù)管理軟件
? 1. MySQL:中小型數(shù)據(jù)庫(kù)领跛,跨平臺(tái)乏德,開(kāi)源,免費(fèi)吠昭,應(yīng)用范圍廣
? 2. Oracle:大型數(shù)據(jù)庫(kù)喊括,跨平臺(tái),穩(wěn)定矢棚,安全郑什,收費(fèi)
? 3. MS SQL Server MS:針對(duì) NT系統(tǒng)開(kāi)發(fā)的數(shù)據(jù)庫(kù),只能運(yùn)行在 NT 系統(tǒng)上
? 4. Sqlite:微型數(shù)據(jù)庫(kù)蒲肋,一般用在移動(dòng)端開(kāi)發(fā)
2.1.8 關(guān)系型數(shù)據(jù)庫(kù) RDBMS
? RDBMS Relational Database Management System 關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)
? 關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)的概念:
是指以行和列的形式存儲(chǔ)數(shù)據(jù)蘑拯,將數(shù)據(jù)組織為相關(guān)的行和列的系統(tǒng)
這種方式便于用戶理解,類似于一張表格兜粘。
? 行 申窘,表示一條數(shù)據(jù),也稱為記錄
? 列 孔轴,表示一個(gè)屬性剃法,也稱為字段
? 域 , 表示一個(gè)字段的取值范圍
? 表 距糖, 行和列構(gòu)成了表
? 一組行列關(guān)系組成的表構(gòu)成一個(gè)數(shù)據(jù)文件玄窝。
? 一組表組成了數(shù)據(jù)庫(kù)。
用戶通過(guò)查詢(Query)來(lái)檢索數(shù)據(jù)庫(kù)中的數(shù)據(jù)悍引。
關(guān)系表中元素的構(gòu)成
名詞解釋
2.1.9 數(shù)據(jù)庫(kù)操作語(yǔ)言
? SQL的概念:
? ? ? SQL Structured Query Language 結(jié)構(gòu)化查詢語(yǔ)言
? ? ? 數(shù)據(jù)庫(kù)在操作時(shí)恩脂,需要使用專門的數(shù)據(jù)庫(kù)操作規(guī)則和語(yǔ)法,這個(gè)語(yǔ)法稱為 SQL趣斤。
? SQL的作用
? ? ? SQL 的主要功能是和數(shù)據(jù)庫(kù)建立連接俩块,提供增刪改查的操作。
按照ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))的規(guī)定浓领,SQL被作為關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)的標(biāo)準(zhǔn)語(yǔ)言玉凯。
? SQL語(yǔ)言共分為四大類:
? ? ? 數(shù)據(jù)定義語(yǔ)言DDL Data Definition Language
? ? ? ? ? ■ 用于定義數(shù)據(jù)庫(kù)中要存儲(chǔ)的現(xiàn)實(shí)世界實(shí)體的語(yǔ)言。
? ? ? ? ? ■ 主要提供數(shù)據(jù)庫(kù)联贩,數(shù)據(jù)表的創(chuàng)建操作漫仆。
? ? ? 數(shù)據(jù)操作語(yǔ)言DML Data Manipulation Language
? ? ? ? ? ■ 用于數(shù)據(jù)表的操作語(yǔ)言
? ? ? ? ? ■ 主要提供數(shù)據(jù)表中數(shù)據(jù)的插入,更新泪幌,刪除操作
? ? ? 數(shù)據(jù)查詢語(yǔ)言DQL Data Query Language
? ? ? ? ? ■ 主要提供對(duì)數(shù)據(jù)表中數(shù)據(jù)的查詢操作盲厌。
? ? ? 數(shù)據(jù)控制語(yǔ)言DCL Data Control Language
? ? ? ? ? ■ 主要用來(lái)設(shè)置或更改數(shù)據(jù)庫(kù)用戶或角色權(quán)限的語(yǔ)句署照。
2.1.10 總結(jié)
? 1. 數(shù)據(jù)用來(lái)描述現(xiàn)實(shí)事物信息,在計(jì)算機(jī)中指用來(lái)保存這些信息的文件
? 2. 數(shù)據(jù)庫(kù)是用來(lái)對(duì)數(shù)據(jù)文件進(jìn)行存儲(chǔ)的倉(cāng)庫(kù)
? 3. 數(shù)據(jù)庫(kù)相對(duì)于其它數(shù)據(jù)管理方式容量更大吗浩,速度更快建芙,管理更方便
? 4. 數(shù)據(jù)庫(kù)分為 數(shù)據(jù)庫(kù)服務(wù)器,數(shù)據(jù)庫(kù)客戶端和數(shù)據(jù)庫(kù)存儲(chǔ)文件三部分
? 5. 大部分?jǐn)?shù)據(jù)庫(kù)都是 RDBMS 關(guān)系型數(shù)據(jù)庫(kù)懂扼,如 MySQL,Oracle,SQL Server禁荸,Sqlite等
? 6. 關(guān)系型數(shù)據(jù)庫(kù)以表格形式來(lái)存存儲(chǔ)數(shù)據(jù) ,但存儲(chǔ)的文件并不是表格
? 7. 關(guān)系型數(shù)據(jù)庫(kù)以行阀湿,列形式來(lái)描述事物的關(guān)系
? 8. 關(guān)系型數(shù)據(jù)使用SQL語(yǔ)言對(duì)數(shù)據(jù)進(jìn)行操作
? 9. SQL語(yǔ)言分為四類赶熟,DDL,DML炕倘,DQL钧大,DCL
2.2 數(shù)據(jù)庫(kù)服務(wù)器和客戶端安裝
學(xué)習(xí)目標(biāo)
? 1. 能夠說(shuō)出數(shù)據(jù)庫(kù)提供服務(wù)的原理
? 2. 能夠說(shuō)出哪部分是服務(wù)器
? 3. 能夠說(shuō)出哪部分是客戶端
? 4. 能夠說(shuō)出服務(wù)器和DMBS之間的關(guān)系
? 5. 能夠說(shuō)出一些常用的數(shù)據(jù)庫(kù)客戶端軟件
--------------------------------------------------------------------------------
2.2.1 數(shù)據(jù)庫(kù)服務(wù)器和客戶端介紹
數(shù)據(jù)庫(kù)服務(wù)在運(yùn)行時(shí),也和其它服務(wù)一樣罩旋,即然提供了服務(wù)啊央,那么就需要有一個(gè)服務(wù)器存在。
? 什么是服務(wù)器:
? ? ? 提供數(shù)據(jù)操作服務(wù)的稱為服務(wù)器涨醋。
? 服務(wù)器的作用:
? ? ? 用來(lái)接受用戶的操作請(qǐng)求瓜饥,并將結(jié)果返回給用戶。
? 什么是客戶端:
? ? ? 連接數(shù)據(jù)庫(kù)服務(wù)器發(fā)起操作請(qǐng)求的稱為客戶端浴骂。
? 數(shù)據(jù)查詢的執(zhí)行過(guò)程:
? ? ? 客戶端發(fā)生請(qǐng)求
? ? ? 服務(wù)器接收請(qǐng)求
? ? ? 服務(wù)器將請(qǐng)求發(fā)給DBMS查詢數(shù)據(jù)
? ? ? DBMS 將查詢結(jié)果返回給服務(wù)器
? ? ? 服務(wù)器將結(jié)果返回給客戶端
? ? ? 客戶端接收使用數(shù)據(jù)
2.2.1 服務(wù)器安裝命令
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
一般情況下只需要安裝第一個(gè)就可以了乓土,MySQL自的客戶端軟件并不好用。
2.2.2 MySQL 服務(wù)管理
? 查看服務(wù)是否開(kāi)啟
? ? ? ps aux | grep mysql
? MySQL 服務(wù)管理命令
? 啟動(dòng)服務(wù)
? ? ? sudo service mysql start
? 停止服務(wù)
? ? ? sudo service mysql stop
? 重新啟動(dòng)服務(wù)
? ? ? sudo service mysql restart
? 查看服務(wù)狀態(tài)
? ? ? sudo service mysql status
2.2.3 MySQL 客戶端安裝
在數(shù)據(jù)庫(kù)操作時(shí)溯警,需要通過(guò)客戶端向服務(wù)器發(fā)送 SQL 語(yǔ)句趣苏。
MySQL 常用客戶端
? ? ? 圖形化客戶端
? ? ? ? ? ■ Navicat, PHPAdmin, MySQLYog, MySQL Browser
? ? ? 終端
? ? ? ? ? ■ windows - cmd,mac - 終端梯轻, linux - terminal
MySQL 可以使用的客戶端很多食磕,比如 MySQL 自帶的客戶端,使用系統(tǒng)命令行做為客戶端,使用我們開(kāi)發(fā)的程序做為客戶端等等喳挑,以及 Navicat,PhpAdmin 等圖形化的客戶端等彬伦。
在這里,我們使用 Navicat 圖形化客戶端工具來(lái)進(jìn)行操作伊诵。
安裝過(guò)程
? 1. 下載 官方下載地址: https://www.navicat.com/en/download/navicat-for-mysql 在下載時(shí)单绑,需要填寫一些信息。(官網(wǎng)打開(kāi)較慢曹宴,可以百度一些二次分享的下載地址)
? 2. 解壓
下載完成后是tar.gz文件搂橙,先進(jìn)行解壓
? 3. 啟動(dòng)?
? 4. 小提示 因?yàn)樵撥浖鞘召M(fèi)軟件,只能是試用笛坦。 如果在啟動(dòng)時(shí)提示試用期結(jié)束份氧,或者啟用出現(xiàn)問(wèn)題唯袄⊥淝可以如圖解決?
刪除.navicat64文件后又可以重新開(kāi)始試用
2.2.4 連接數(shù)據(jù)庫(kù)
在連接數(shù)據(jù)庫(kù)時(shí)蜗帜,使用 mysql 命令連接數(shù)據(jù)庫(kù)
? 打開(kāi)終端,運(yùn)行命令
? ? ? mysql -uroot -p
? ? ? 回車后輸入密碼
? 退出登錄
? ? ? quit 和 exit或ctrl+d
? 登錄成功后资厉,輸入如下命令查看效果
? ? ? 查看版本:select version();
? ? ? 顯示當(dāng)前時(shí)間:select now();
? 修改輸入提示符
? ? ? prompt python>
? 連接數(shù)據(jù)庫(kù)
? ? ? 數(shù)據(jù)庫(kù)IP地址
? ? ? 數(shù)據(jù)庫(kù)服務(wù)端口號(hào)
? ? ? 數(shù)據(jù)庫(kù)用戶名
? ? ? 數(shù)據(jù)庫(kù)用戶密碼
? 使用命令行客戶端連接
? mysql -h主機(jī)地址 -P端口號(hào) -u用戶名 -p密碼
? 本機(jī)可以直接mysql -uroot -p? ? ? 回車后輸入密碼
? 使用 Navicat 連接
2.2.5 MySQL 默認(rèn)數(shù)據(jù)庫(kù)介紹(了解)
? 數(shù)據(jù)庫(kù)中默認(rèn)自帶的數(shù)據(jù)庫(kù)
? ? ? infomation_schema 保存其它數(shù)據(jù)庫(kù)的信息
? ? ? perfromance_schema 保存數(shù)據(jù)庫(kù)的優(yōu)化信息
? ? ? sys infomation_schema + perfromance_schema
? ? ? mysql 保存數(shù)據(jù)庫(kù)用戶信息
? Information_schema
保存著關(guān)于MySQL服務(wù)器所維護(hù)的所有其他數(shù)據(jù)庫(kù)的信息(元數(shù)據(jù))厅缺。
如數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)的表宴偿,表欄的數(shù)據(jù)類型與訪問(wèn)權(quán)限等湘捎。
? performance_schema
保存數(shù)據(jù)庫(kù)的性能優(yōu)化信息。
? sys
因?yàn)樯厦娴膬蓚€(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)經(jīng)常被使用窄刘,sys整合了兩個(gè)數(shù)據(jù)庫(kù)中的信息窥妇,方便操作。
? mysql
保存用戶信息娩践。
注意:
數(shù)據(jù)庫(kù)安裝成功后活翩,會(huì)自動(dòng)創(chuàng)建上面的四個(gè)數(shù)據(jù)庫(kù),這四個(gè)庫(kù)不需要我們操作翻伺,一般是數(shù)據(jù)庫(kù)管理員來(lái)操作材泄。 程序開(kāi)發(fā)中基本用不到里面的內(nèi)容,但是也不能刪除吨岭。放著別動(dòng) 拉宗,只做了解即可。
2.2.5 總結(jié)
? 1. 客戶端發(fā)起請(qǐng)求辣辫,服務(wù)器接收旦事,通過(guò)DBMS操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)
? 2. 連接數(shù)據(jù)庫(kù)需要知道主機(jī),端口號(hào)急灭,用戶名姐浮,密碼。化戳。单料。
? 3. 使用 mysql 命令連接數(shù)據(jù)庫(kù),可以只指定用戶名和密碼点楼,其它 使用默認(rèn)
? 4. 連接數(shù)據(jù)庫(kù)的命令:mysql -u root -p