mysql> insert into t_stu values(1,'張三','男');
error 1366 (hy000): incorrect string value: '\xd5\xc5\xc8\xfd' for column 'sname' at row 1
原因:安裝資料庫時選擇utf8,伺服器端認為你的客戶端的字符集是utf-8,而實際上你的客戶端的字符集是gbk。
檢視所有字符集:show variables like 『character_set_%』;
解決方案,設定當前連線的客戶端字符集「set names gbk;」
set names gbk;是為了告訴伺服器,客戶端用的gbk編碼,防止亂碼。
有的時候,這樣還不能解決,例如,某些win10作業系統環境下,那麼修改命令列的屬性-》選項-》勾選使用舊版控制台,然後重啟電腦
1:通過任務管理器或者服務管理,關掉mysqld(服務程序)
2:通過命令列+特殊引數開啟mysqld
mysqld --skip-grant-tables
3:此時,mysqld服務程序已經開啟,並且,不需要許可權檢查.
4:mysql -uroot 無密碼登陸伺服器.
5: 修改許可權表
(1) use mysql;
(2) update user set password = password(『123456』) where user = 『root』;
(3)flush privileges;
6:通過任務管理器,關掉mysqld服務程序.
7:再次通過服務管理,打mysql服務。
8:即可用修改後的新密碼登陸.
關於sql的關鍵字和函式名等不區分大小寫,但是對於資料值是否區分大小寫,和字符集與校對規則有關。
_ci(大小寫不敏感),_cs(大小寫敏感),_bin(二元,即比較是基於字元編碼的值而與language無關)
(1)檢視所有字符集和校對規則
(2)檢視gbk和utf-8字符集的校對規則
utf8_unicode_ci和utf8_general_ci對中、英文來說沒有實質的差別。
utf8_general_ci 校對速度快,但準確度稍差。
utf8_unicode_ci 準確度高,但校對速度稍慢。
如果你的應用有德語、法語或者俄語,請一定使用utf8_unicode_ci。一般用utf8_general_ci就夠了。
(3)檢視伺服器的字符集和校對規則
(4)檢視和修改某個資料庫的字符集和校對規則
或
修改資料庫的字符集和校對規則:
alter database 資料庫名稱 default character set 字符集名稱 【collate 校對規則名稱】;
例如:alter database ceshi_db default character set utf8 collate utf8_general_ci;
注意:修改了資料庫的預設字符集和校對規則後,原來已經建立的**的字符集和校對規則並不會改變,如果需要,那麼需要單獨修改。
(5)檢視某個**的字符集和校對規則
檢視字符集:show create table users;
如果要檢視校對規則:show table status from bookstore like 『%users%』 ;
修改某個**的字符集和校對規則:
修改表的預設字符集:
alter table 表名稱 default character set 字符集名稱 【collate 校對規則名稱】;
把錶預設的字符集和所有字元列(char,varchar,text)改為新的字符集:
alter table 表名稱 convert to character set 字符集名稱 【collate 校對規則名稱】;
例如:alter table ceshi_table default character set gbk collate gbk_chinese_ci;
第十二章 檔案
文字檔案 文字檔案是一種由若干字元構成的檔案,可以用文字編輯器進行閱讀或編輯。以txt py html等為字尾的檔案都是文字檔案。2.二進位制檔案 二進位制檔案一般是指不能用文字編輯器閱讀或編輯的檔案。以 mp4 png等為字尾的檔案都是二進位制檔案,如果想要開啟或修改這些檔案,必須通過特定軟體進行...
第十二章 dp
動態規劃策略 將原始問題拆分為多個子問題,將子問題結果記錄,方便復用子問題的解 遞迴 記憶化 遞推 是動態規劃的一體兩面,本質都是一樣的 遞推減少了呼叫次數,空間上還能優化,一般選擇遞推方式 遞迴 記憶化 int memo maxn 將o 2 n o n intfibonacci int n 遞推 ...
第十二章 異常
一 異常的概念 錯誤 編譯器 異常 執行期,程式沒有正常按照期望執行 異常產生時,在對應位置產生異常型別物件,程式 暫停 如果上下文有異常處理程式,對應處理 沒有則 異常向上傳播 報錯退出 異常向上傳播 如果異常在函式中產生,會傳播給函式的呼叫者 如果異常在模組的頂級位置,會傳播給引用該模組的模組 ...