【MySQL】數據庫的操作
目錄
- 【MySQL】數據庫的操作
- 創建數據庫
- 數據庫的編碼集和校驗集
- 查看系統默認字符集以及校驗規則
- 查看數據庫支持的字符集
- 查看數據庫支持的字符集校驗規則
- 校驗規則對數據庫的影響
- 數據庫的刪除
- 數據庫的備份和恢復
- 備份
- 還原
- 不備份整個數據庫,而是備份其中的表
- 查看連接情況
作者:愛寫代碼的剛子
時間:2024.3.2
前言:本篇博客主要記錄數據庫的操作
創建數據庫
-
**create database +數據庫名字;**本質就是在/var/lib/mysql里創建一個目錄
-
**drop database +數據庫名字;**本質就是刪除目錄
-
create database if not exists +數據庫名字帶上if not exist選項表示沒有該數據庫就進行創建
數據庫的編碼集和校驗集
- 數據庫編碼集:數據庫未來存儲數據
- 數據庫校驗集:支持數據庫,進行字段比較使用的編碼,本質也是一種讀取數據庫中數據的采用的編碼格式
- 數據庫無論對數據做任何操作,都必須保證操作和編碼必須是編碼一致的!
查看系統默認字符集以及校驗規則
- show variables like ‘character_set_database’; 查看數據庫默認(配置文件決定了)的字符集
- **show variables like ‘collation_database’;**查看數據庫默認的校驗規則
查看數據庫支持的字符集
- show charset;
查看數據庫支持的字符集校驗規則
- show collation;
- 數據庫里面的db.opt文件中存放數據庫的編碼集和校驗規則
創建數據庫,并設置其編碼集:
- create database 數據庫名字 charset=utf8;
- create database d3 character set utf8;
我們可以在/var/lib/mysql對應數據庫目錄里的db.opt查看數據庫的編碼集和校驗規則。
- **create database d4 charset=utf8 collate utf8_general_ci;**創建數據庫并設置其編碼集和校驗規則
校驗規則對數據庫的影響
- 創建兩個數據庫,編碼規則相同,但是校驗規則不同:
- utf8_ general_ ci不區分大小寫
- utf8_bin區分大小寫
- 建表并查看表:
- 向表中插入數據:
- **select * from person;**查看表中的所有數據
- **select * from person where name=‘a’;**查看表中名為a的數據
這里我們發現數據庫test1中的校驗規則為utf8_ general_ ci,并不區分大小寫
- 使用數據庫test2做驗證:
這里我們發現數據庫test2中的校驗規則為utf8_bin,區分大小寫
- **select * from person order by name;**使用order by進行排序
使用不同的校驗規則排序產生的結果并不相同:
test1:
test2:
數據庫的刪除
- drop database if exists +數據庫的名字刪除數據庫,if exists表示如果存在就進行刪除
執行刪除之后的結果:
- 數據庫內部看不到對應的數據庫
- 對應的數據庫文件夾被刪除,級聯刪除,里面的數據表全部被刪
不要隨便刪除數據庫!!!
-
**use +數據庫名;**使用數據庫
-
**select database();**查看當前在哪個數據庫中
- **alter database 數據庫名字 charset=gbk collate gbk_chinese_ci;**修改數據庫的編碼集和校驗規則
- show create database 數據庫名字顯示創建數據庫的命令
說明:
- MySQL 建議我們關鍵字使用大寫,但是不是必須的。
- 數據庫名字的反引號``,是為了防止使用的數據庫名剛好是關鍵字。
- /* !40100 default… */這個不是注釋,表示當前mysql版本大于4.01版本,就執行這句話
數據庫的備份和恢復
備份
- mysqldump -P3306 -uroot -p -B test1 > test1.sql將數據庫進行備份
- test.sql里面存放的并不是數據,而是我們歷史上使用的數據庫的命令
還原
- **source /root/MySQL/test1.sql;**恢復備份了的數據庫
不備份整個數據庫,而是備份其中的表
- mysqldump -u root -p 數據庫名 表名1 表名2 > mysql.sql備份數據庫其中的表
- mysqldump -u root -p -B 數據庫名1 數據庫名2 … > 數據庫存放的路徑同時備份多個數據庫
注意:如果備份一個數據庫時,沒有帶上-B參數, 在恢復數據庫時,需要先創建空數據庫,然后使用數據庫,再使用source來還原。
帶了-B選項,.sql文件中會添加create database …的選項,所以不用自己創建一個空的數據庫
查看連接情況
- **show processlist;**查看數據庫有哪些人在使用
可以告訴我們當前有哪些用戶連接到我們的MySQL,如果查出某個用戶不是自己正常登陸的,很有可能自己的數據庫被人入侵了。以后發現自己數據庫比較慢時,可以用這個指令來查看數據庫連接情況。