文章目錄
- MySQL庫的操作
- 1. 創建數據庫
- 2. 字符集和校驗規則
- (1) 查看系統默認字符集以及校驗規則
- (2) 查看數據庫支持的字符集和校驗規則
- (3) 案例
- (4) 校驗規則對數據庫的影響
- 3. 查看數據庫
- 4. 修改數據庫
- 5. 刪除數據庫
- 6. 數據庫的備份和恢復
- (1) 備份
- (2) 還原
- 7. 查看連接情況
MySQL庫的操作
1. 創建數據庫
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification]...]create_specification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
說明:
-
db_name表示數據庫的名稱
-
大寫的表示關鍵字
-
[] 是可選項
-
CHARACTER SET: 指定數據庫采用的字符集
-
COLLATE: 指定數據庫字符集的校驗規則
create database 數據庫名 //直接創建
[IF NOT EXISTS]
意思是,如果數據庫存在就不創建,數據庫不存在就創建。
例如創建已經存在的 database1
數據庫,開始不存在時直接創建,存在后再創建后會出現warning
create database if not exists 數據庫名
創建數據庫,本質上就是在/var/lib/mysql
下創建一個目錄
2. 字符集和校驗規則
我們在創建數據庫時,會伴隨著選擇字符集和校驗集
- 字符集 :是一套符號和編碼的規則,主要是控制用什么語言。比如utf8就可以使用中文。
- 校驗規則:是對該套符號和編碼的校驗,定義符號的排序和比較規則,其中區分大小寫,跟校驗規則有關。
(1) 查看系統默認字符集以及校驗規則
show variables like 'character_set_database';
show variables like 'collation_database';
(2) 查看數據庫支持的字符集和校驗規則
show charset; // 查看數據庫支持的字符集
show collation; // 查看數據庫支持的字符集校驗規則
(3) 案例
- 創建名為
d1
的數據庫
create database d1;
說明:當我們創建數據庫沒有指定字符集和校驗規則時,系統使用默認字符集:utf8
,校驗規則是:utf8_ general_ ci
,即[MySQL配置文件]/etc/my.cnf
里面設置的,如果我們自己指定字符集或校驗規則,則不會使用系統默認的字符集和校驗規則時。
- 創建一個使用utf8字符集的
b2
數據庫
create database b2 charset=utf8;
或create database b2 character set utf8;
- 創建一個使用utf字符集,并帶校對規則的
d3
數據庫
create database d3 charset=utf8 collate utf8_general_ci;
(4) 校驗規則對數據庫的影響
- 不區分大小寫
創建一個數據庫,校驗規則使用utf8_ general_ ci
[不區分大小寫]
create database test1 collate utf8_general_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('b');
insert into person values('c');
insert into person values('A');
insert into person values('B');
insert into person values('C');
insert into person values('D');
查找字符 a
select * from person where name='a';
a
和A
都被查出來了,說明檢驗規則utf8_general_ci
不區分大小寫
- 區分大小寫
創建一個數據庫,校驗規則使用utf8_ bin[區分大小寫]
create database test2 collate utf8_bin;
use test2;
create table person(name varchar(20));
insert into person values('a');
insert into person values('b');
insert into person values('c');
insert into person values('A');
insert into person values('B');
insert into person values('C');
insert into person values('D');
查找字符 a
select * from person where name='a';
只有a
和查出來了,說明檢驗規則utf8_ bin
區分大小寫
3. 查看數據庫
show databases; //查看數據庫use d1;(數據庫名) //進入數據庫
show tables; //查看當前數據庫中的所有表
select database(); //查看自己當前處于哪個表
show create database 數據庫名;
說明:
- MySQL 建議我們關鍵字使用大寫,但是不是必須的。
- 數據庫名字的反引號``,是為了防止使用的數據庫名剛好是關鍵字
- /*!40100 default… */ 這個不是注釋,表示當前mysql版本大于4.01版本,就執行這句話
4. 修改數據庫
語法:
ALTER DATABASE db_name
[alter_spacification [,alter_spacification]...]alter_spacification:
[DEFAULT] CHARACTER SET charset_name
[DEFAULT] COLLATE collation_name
說明:
- 對數據庫的修改主要指的是修改數據庫的字符集,校驗規則
實例: 將test2
數據庫字符集改成gbk
5. 刪除數據庫
DROP DATABASE [IF EXISTS] db_ name;
執行刪除之后的結果:
- 數據庫內部看不到對應的數據庫
- 對應的數據庫文件夾被刪除,級聯刪除,里面的數據表全部被刪
注意:不要隨意刪除數據庫
刪除數據庫,/var/lib/mysql/
下刪除一個目錄
6. 數據庫的備份和恢復
(1) 備份
語法:
mysqldump -P3306 -u root -p -B 數據庫名 > 數據庫備份存儲的文件路徑
示例:將test2庫備份到文件(退出連接)
mysqldump -P3306 -uroot -p -B test2 > test.sql
vim 打開看看test.sql 文件里的內容,其實把我們整個創建數據庫,建表,導入數據的語句都裝載這個文件中。
(2) 還原
source 備份的文件(路徑)
此時查看,數據庫已經恢復
注意事項:
- 如果備份的不是整個數據庫,而是其中的一張表,怎么做?
# mysqldump -u root -p 數據庫名 表名1 表名2 > D:/mytest.sql
- 同時備份多個數據庫
#同時備份多個數據庫
# mysqldump -u root -p -B 數據庫名1 數據庫名2 ... > 數據庫存放路徑
- 如果備份一個數據庫時,沒有帶上-B參數, 在恢復數據庫時,需要先創建空數據庫,然后使用數據庫,再使用source 來還原。
7. 查看連接情況
show processlist