Python 高階 14 資料庫
資料庫概述、資料庫伺服器和客戶端安裝
2.1資料庫概述
學習目標
1. 能夠說出什麼是資料
2. 能夠說出為什麼要有資料庫
3. 能夠說出什麼是資料庫
4. 能夠說出常用資料庫有哪些
5. 能夠說出資料庫分為幾部分
6. 能夠說出什麼是關係型資料庫
7. 能夠說出資料庫操作有哪些
--------------------------------------------------------------------------------
2.1.1 資料庫概述
資料需要小心的儲存,管理。這就需要使用到資料庫。
資料庫是在資料管理和程式開發過程中,一種非常重要的資料管理軟體,通過資料庫,可以非常方便的對資料進行管理操作。
2.1.2 什麼是資料?
資料用來描述事物的特徵,行為,記錄事物的狀態,過程,結果等等。
比如 一個人的姓名,姓別,年齡,職業,特長等等,這些都是資料。
從計算機角度來看,資料體現在記錄現實資料資訊的組織方式。
資料體現在:文字,圖片,表格,視訊,音訊等等。都是以二進進位制形式進行儲存
以下我們所說的資料,都是將現實資訊轉換為計算機角度的表示形式。
2.1.3 什麼是資料庫?
為什麼會有資料庫:
資料量越大,管理難度就越大。這時,就需要一種管理組織方式,分門別類的將資料進行儲存,方便使用時的查詢。
什麼是資料庫:
資料庫就是資料的倉庫,資料庫按照一定的資料格式,結構來儲存資料。方便資料和操作和管理。
2.1.4 資料庫管理資料和其它方式管理資料區別
記憶體管理資料
優點:存取速度快
缺點:斷電後資料不能儲存
檔案管理資料
優點:資料可以持久化儲存
缺點:讀取速度慢,資料組織格式不好控制
資料庫管理資料
優點:統一的資料組織格式 讀取速度快 容量大
缺點:需要專門的管理軟體 需要一定的學習成本
2.1.5 資料庫如何管理資料
實際資料庫在管理資料時,也是管理檔案的形式來進行管理,只是這些檔案具有特定的檔案格式。
如果要操作這些資料檔案,需要通過專門的資料庫管理軟來進行操作。
資料庫管理軟體
DBMS Database Management System 資料庫管理系統,簡稱DBMS ,是用來管理資料的專用軟體。
資料庫在管理時,通過 DBMS 來操作資料庫檔案。
類似於 MS Office Excel 可以操作 .xls 的檔案一樣。
使用者
DBA Database Administrator 資料庫管理員
Programmer 程式設計師
2.1.6 資料庫如何執行?
DBS
DBS Database System 資料庫系統,由幾部分組成,如下:
DB Database 資料庫,真正用來儲存資料的部分
DBMS Database Management System 資料庫管理系統,用來操作資料庫的部分
Client 資料庫客戶端,用來連線資料庫,發起請求操作
DBS = DB + DBMS + Client
資料庫(DB Database):
真正用來儲存資料的倉庫。
資料庫服務管理軟體(Database Management System 資料庫管理系統,簡稱DBMS):
用來操作資料庫中檔案的管理軟體,也就是 DBMS, 但在使用過程中經常的提及的資料庫常指 DBMS
資料庫客戶端軟體(Client):
使用者在需要使用資料時,需要向資料庫服務管理軟體按照一定的格式申請,提交申請的軟體軟體稱為資料庫客戶端軟體
2.1.7 常用資料庫管理軟體
1. SQL/">MySQL:中小型資料庫,跨平臺,開源,免費,應用範圍廣
2. Oracle:大型資料庫,跨平臺,穩定,安全,收費
3. MS SQL Server MS:針對 NT系統開發的資料庫,只能執行在 NT 系統上
4. Sqlite:微型資料庫,一般用在移動端開發
2.1.8 關係型資料庫 RDBMS
RDBMS Relational Database Management System 關係資料庫管理系統
關係型資料庫系統的概念:
是指以行和列的形式儲存資料,將資料組織為相關的行和列的系統
這種方式便於使用者理解,類似於一張表格。
行 ,表示一條資料,也稱為記錄
列 ,表示一個屬性,也稱為欄位
域 , 表示一個欄位的取值範圍
表 , 行和列構成了表
一組行列關係組成的表構成一個數據檔案。
一組表組成了資料庫。
使用者通過查詢(Query)來檢索資料庫中的資料。
關係表中元素的構成
名詞解釋
2.1.9 資料庫操作語言
SQL的概念:
SQL Structured Query Language 結構化查詢語言
資料庫在操作時,需要使用專門的資料庫操作規則和語法,這個語法稱為 SQL。
SQL的作用
SQL 的主要功能是和資料庫建立連線,提供增刪改查的操作。
按照ANSI(美國國家標準協會)的規定,SQL被作為關係型資料庫管理系統的標準語言。
SQL語言共分為四大類:
資料定義語言DDL Data Definition Language
■ 用於定義資料庫中要儲存的現實世界實體的語言。
■ 主要提供資料庫,資料表的建立操作。
資料操作語言DML Data Manipulation Language
■ 用於資料表的操作語言
■ 主要提供資料表中資料的插入,更新,刪除操作
資料查詢語言DQL Data Query Language
■ 主要提供對資料表中資料的查詢操作。
資料控制語言DCL Data Control Language
■ 主要用來設定或更改資料庫使用者或角色許可權的語句。
2.1.10 總結
1. 資料用來描述現實事物資訊,在計算機中指用來儲存這些資訊的檔案
2. 資料庫是用來對資料檔案進行儲存的倉庫
3. 資料庫相對於其它資料管理方式容量更大,速度更快,管理更方便
4. 資料庫分為 資料庫伺服器,資料庫客戶端和資料庫儲存檔案三部分
5. 大部分資料庫都是 RDBMS 關係型資料庫,如 MySQL,Oracle,SQL Server,Sqlite等
6. 關係型資料庫以表格形式來存儲存資料 ,但儲存的檔案並不是表格
7. 關係型資料庫以行,列形式來描述事物的關係
8. 關係型資料使用SQL語言對資料進行操作
9. SQL語言分為四類,DDL,DML,DQL,DCL
2.2 資料庫伺服器和客戶端安裝
學習目標
1. 能夠說出資料庫提供服務的原理
2. 能夠說出哪部分是伺服器
3. 能夠說出哪部分是客戶端
4. 能夠說出伺服器和DMBS之間的關係
5. 能夠說出一些常用的資料庫客戶端軟體
--------------------------------------------------------------------------------
2.2.1 資料庫伺服器和客戶端介紹
資料庫服務在執行時,也和其它服務一樣,即然提供了服務,那麼就需要有一個伺服器存在。
什麼是伺服器:
提供資料操作服務的稱為伺服器。
伺服器的作用:
用來接受使用者的操作請求,並將結果返回給使用者。
什麼是客戶端:
連線資料庫伺服器發起操作請求的稱為客戶端。
資料查詢的執行過程:
客戶端發生請求
伺服器接收請求
伺服器將請求發給DBMS查詢資料
DBMS 將查詢結果返回給伺服器
伺服器將結果返回給客戶端
客戶端接收使用資料
2.2.1 伺服器安裝命令
sudo apt-get install mysql-server
sudo apt-get install mysql-client
sudo apt-get install libmysqlclient-dev
一般情況下只需要安裝第一個就可以了,MySQL自的客戶端軟體並不好用。
2.2.2 MySQL 服務管理
檢視服務是否開啟
ps aux | grep mysql
MySQL 服務管理命令
啟動服務
sudo service mysql start
停止服務
sudo service mysql stop
重新啟動服務
sudo service mysql restart
檢視服務狀態
sudo service mysql status
2.2.3 MySQL 客戶端安裝
在資料庫操作時,需要通過客戶端向伺服器傳送 SQL 語句。
MySQL 常用客戶端
圖形化客戶端
■ Navicat, PHPAdmin, MySQLYog, MySQL Browser
終端
■ windows - cmd,mac - 終端, linux - terminal
MySQL 可以使用的客戶端很多,比如 MySQL 自帶的客戶端,使用系統命令列做為客戶端,使用我們開發的程式做為客戶端等等,以及 Navicat,PhpAdmin 等圖形化的客戶端等。
在這裡,我們使用 Navicat 圖形化客戶端工具來進行操作。
安裝過程
1. 下載 官方下載地址: https://www.navicat.com/en/download/navicat-for-mysql 在下載時,需要填寫一些資訊。(官網開啟較慢,可以百度一些二次分享的下載地址)
2. 解壓
下載完成後是tar.gz檔案,先進行解壓
3. 啟動
4. 小提示 因為該軟體是收費軟體,只能是試用。 如果在啟動時提示試用期結束,或者啟用出現問題。可以如圖解決
刪除.navicat64檔案後又可以重新開始試用
2.2.4 連線資料庫
在連線資料庫時,使用 mysql 命令連線資料庫
開啟終端,執行命令
mysql -uroot -p
回車後輸入密碼
退出登入
quit 和 exit或ctrl+d
登入成功後,輸入如下命令檢視效果
檢視版本:select version();
顯示當前時間:select now();
修改輸入提示符
prompt python>
連線資料庫
資料庫IP地址
資料庫服務埠號
資料庫使用者名稱
資料庫使用者密碼
使用命令列客戶端連線
mysql -h主機地址 -P埠號 -u使用者名稱 -p密碼
本機可以直接mysql -uroot -p 回車後輸入密碼
使用 Navicat 連線
2.2.5 MySQL 預設資料庫介紹(瞭解)
資料庫中預設自帶的資料庫
infomation_schema 儲存其它資料庫的資訊
perfromance_schema 儲存資料庫的優化資訊
sys infomation_schema + perfromance_schema
mysql 儲存資料庫使用者資訊
Information_schema
儲存著關於MySQL伺服器所維護的所有其他資料庫的資訊(元資料)。
如資料庫名,資料庫的表,表欄的資料型別與訪問許可權等。
performance_schema
儲存資料庫的效能優化資訊。
sys
因為上面的兩個資料庫中的資料經常被使用,sys整合了兩個資料庫中的資訊,方便操作。
mysql
儲存使用者資訊。
注意:
資料庫安裝成功後,會自動建立上面的四個資料庫,這四個庫不需要我們操作,一般是資料庫管理員來操作。 程式開發中基本用不到裡面的內容,但是也不能刪除。放著別動 ,只做瞭解即可。
2.2.5 總結
1. 客戶端發起請求,伺服器接收,通過DBMS操作資料庫中的資料
2. 連線資料庫需要知道主機,埠號,使用者名稱,密碼。。。
3. 使用 mysql 命令連線資料庫,可以只指定使用者名稱和密碼,其它 使用預設
4. 連線資料庫的命令:mysql -u root -p