一.設定表的字元編碼
有時候mysql中的表需要儲存中文,需要設定表的字元編碼為utf8,否則預設的字元編碼有可能不能正確處理中文,那麼在mysql中,如何設定表的字元編碼呢?如下:
方法一:建立表的時候指定編碼形式和
// 改變整張表的編碼
mysql> create tablestu_test
(
->id
int(11) not null,
->name
varchar(10) default null,
-> *** enum(『男』,『女』),
-> primary key (id
)
-> ) charset=utf8;
query ok, 0 rows affected (0.04 sec)
方法二:
create tablestudent_tb2
(
sname
varchar(10) character set utf8
);在資料型別之後 + character set 編碼
方法三:
還有一種方式是通過改變mysql編碼的形式,是通過改變mysql的配置檔案,改變下面紅框圈出來的為utf-8,記得操作之後一定要重新啟動mysql服務,需要新建資料庫老的資料庫還是之前的編碼。
方法四:
如果定義的字串型別想使用utf8編碼,在定義的時候不適用char或者varchar來定義而是使用nchar或者nvarchar
例:create table user(id int ,name nvarchar(10)));
create table user(id int,*** nchar(2));
方法五:
create table ***_tb2(
s*** enum(『m』,『w』)
);alter table ***_tb2 modify s*** enum(『男』,『女』) character set utf8;
二.修改儲存引擎
方法一:
可以在建立表的時候指定儲存引擎,如下:
create table ai (
i bigint(20) not null auto_increment,
primary key (i)
) engine=innodb default charset=utf8;
方法二也可以修改已存在表的儲存引擎,如下:
alter table user engine = innodb;
方法三還可以修改配置檔案,mysql server啟動的時候都會載入乙個配置檔案,windows下是my.ini檔案,linux下是my.cnf檔案,開啟配置檔案,在[mysqld]下面新增如下內容,儲存,重啟mysql server伺服器,預設就採用配置項指定的儲存引擎了。記得操作之後一定要儲存再重新啟動mysql服務,需要新建資料庫老的資料庫用的還是老的儲存引擎。
位元組,字元,編碼和儲存
位元組 octet 是乙個八位的儲存單元,取值範圍一定是0 255。字元 character 為語言意義上的符號,範圍不一定。例如 a,b,上,中,等。編碼 encode 為每個字元指定乙個數值,同時確定數值的表示方法。儲存 字元編碼在計算機中儲存方式,big endian 高位元組在前,低位元組在...
MySQL檢視和修改表的儲存引擎
1 檢視系統支援的儲存引擎 show engines 2 檢視表使用的儲存引擎 兩種方法 a show table status from db name where name table name b show create table table name 如果顯示的格式不好看,可以用 g代替行...
MySQL檢視和修改表的儲存引擎
1 檢視系統支援的儲存引擎 show engines 2 檢視表使用的儲存引擎 兩種方法 a show table status from db name where name table name b show create table table name 如果顯示的格式不好看,可以用 g代替行...