閱讀目錄
數據和數據庫
- 數據:
描述事務的符號記錄,描述事物的符號既可以是數字,也可以是文字、圖片,圖像、聲音、語言等,數據由多種表現形式,它們都可以經過數字化後存入計算機 - 計算機中的數據:
在計算機中描述一個事物,就需要抽取這一事物的典型特徵,組成一條記錄,就相當於文件裏的一行內容,如:
1 storyfull male 25 德國 計算機系
單純的一條記錄並沒有任何意義,如果我們按逗號作爲分隔,依次定義各個字段的意思
id name sex age adderess major # 字段
1 storyfull male 25 德國 計算機系 # 記錄
-
爲什麼要用數據庫:
(1)程序穩定性 :這樣任意一臺服務所在的機器崩潰了都不會影響數據和另外的服務。
(2)數據一致性 :所有的數據都存儲在一起,所有的程序操作的數據都是統一的,就不會出現數據不一致的現象
(3)併發 :數據庫可以良好的支持併發,所有的程序操作數據庫都是通過網絡,而數據庫本身支持併發的網絡操作,不需要我們自己寫socket
(4)效率 :使用數據庫對數據進行增刪改查的效率要高出我們自己處理文件很多 -
數據庫(DataBase,簡稱DB):
數據庫,顧名思義就是存放數據的倉庫,只不過這個倉庫是在計算機存儲設備上。
數據庫中的數據按一定的數據模型組織、描述和儲存,具有較小的冗餘度、較高的數據獨立性和易擴展性,並可爲各種 用戶共享 -
什麼是數據庫管理系統(DataBase Management System 簡稱DBMS)
(1)在瞭解了Data與DB的概念後,如何科學地組織和存儲數據,如何高效獲取和維護數據成了關鍵這就用到了一個系統軟件—數據庫管理系統,如:MySQL、Oracle、SQLite、Access、MS SQL Server
(2)MySQL主要用於大型門戶,例如搜狗、新浪等,它主要的優勢就是開放源代碼,因爲開放源代碼這個數據庫是免費的,他現在是甲骨文公司的產品。Oracle主要用於銀行、鐵路、飛機場等。該數據庫功能強大,軟件費用高。也是甲骨文公司的產品。SQL Server是微軟公司的產品,主要應用於大中型企業,如聯想、方正等。
(3)數據庫:其實就是文件夾;數據庫管理系統:就是一個軟件;數據庫服務器:就是對外專門提供數據的一個機器 -
數據庫服務器,數據庫管理系統,表與記錄的關係(重點理解)
(1)表:student,scholl,class_list(即文件)
(2)數據庫:employee_info(即文件夾)
(3)數據庫管理系統:如MySQL(是一個軟件)
(4)數據庫服務器:一臺計算機(對內存要求比較高) -
總結:
數據庫服務器—運行—>數據庫管理軟件
數據庫管理軟件—>管理—>數據庫
數據庫—組織—>表,即文件夾—組織—>文件
表—存放—>多條記錄,即文件—存放—>多行內容
-
數據庫的發展史
MySQL介紹
-
數據庫管理軟件分類
管理數據的工具有很多種,不止MySQL一個。關於分類其實可以從各個緯度來進行劃分,但是我們最常使用的分類還是根據他們:存取數據的特點來劃分的,主要分爲關係型和非關係型。可以簡單的理解爲,關係型數據庫需要有表結構,非關係型數據庫是key-value存儲的,沒有表結構 -
MySQL
(1)MySQL是一個關係型數據庫管理系統,由瑞典MySQL AB 公司開發,目前屬於 Oracle 旗下產品。MySQL 是最流行的關係型數據庫管理系統之一,在 WEB 應用方面,MySQL是最好的 RDBMS (Relational Database Management System,關係數據庫管理系統) 應用軟件。
(2)MySQL是一種關係數據庫管理系統,關係數據庫將數據保存在不同的表中,而不是將所有數據放在一個大倉庫內,這樣就增加了速度並提高了靈活性。
(3)MySQL所使用的 SQL 語言是用於訪問數據庫的最常用標準化語言。MySQL 軟件採用了雙授權政策,分爲社區版和商業版,由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇 MySQL 作爲網站數據庫。
MySQL的詳細安裝教程
Windows版本:MySQLl的安裝、啓動和基礎配置
下載
- 第一步:打開網址,https://www.mysql.com,點擊downloads之後跳轉到https://www.mysql.com/downloads
- 選擇Community選項–>點擊到MySQLCommunity Downloads–>選擇MySQL Community Server
- 選擇版本和操作系統版本
- 解壓到當前下載的目標地址
- 打開解壓文件,保證裏面的目錄文件完整如下:
(1)放置的路徑必須是:全英文且不帶空格的路徑
(2)再次確定下,打開目錄後是第一個文件夾是“bin”,是否含有“my-default.ini”配置文件
配置
- 配置“my.ini”文件:
打開目錄,會看到my-default.ini配置文件,複製這個配置文件可以重命名爲:my.ini (最主要)或者my.cnf;必須在當前路徑下,注意文件名和後綴名必須一致!
- 將“my.ini”文件拖入到Pycharm中,請確認你的Pycharm默認編碼是否是“uft-8”,拖入後可以到該文件內容如下:
- 然後將文件內容全部清除:
- 將如下配置文件內容,複製到Pycharm中
[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8
[mysqld]
# 設置3306端口
port = 3306
# 設置mysql的安裝目錄
basedir=C:\Program Files\mysql-5.6.39-winx64
# 設置mysql數據庫的數據的存放目錄
datadir=C:\Program Files\mysql-5.6.39-winx64\data
# 允許最大連接數
max_connections=200
# 服務端使用的字符集默認爲8比特編碼的latin1字符集
character-set-server=utf8
# 創建新表時將使用的默認存儲引擎
default-storage-engine=INNODB
- 修改內容,將MySQL安裝目錄 和 存放目錄 改成mysql開始的存放位置,詳細步驟如下↓↓↓
(1)設置mysql的安裝目錄:看你的bin目錄在哪裏,直接將所在位置路徑貼過來就可以↓↓↓
(2)設置mysql數據庫的數據的存放目錄:先雙擊你的data 打開,複製好路徑,貼上就可以↓↓↓
(3)最後確認下,每一個末尾是否含有多餘的空格
(4)特別注意:存放的路徑,雖然是全英文,但是在windows下,千萬要注意命名不要帶上了轉義字符,比如,路徑寫成了 :
E:\\mysql:\tool # \t是轉義字符,windows 會理解成 E:\\mysql: ool ;這就多了空格導致錯誤
E:\\mysql:\bool # \b 也是是轉義字符
- 注意:配置好的“my.ini”文件,以後不要隨便用 記事本或者其他非 默認utf-8 的工具打開,導致編碼發生改變!
環境變量
-
打開:高級系統設置–>高級–>環境變量
-
爲MySQL添加環境變量的步驟
(1)win10 好像大部分軟件安裝都會自動幫你填充環境變量,比如python的安裝,就會自動填充,不需要手動將pyhon執行文件路徑複製到環境變量中!;但是MySQL不會自動配置,需要我們手動添加
(2)打開系統環境變量的path
(3)點擊“新建”新建一個環境變量:添加自己的MySQL文件所在的bin目錄,如下↓↓↓
安裝 和 啓動MySQL服務端
- 安裝MySQL服務:以管理員身份打開cmd窗口後,將目錄切換到你解壓文件的bin目錄,輸入mysqld install回車運行
- 啓動MySQL服務端:
(1)以管理員身份在cmd中輸入:net start mysql
(2)啓動成功後,就可以登錄MySQL了:
服務啓動成功之後,就可以登錄了,輸入 mysql -u root -p(mysql5.6版本的,第一次登錄沒有密碼,直接按回車過)
(3)如果以上步驟都一致的話,那麼表示你已經成功安裝了MySQL,如果任何一步失敗,在安裝後發生了配置錯誤,都需要卸載再重新安裝,在發生錯誤的基礎上直接修改都是不會成功的
MySQL的卸載
- 卸載一般是再你發現MySQL安裝配置過程中出現錯誤,纔去操作;成功的可以跳過,不用看
- 具體步驟如下:
MySQL的Server端
-
通過上述步驟,如果MySQL服務端已經安裝成功並且服務端已經可以連接上,以後再操作MySQL時
注意:當我們每次用mysql啓動的時候,那就不用太麻煩了,因爲上述安裝方法是把它做成一個系統服務,使用了“ mysqld install ”後,當在搜索裏面輸入services.msc就可以看到一個MYSQL了;就相當於安裝一個軟件,點擊圖標就可以運行;那麼我們就可以這樣管理MySQL↓↓↓ -
註冊成服務之後,以後再啓動和關閉MySQL服務時,僅需執行如下命令:
# 啓動MySQL服務
net start mysql
# 關閉MySQL服務
net stop mysql
# 在windows操作系統上沒有重啓mysql服務的命令
# 如果要重啓服務,只能先stop再start
- 演示MySQL server端 停止
- 一般裝好後,電腦開機,MySQL server端 會自動開啓
MySQL客戶端
- 啓動MySQL客戶端的原理
(1)MySQL 5.6的版本root用戶是不需要密碼的,5.7之後的需要
- 關於密碼
- MySQL的使用過程
(1)MySQL端如果沒有被 命令停止,一般開機都會自動開啓,所以只需在命令行輸入 mysql -uroot -p 輸入密碼,開啓服務端,然後操作即可
Linux版本:MySQLl的安裝、啓動和基礎配置
Mac版本:MySQLl的安裝、啓動和基礎配置
MySQL常見的問題解決
安裝、配置失敗問題排查
cmd 沒有以管理員權限打開
- cmd 沒有以管理員權限打開,安裝時會報:“Install/Remove of the Service Denided!”;解決辦法是,關閉,開啓cmd時以管理員身份開啓,即可!
沒有開啓服務器
- ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
忘記密碼
- 方式一:
(1)徹底關閉mysql(注意:以什麼方式啓動的就要以什麼方式把它關閉)
(2)在cmd中啓動:mysqld skip-grant-tables (跳過所有的授權表)
(3)在cmd中登錄:mysql
(4)輸入兩條命令:
update mysql.user set authentication_string = password(‘123’) where user = ‘root’ and host =‘localhost’
flush privileges 重新刷新權限
(5)tskill mysqld 幹掉任務
(6)正常啓動mysql
(7)mysql -uroot -p123 (不提倡這麼寫)
-方式二:
(僅限於剛剛安裝在數據庫的時候,如果對你有用的一堆數據已經存在了,
就不要用這種方法,就得用第一種)
1.在mysql的解壓目錄下新建一個my.ini配置文件
那麼在my.ini配置文件裏寫上
在ini配置文件中註釋有兩種#或者;
[mysql]
skip-grant-tables (開頭的–就不用要了)如果啓動了就先關了,然後重新啓動一下,登錄後,my.ini就生效了
basedir = 路徑
datadir = data路徑 # 如果data指定要保存數據的目錄,一定要記得初始化 mysqld initialize-insecure
完了把原先的那個數據data幹掉。
mysql 輸入指令時,報ERROR
- 可能是輸入命令時大小寫導致命令無法生效
- 輸入完命令後沒有以“ ; ” 結尾;記住如果沒有在結尾輸入分號,則表示命令還沒結束
MySQL的必備概念和命令
用戶和用戶權限
- 在安裝數據庫之後,有一個最高權限的用戶root;一般不會把root用戶輕易的給別人,這樣文件容易被修改
- 如何查看用戶:進入mysql後輸入
select user();
- 如何給當前用戶設置密碼,輸入:
set password = password('123');
(1)set password = password(‘密碼’); 相當於調用一個password函數,那麼它會以加密的方式存儲,如果直接“set password =” 則以明文的方式存儲,這是非常危險且不提倡的寫法
- 查看庫/文件:不同權限的用戶能查看到的庫和內容是不一樣,以下以root用戶爲例
show databases ;
- 創建用戶
create user '用戶名' @ '網段' IDENTIFIED BY '123';
- 查看創建用戶的權限(所能操作的內容);
show grants for '用戶名'@ '網段'; # grants 意思爲:同意、允許、准許
- 給創建的用戶授權:
grant all on 文件名.* to '用戶名'@ '網段';
flush privileges; # 刷新使授權立即生效
(1)說明,可以先通過創建用戶語句來創建用戶,然後給它授權;也可以直接用授權語句來自動創建用戶,即是,執行
grant all on 文件夾.* to '用戶名'@ '網段' indentified by '密碼';
就會自動創建一個輸入的用戶
連接服務器
- 我們的mysql客戶端不僅可以連接本地的數據庫;也可以連接網絡上的某一個數據庫的server端,只要對方提供IP地址和密碼;然後輸入:mysql -h192.168.12.87 -uroot -p123
初識mysql 語句
-
設想一下,當我們想要從文件中存取數據的時候,是一個非常繁瑣的過程,主要是因爲文件中所有的內容對我們來說是連續的,沒有規則的。如果我們將數據按照規則存在一個文件中,在設計一種規則可以拼湊組合成我們需要的操作,並通過這些指示在文件中存取數據,那麼操作數據是不是能夠變得更加簡單快速呢?這串規則就被我們成爲SQL。
-
SQL : 結構化查詢語言(Structured Query Language)簡稱SQL(發音:/ˈes kjuː ˈel/ “S-Q-L”),是一種特殊目的的編程語言,是一種數據庫查詢和程序設計語言,用於存取數據以及查詢、更新和管理關係數據庫系統;SQL語言主要用於存取數據、查詢數據、更新數據和管理關係數據庫系統,SQL語言由IBM開發。
-
SQL語言分爲3種類型:
(1)DDL語句 數據庫定義語言: 數據庫、表、視圖、索引、存儲過程,例如CREATE、DROP、ALTER
(2)DML語句 數據庫操縱語言: 插入數據INSERT、刪除數據DELETE、更新數據UPDATE、查詢數據SELECT
(3)DCL語句 數據庫控制語言: 例如控制用戶的訪問權限GRANT、REVOKE
-
初識 sql 語句
# mysql的賬號操作
# 進入mysql客戶端
$mysql
mysql> select user(); # 查看當前用戶
mysql> exit # 也可以用\q quit退出
# 默認用戶登陸之後並沒有實際操作的權限
# 需要使用管理員root用戶登陸
$ mysql -uroot -p # mysql 5.6默認是沒有密碼的
# 遇到password直接按回車鍵
mysql> set password = password('root'); # 給當前數據庫設置密碼
# 創建賬號
mysql> create user 'min'@'192.168.10.%' IDENTIFIED BY '123'; # 指示網段,和登錄密碼
mysql> create user 'min'@'192.168.10.5'; # 指示某機器可以連接
mysql> create user 'min'@'%'; # 指示所有機器都可以連接
mysql> show grants for 'min'@'192.168.10.5'; # 查看某個用戶的權限
# 遠程登陸
$ mysql -uroot -p123 -h 192.168.10.3 # 某一具體用戶信息
# 給賬號授權
mysql> grant all on *.* to 'min'@'%';
mysql> flush privileges; # 刷新使授權立即生效
# 創建賬號並授權
mysql> grant all on *.* to 'eva'@'%' identified by '123'
- DDL 語句 圖示
(1)創建庫、查詢庫:
(2)進入到某一個庫中:
select database(); # 查看當前使用的庫
use 數據庫的名稱 # 沒有分號,相當於進入到數據庫(文件夾)下
(3)創建表:
創建表,必須進入到某一個庫中,才能執行該操作
(4)查看錶:
(5)刪除表:
(6)查看錶結構:
-DML語句圖示:
(1)數據的增加:插入一條數據
(2)數據的查看:查詢數據
(3)數據的修改:
(4)刪除數據:
- 雖然是mysql的基礎,但是很有必要整理下,通過cmd操作感覺有點麻煩,後期會講圖形化界面