SHOW CHARACTER SET;
-- 查看創建數據庫的指令並查看數據庫使用的編碼
show create database dbtest;
-- 查看數據庫編碼:
show variables like '%char%';
-- 設置character_set_server、set character_set_client和set character_set_results
set character_set_server = utf8; -- 服務器的默認字符集。使用這個語句可以修改成功,但重啟服務後會失效。根本的辦法是修改配置MYSQL文件MY.INI,character_set_server=utf8,配置到mysqld字段下。
set character_set_client = gbk; -- 來自客戶端的語句的字符集。服務器使用character_set_client變量作為客戶端發送的查詢中使用的字符集。
set character_set_results = gbk; -- 用於向客戶端返回查詢結果的字符集。character_set_results變量指示服務器返回查詢結果到客戶端使用的字符集。包括結果數據,例如列值和結果元數據(如列名)。
-- 創建數據庫時,設置數據庫的編碼方式
-- CHARACTER SET:指定數據庫采用的字符集,utf8不能寫成utf-8
-- COLLATE:指定數據庫字符集的排序規則,utf8的默認排序規則為utf8_general_ci(通過show character set查看)
drop database if EXISTS dbtest;
create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改數據庫編碼
alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;
alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 創建表時,設置表、字段編碼
use dbtest;
drop table if exists tbtest;
create table tbtest(
id int(10) auto_increment,
user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,
email varchar(60),
PRIMARY key(id)
)CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改表編碼
alter table tbtest character set utf8 COLLATE utf8_general_ci;
-- 修改字段編碼
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 查看某字段使用的編碼:
SELECT CHARSET(email) FROM tbtest;