前置任務:MySQL的安裝與卸載

推薦使用壓縮版:https://dev.mysql.com/downloads/

1.解壓文件(解壓路徑不能出現中文)

2.在解壓目錄(安裝目錄)下:

深入解析:MySQL一篇速通_數據庫

3.修改配置文件my.ini

深入解析:MySQL一篇速通_數據_02

4. 配置環境變量將bin路徑填入系統變量Path

深入解析:MySQL一篇速通_mysql_03

5. 初始化mysql

以管理員身份運行cmd

mysqld --initialize --console

深入解析:MySQL一篇速通_數據_04

記錄下初始密碼

6. 安裝mysql服務

mysqld install

深入解析:MySQL一篇速通_數據_05

刪除服務:

sc delete mysql服務名

重新打開cmd管理員命令窗口,啓動服務

net start mysql

停止服務:

net stop mysql

7.登錄mysql

mysql -uroot -p
回車完輸入臨時密碼即可

8.修改臨時密碼

ALTER USER root@localhost IDENTIFIED BY '修改後的密碼'

卸載MySQL:刪除解壓目錄即可

一、登錄解析

1.登錄命令

深入解析:MySQL一篇速通_數據_06

深入解析:MySQL一篇速通_數據庫_07

2.查詢系統用户及主機

深入解析:MySQL一篇速通_數據_08

3.修改root用户的主機為任意

深入解析:MySQL一篇速通_mysql_09

4.刷新權限表,等價於重啓服務

深入解析:MySQL一篇速通_數據_10

5.使用IP地址遠程登錄

深入解析:MySQL一篇速通_數據庫_11

mysql的常見命令

深入解析:MySQL一篇速通_數據_12

二、庫操作

1.展示所有的數據庫

深入解析:MySQL一篇速通_mysql_13

2.創建庫

深入解析:MySQL一篇速通_mysql_14

3.切換數據庫

深入解析:MySQL一篇速通_數據_15

4.刪除數據庫

深入解析:MySQL一篇速通_數據庫_16

三、數據庫字符集

1.數據庫字符集包含

字符集(utf8mb4或utf8)和校驗規則(collation)

utf8mb4 和 utf: 世界通用字符集

gbk: 中文字符集

2.查看當前數據庫字符變量

深入解析:MySQL一篇速通_數據_17

3.如果需要更改字符集則使用配置文件my.ini

深入解析:MySQL一篇速通_數據庫_18

退出MySQL重進生效

4.查詢校驗規則

深入解析:MySQL一篇速通_數據_19

深入解析:MySQL一篇速通_mysql_20

四、數據庫表操作

1.創建表

深入解析:MySQL一篇速通_數據庫_21

深入解析:MySQL一篇速通_數據庫_22

深入解析:MySQL一篇速通_mysql_23

2.操作表

深入解析:MySQL一篇速通_數據_24

深入解析:MySQL一篇速通_數據庫_25

深入解析:MySQL一篇速通_mysql_26

深入解析:MySQL一篇速通_mysql_27

深入解析:MySQL一篇速通_mysql_28

深入解析:MySQL一篇速通_數據庫_29

深入解析:MySQL一篇速通_數據_30

3.複製表

  • 蠕蟲複製

深入解析:MySQL一篇速通_數據庫_31

一步完成法:

深入解析:MySQL一篇速通_mysql_32

數據量大時使用這種方法可能會數據泄露

4.數據庫字典

深入解析:MySQL一篇速通_數據庫_33

tables-存放數據庫裏所有的數據表、以及每個表所在數據庫。

schemata-存放數據庫裏所有的數據庫信息

views-存放數據庫裏所有的視圖信息。

columns-存放數據庫裏所有的列信息。

triggers-存放數據庫裏所有的觸發器。

routines-存放數據庫裏所有存儲過程和函數。

key_column_usage-存放數據庫所有的主外鍵

table_constraints-存放數據庫全部約束。

statistics-存放了數據表的索引。

5.表約束

約束: 需要數據強制執行的數據校驗規則,作用: 保證數據的完整性,可以保護數據

五大類約束:

  1. NOT NULL 非空約束 數據字段不能為空
  2. UNIQUE 唯一約束 數據唯一
  3. PRIMARY KEY 主鍵約束 "數據的序號" 更加高效查詢
  4. FOREIGN KEY 外鍵約束 數據之間有關聯關係
  5. CHECK 檢查約束

外鍵約束

格式:constraint 約束名 foreign key 外鍵約束字段 references 主表(主
表外鍵關聯字段)

深入解析:MySQL一篇速通_數據_34

從表student數據可刪除,主表teacher數據不可刪除

約束的修改

深入解析:MySQL一篇速通_mysql_35

深入解析:MySQL一篇速通_mysql_36

深入解析:MySQL一篇速通_數據_37

深入解析:MySQL一篇速通_數據庫_38

刪除外鍵需要兩步:1.刪除外鍵約束 2.刪除外鍵索引

深入解析:MySQL一篇速通_數據_39

6.存儲引擎

MyISAM和InnoDB的區別?

1. 事務: MyISAM不支持事務

2. 存儲文件: innodb : frm、ibd MyISAM: frm、MYD、MYI

3. 數據行鎖定: MyISAM不支持

4. 全文索引: INNODB不支持,所以MYISAM做select操作速度很快

5. 外鍵約束: MyISAM不支持

兩種引擎優缺點:

INNODB:

1. 可靠性更強,或者業務要求事務時

2. 表更新和查詢相當頻繁,並且表鎖定的情況比較大

3. 如果你需要大量的修改和插入時。

MYISAM:

1. 做很多的數據計算,mysql的底層系統庫就是MyISAM

2. 修改和插入不頻繁,如果執行大量的select,MYISAM比INNODB更加適合

3. 沒有事務

7.用户和授權

創建用户:
create user "用户名"@"主機地址" identified by '密碼';
授權:
grant 權限 on 數據庫.表 to "用户名"@"主機地址";
權限:select、insert、delete、update
*.*:所有數據庫下的所有表
flush privileges;刷新權限

深入解析:MySQL一篇速通_數據_40

深入解析:MySQL一篇速通_數據庫_41

深入解析:MySQL一篇速通_數據庫_42

深入解析:MySQL一篇速通_數據庫_43

撤銷權限:

revoke 權限類型 on 數據庫.表 '用户名'@'主機名';
FLUSH PRIVILEGES;

刪除用户:

深入解析:MySQL一篇速通_數據庫_44

練習

根據以下需求完成圖書管理系統數據庫及表設計,並建庫建表,並截圖創建表的詳細信息(desc 表名),不用添加數據
1. 用户表: 字段: 姓名,用户名,密碼,電話,住址,專業及年級
2. 圖書表: 字段: 圖書名,分類,介紹,出版社,入庫時間
3. 借閲登記表: 借閲人、圖書名、借閲時間、是否歸還

用户表:

深入解析:MySQL一篇速通_mysql_45

圖書表:

深入解析:MySQL一篇速通_數據庫_46

借閲登記表:

深入解析:MySQL一篇速通_數據_47

圖數據庫原理

深入解析:MySQL一篇速通_mysql_48