本節相關: 創建資料庫,查看資料庫,修改資料庫,刪除資料庫 首發時間:2018-02-13 20:47 創建資料庫 : 語法 : create database 資料庫名字[庫選項]; 庫選項說明 : 庫選項是可選項,可以不寫 庫選項有兩項:字元集和校對集。 庫選項的字元集是資料庫識別或存儲數據使用... ...
本節相關:
創建資料庫,查看資料庫,修改資料庫,刪除資料庫
首發時間:2018-02-13 20:47
創建資料庫 :
語法 :
create database 資料庫名字[庫選項];
庫選項說明 :
- 庫選項是可選項,可以不寫
- 庫選項有兩項:字元集和校對集。
- 庫選項的字元集是資料庫識別或存儲數據使用的字元集。常用字元集有utf8和gbk;
- 庫選項的校對集是資料庫校對數據時使用的校對集【校對數據時依據校對集的規則來校對,比如有些校對集忽略大小寫】。
但凡是創建資料庫時不指定庫選項的,都將使用預設指定的庫選項。
補充:
- 查看預設校對集
show variabls like 'character%'
- 查看預設校對集:
show variables like 'collation_%';
使用示例 :
create database shool_info; create database mydatabase charset utf8; create database fordelete charset gbk;
補充說明 :
- 資料庫名字不能使用關鍵字或保留字,如database,delete,如果語法無誤但創建失敗時,那麼很可能是使用了關鍵字或保留字。如果非要使用關鍵字或保留字,需要使用`(TAB上面的鍵)包裹資料庫名字,但刪除的時候也需要加`。
- 資料庫名字是中文而無法創建問題:
- 問題的發生是因為客戶端跟服務端的字元集匹配問題,比如說服務端認為客戶端來的UTF8(漢字三個位元組),而客戶端的字元集是gbk(漢字兩個位元組)。解決辦法是使服務端接受字元的字元集與客戶端使用的字元集相同。
- 另外一個問題是服務端接收中文後傳輸給客戶端顯示問題,這需要使服務端傳輸給客戶端時使用的字元集與客戶端的相同【客戶端是gbk,而服務端傳的是utf8的中文,那麼客戶端會顯示錯誤】。
- 修改辦法1:set names 客戶端使用的字元集;【執行set names utf8 就是把character_set_client、character_set_connection、character_set_results這3個參數值都設為utf8】
- 修改辦法2:逐一設置client、result的字元集。
補充說明:
幾個character_set的意義:
- client--服務端認為客戶端使用的字元集
- connection--連接使用的編碼,用於mysql內部【占位清楚使用意義,如果未來弄明白再補充】
- database--當前資料庫使用的字元集
- filesystem--文件系統
- results --服務端發送給客戶端的結果的字元集
- server -- 服務端使用的字元集,如果創建資料庫時沒有指定字元集,那麼會使用服務端當前使用的字元集
- system--資料庫系統
- dir--字元集存儲的目錄
校對集 :
校對集是數據校對的方式
校對集必須在數據插入前聲明好,不然有了數據後再修改校對集時會無效。
校對集主要有三種格式:
- _bin:二進位比較法,取出二進位位,一位一位地進行比較,區分大小寫;
- _cs:大小寫敏感,區分大小寫;
- _ci:大小寫不敏感,不區分大小寫。
查看資料庫所支持的校對集 :
show collation;
查看資料庫 :
資料庫的查看可以查看現有的資料庫,也可以查看資料庫的創建語句。
語法:
-- 查看所有資料庫 show databases; -- 查看指定部分的資料庫 show databases like '模糊匹配'; -- 查看資料庫的創建語句; show create database 資料庫名;
通配符【通配符可以用來模糊匹配字元】:
show database like ‘模糊匹配’中:
%代表匹配多個任意字元,
_代表匹配單個任意字元
如果_或者%也是一個包含在資料庫名字中的字元的話,需要使用轉義字元\,不然會認定_和%是通配符
如查找database_student, 需使用database\_%;,不然可能查找出databasedemo之類不帶database_的資料庫。
使用示例:
show database; show database like 'my%'; show database like 'my_'; show create database mydatabase;
修改資料庫 :
資料庫的修改可以修改資料庫的庫選項(字元集和校對集)
語法:
Alter database 資料庫名字 [庫選項];
使用示例:
-- 修改資料庫的字元集 Alter database mydatabase charset gbk; Alter database mydatabase character set gbk; Alter database mydatabase character set = gbk; -- 修改資料庫的校對集 Alter database mydatabase collate utf8_bin;
補充說明:
校對集依賴於字元集,一般單獨修改字元集時校對集也會更改,單獨修改校對集字元集也會更改。
如果更改的校對集依賴的字元集相同,不改變字元集。
刪除資料庫 :
語法:
drop database 資料庫名字;
使用示例:
-- 刪除資料庫 what drop database what;