2.庫的操作
2.1 創建數據庫
語法:
CREATE DATABASE [IF NOT EXISTS] db_name [create_specification [,create_specification]….]create_spcification:[DEFAULT] CHARACTER SET charset_nam[DEFAULT] COLLATE collation_name
說明:
- 大寫的表示關鍵字
- [] 是可選項
- CHARACTER SET: 指定數據庫采用的字符集
- COLLATE: 指定數據庫字符集的校驗規則
也可以寫成 charset =utf-8 collate <所對應的校準集>
2.2 創建數據庫案例
- 創建一個名為 db1 的數據庫
說明: 當我們創建數據庫沒有制定字符集和檢驗規則時,系統使用默認字符集:utf8,檢驗規則是:utf8_general_ci (不同的系統不同的版本,默認的并不相同,當基本上都是這樣類似的)create database db1;
- 創建一個使用utf8字符集和db2數據庫
create database db2 chrest=utf8;
- 創建一個使用utf字符集,并帶校對規則的db3數據庫。
create database db3 charset=utf8 collate utf8_general_ci;
2.3 字符集和檢驗規則
2.3.1 查看系統默認字符集以及校驗規則
show variables like 'character_set_database';show variables like 'collation_database';
2.3.2 查看數據庫支持的字符集
show charset;
上圖顯示的是所有的字符集以及字符集所對應的校驗規則
字符集主要是控制在數據庫中用什么樣的語言,比如utf8就可以使用中文。
2.3.3 查看數據庫支持的字符集校驗規則
show collation;
字符集檢驗規則 太多,這里不進行展示了。
我們可以通過上面字符集的圖片看到部分校驗規則。
查看單獨一個字符集所對應的校驗規則
show collation like 'utf8%';
這是utf8所對應的所有校驗規則,其中校驗規則的命名有如下規則:
校對規則名稱通常由字符集名稱、一些特性描述以及排序規則類型組成,其通用格式為:
字符集名稱_特性描述_排序規則類型
其中排序規則,這部分定義了字符的比較和排序方式,
常見的類型有:
- ai (Accent Insensitive):不區分重音,即帶有重音的字符和其無重音形式被視為相同。例如,é 和 e 會被認為是相同的字符。
- as (Accent Sensitive):區分重音,é 和 e 會被視為不同的字符。
- ci (Case Insensitive):不區分大小寫,A 和 a 會被視為相同的字符。
- cs (Case Sensitive):區分大小寫,A 和 a 會被視為不同的字符。
2.3.4 校驗規則對數據庫的影響
我們分別創建使用兩個校驗規則創建數據庫,一個區分大小寫,一個不區分大小寫,查看效果
- 不區分大小寫
create database db1 collate utf8mb4_0900_ai_ci;
use test1;
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
- 區分大小寫
create database db2 COLLATE utf8mb4_zh_0900_as_cs ;
use db2
create table person(name varchar(20));
insert into person values('a');
insert into person values('A');
insert into person values('b');
insert into person values('B');
- 進行查詢
不區分大小寫的查詢以及結果
區分大小寫的查詢以及結果
- 結果排序
不區分大小寫排序以及結果:
區分大小寫排序以及結果:
2.4 操縱數據庫
語法:
ALTER DATABASE db_name[alter_spacification [,alter_spacification]...]alter_spacification:[DEFAULT] CHARACTER SET charset_name
TER SET charset_name[DEFAULT] COLLATE collation_name
說明:
對數據庫的修改主要指的是修改數據庫的字符集,校驗規則。
示例:將db3數據庫字符集改為gbk
修改后
show create database
此語句能夠展示創建數據庫時所用的完整 SQL 語句,其中會包含數據庫的字符集信息。
2.4.4 數據庫刪除
DROP DATABASE [IF EXISTS] db_ name;
執行刪除之后的結果:
- 數據庫內部看不到對應的數據庫
- 對應的數據庫文件被刪除,級聯刪除,里面的數據表全部被刪除(就是直接將目錄刪除)
注意:不要隨意刪除數據庫