第十二章 經典問題

2021-09-25 20:29:28 字數 2796 閱讀 8143

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 遞推 ...

第十二章 異常

一 異常的概念 錯誤 編譯器 異常 執行期,程式沒有正常按照期望執行 異常產生時,在對應位置產生異常型別物件,程式 暫停 如果上下文有異常處理程式,對應處理 沒有則 異常向上傳播 報錯退出 異常向上傳播 如果異常在函式中產生,會傳播給函式的呼叫者 如果異常在模組的頂級位置,會傳播給引用該模組的模組 ...