在MySQL中插入資料時遇到的中文亂碼問題

2021-07-26 10:24:22 字數 774 閱讀 8057

當向mysql資料庫插入含有中文的資料時,insert into s_user (userid,username,logonname,logonpwd) values (1,'超級管理員','admin','admin'),出現亂碼問題,可以適用show variables like 'character%'來檢視當前資料庫的相關編碼集。從上圖中可以看到 mysql 有六處使用了字符集,分別為:client 、connection、database、results、server 、system。其中與伺服器端相關:database、server、system(永遠無法修改,就是utf-8);與

客戶端相關:connection、client、results 。

了解了上面的資訊我們來分析下亂碼的原因,問題出在了當前的 cmd 客戶端視窗,因為當前的 cmd 客戶端輸入採用 gbk 編碼,而資料庫的編碼格式為 utf-8,編碼不一致導致了亂碼產生。而當前 cmd 客戶端的編碼格式無法修改,所以只能修改 connection、 client、results 的編碼集來告知伺服器端當前插入的資料採用 gbk 編碼,而伺服器的資料庫雖然是採用 utf-8 編碼,但卻可以識別通知伺服器端的 gbk 編碼資料並將其自動轉換為 utf-8 進行儲存。可以使用如下語句來快速設定與客戶端相關的編碼集:set names gbk;

PostgreSQL在插入資料時校驗重複

insert into user display name,telephone,address,username,password select 王凱歌 null,null,wangkaige 2a 10 i2wwn3afp8t where not exists select idfrom user...

MySql在表中插入字段

最近在修改 時用到了一些資料庫的操作,平時很少用,記個筆記 1 在表中插入新的字段 命令 alter table 表名 add 要插入的字段 int default 0 例項 cstring str alter table tableinfo add num int defualt 0 db.ope...

MySQL和SQLServer在插入資料上的差別

環境 mysql sever 5.1 sqlserver 2008 r2 問題 mysql和sqlserver在插入資料上的差別 先看兩張圖 在mysql裡建立表,主鍵自增,在插入資料時,不指定列名 表示對每個欄位都賦值 會報列數不匹配,指定列名後插入正常 而在sqlserver裡,表的主鍵同樣是自...