在mysql上對collate的了解

2021-09-25 10:40:03 字數 1591 閱讀 2707

今天老師在ppt上給我們建立了乙個庫

create database db3 charset=utf8 collate utf8_ general_ci

default character set utf8:資料庫字符集。設定資料庫的預設編碼為utf8,utf8中間不要"-";

collate utf8_general_ci:資料庫校對規則。ci是case insensitive的縮寫,意思是大小寫不敏感;相對的是cs,即case sensitive,大小寫敏感;還有一種是utf8_bin,是將字串中的每乙個字元用二進位制資料儲存,區分大小寫。

如果建表的時候選擇的是區別大小寫的規則而查詢的時候又暫時不想區別, 可以用類似 where column_name collate utf8_general_ci = 『***』 的寫法改變查詢使用的校對規則,新建資料 庫時一般選用utf8_general_ci就可以了。

每乙個資料庫有乙個資料庫字符集和乙個資料庫校對規則,它不能夠為空。create database 和 alter database語句有乙個可選的子句來指定資料庫字符集和校對規則:

create database db_name

[[default] character set charset_name]

[[default] collate collation_name]

alter database db_name

[[default] character set charset_name]

[[default] collate collation_name]

如果指定了character set x和collate y,那麼採用字符集x和校對規則y。

如果指定了character set x而沒有指定collate y,那麼採用character set x和character set x的預設校對規則。

如果在create table語句中沒有指定表字符集和校對規則,則使用資料庫字符集和校對規則作為預設值。

分別修改資料庫,表,字段編碼:

alter database db_name default character set utf8 collate  utf8_general_ci

alter table tbl_name default character set utf8 collate  utf8_general_ci

alter table tbl_name change 』column_name』 』column_name』 型別 character set utf8 collate utf8_general_ci

把錶預設的字符集和所有字元列(char,varchar,text)改為新的字符集:

alter table tbl_name convert to character set character_name character set utf8 collate utf8_general_ci

檢視資料庫編碼:

show create database db_name;

檢視表編碼:

show create table tb_name;

檢視字段編碼:

show full columns from tb_name;

在mysql上對collate的理解

今天老師在mysql上建立了乙個庫 create database db3 charset utf8 collate utf8 general ci 大寫的表示關鍵字 是可選項,可省略 character set 指定資料庫採用的字符集 collate 指定資料庫字符集的校驗規則 default c...

mysql8的collate問題和修改

環境 os centos 7.6 資料庫 8.0.22 64bit 問題 欄位a,b它們的collate不一樣,結果關聯的時候,發現錯誤。查詢了以下,發現挺多的,逐個修改聽麻煩的,於是整理了如下sql 生成需要修改的 內容 暫時用於 varchar型別字段,其它沒有試驗過 也可以用用於檢查 sele...

mysql 在opensuse 上安裝

1.1 zypper search mysql 1.2 zypper install mysql community server 預設目錄 可執行檔案目錄 usr bin mysql 配置檔案目錄 etc mysql 資料存放目錄 var lib mysql 配置檔案目錄 usr share my...