在資料庫的操作中總是會涉及到字串的寫入,如果我們寫的字元都是英文本元,很ok,沒有問題。
但如果我們運算元據庫的時候要寫入一些中文字串,因為資料庫對於中文字元的編碼是後來相容的,而且我們在建立資料庫的時候,系統預設給定的編碼方式是latin1,這種編碼方式是不相容中文字元的,寫入中文字元以後顯示出來的是亂碼,而表以及欄位的編碼方式在預設情況下是與建立資料庫的時候編碼方式是一致的。
所以接下來介紹一些關於 mysql 的資料庫、表以及欄位的編碼方式的一些操作。
建立資料庫指定編碼
以下是建立資料庫時指定相容中文字元的utf-8編碼的語句。
create
database utf8_test default
character
='utf8'
;
然後可以切換到這個資料庫,用如下命令檢視該資料庫編碼方式:
use utf8_test;
show variables like
'%character%'
;
修改資料庫指定編碼
如果我們在建立資料庫的時候使用的預設的latin1,可以通過如下方式修改資料庫編碼方式。
create
database default_test;
use default_test;
show variables like
'%character%'
;alter
database default_test default
character
set=
'utf8'
;show variables like
'%character%'
;
alter 那一行就是修改資料庫編碼方式的語句。
建立表指定編碼
create
table utf8_table (..
....
.)engine
=innodb
default
charset
='utf8'
;
使用檢視建立表的語句,可以知道表的編碼方式:
show
create
table utf8_table;
修改表指定編碼
選擇乙個使用預設編碼的資料庫,也就是編碼方式為latin1的資料庫,然後建立一張表不指定編碼方式,表的編碼方式就是預設的latin1.
使用以下語句修改表的編碼方式:
alter
table latin1_table character
set=
'utf8'
;
欄位的編碼在建立欄位的時候是跟隨表的編碼的方式,可以做個測試:
1)建立一張表結構為latin1的表
2)修改表的編碼方式為utf8
3)使用以下語句檢視欄位的編碼方式:
show
full
columns
from column_latin1;
可以看到即使修改表的編碼方式後,欄位的編碼方式還是latin1
修改字段編碼
alter
table column_latin1 modify
column remark varchar(12
)character
set utf8;
MySQL資料庫(一) 資料庫基礎
資料庫介紹 db database 資料庫 dbms database management system 資料庫管理系統 dba 資料庫管理員 database administrator 資料 描述事物的符號記錄稱為記錄 數字 文字 影象 聲音 表 不同的組織記錄在一起形成表 資料庫 資料的集合...
MySQL(一)資料庫概念
一 資料庫 是使用者存放資料 訪問資料 運算元據的儲存倉庫,使用者的各種資料被有組織的存放在資料庫中。可以隨時被有許可權的使用者查詢 統計 新增 刪除 和修改,是長期儲存在計算機內的,有組織 可共享的資料集合。二 資料模型 1 層次模型 層次模型若用圖來表示,層次模型是一棵倒立的樹。在資料庫中,滿足...
mysql 一 資料庫基礎
1.什麼是資料庫?資料庫 database,儲存資料的倉庫,高效的儲存和處理資料的介質 介質主要是兩種 磁碟和記憶體 2.資料庫分類?資料庫基於儲存介質的不同 分為兩類 關係型資料庫 sql 和非關係型資料庫 nosql not only sql,不是關係型的資料庫都叫非關係型資料庫 3.不同的資料...