1. 程式人生 > >修改MySql中資料表和欄位的字符集和排序規則

修改MySql中資料表和欄位的字符集和排序規則

由於資料庫中的資料表和表字段的字符集和排序規則不統一,找了很多帖子,最後發現如下指令碼很好用。

用法兒是:先執行如下指令碼生成修改資料表和表字段的指令碼,然後再執行這些生成的指令碼。

1. 修改指定資料庫中所有varchar型別的表字段的字符集為UTF8,並將排序規則修改為utf8_general_ci

SELECT CONCAT('ALTER TABLE `', table_name, '` MODIFY `', column_name, '` ', DATA_TYPE, '(', CHARACTER_MAXIMUM_LENGTH, ') CHARACTER SET UTF8 COLLATE utf8_general_ci', (CASE WHEN IS_NULLABLE = 'NO' THEN ' NOT NULL' ELSE '' END), ';')
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = 'databaseName

'
AND DATA_TYPE = 'varchar'
AND
(
    CHARACTER_SET_NAME != 'utf8'
    OR
    COLLATION_NAME != 'utf8_general_ci'
);

2. 修改指定資料庫中所有資料表的字符集為UTF8,並將排序規則修改為utf8_general_ci
SELECT CONCAT('ALTER TABLE ', table_name, ' CONVERT TO CHARACTER SET  utf8 COLLATE utf8_unicode_ci;')
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'databaseName

'

相關推薦

修改MySql資料字符集排序規則

由於資料庫中的資料表和表字段的字符集和排序規則不統一,找了很多帖子,最後發現如下指令碼很好用。 用法兒是:先執行如下指令碼生成修改資料表和表字段的指令碼,然後再執行這些生成的指令碼。 1. 修改指定資料庫中所有varchar型別的表字段的字符集為UTF8,並將排序規則

檢視修改 mysql庫、編碼

檢視編碼 檢視資料庫編碼。 show variables like '%char%'; 查看錶編碼 show create table <表名>; 例:show create table user; 檢視欄

查詢資料庫型別

mysql: 1. 查詢資料庫中的所有表:show tables; 2. 查詢表中的欄位名和欄位型別: show columns from table_name(表名);                 &n

MySQL中大資料增加,增加索引實現

最近遇到的一個問題,需要在一張1800萬資料量的表中新增加一個欄位並新增索引,但是直接新增會導致mysql崩潰或者鎖表時間太長影響使用者操作,所以需要利用其他的方法進行新增,這篇文章主要給大家介紹了MySQL中大資料表增加欄位,增加索引的實現過程,需要的朋友可以參考借鑑。

獲取資料註釋

1、oracle:                 SELECT t1.COLUMN_NAME,                  t2.COMMENTS                  FROM user_tab_columns t1,                  user_col_comment

mysql為使用者設定資料庫,資料(列)的訪問許可權

1、mysql中對指定使用者,授予某些資料庫,資料表或者欄位訪問許可權 語法: GRANT PRIVILEGES ON DATA.TABLE TO USERS; 溫馨提示: 授權後可以使用2中命令進行使用者許可權許可權,也可以直接重啟mysql程序方式進行許可權重新整理。 A

MySQL修改資料庫、字符集

修改資料庫字符集:   程式碼如下:   ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];   把表預設的字符集和所有字元列(CHAR,VARCHAR,TEXT)改為

sql server2008給資料,新增修改註釋

 1、sqlserver用語句給表註釋 EXECUTE sp_addextendedproperty N'MS_Description', N'表註釋', N'user', N'dbo', N'table', N'表名', NULL, NULL 2、sqlserver用語句給表的“欄位”註釋 EXECUT

python讀取xml資料庫中表內所有資料,獲取資料庫所有名稱

工作中需要讀取指定xml資料庫中的資料以及 表所需欄位名,所以在已有例子中改進實現: xml 資料庫 xmldabase.xml: <database> <manifest> <pair key="schema_major_vsn" v

TP可通過對映隱藏資料

在ThinkPhP中,我們可以通過TP提供的一個關鍵字$_map來達到隱藏我們資料庫中表的欄位名的效果。 假設我們的User表裡面有username和email欄位,我們需要對映成另外的欄位,定義方式如下: 例子如下: namespace Home\Model;use Th

Oracle修改結構長度

新增欄位的語法:alter table tablename add (column datatype [default value][null/not null],….); 修改欄位的語法:al

在oracle操作註釋

1、查詢表註釋 SELECT * FROM USER_TAB_COMMENTS;三列:TABLE_NAME,TABLE_TYPE,COMMENTS 2、查詢欄位註釋 SELECT * FROM USER_COL_COMMENTS;三列:TABLE_NAME,COLUMN_NAME,COM

php mysql ajax 單多關鍵詞查詢

單表多欄位查詢在一些稍微複雜一點的查詢中十分有用。本文主要利用MySQL資料庫中的concat函式實現單表多欄位多關鍵詞查詢。並且顯示查詢結果的表格可根據所選資料表動態生成。 html程式碼 <!DOCTYPE html> <html> <h

MySQL插入多個的方法

在開發過程中,很多時候,根據需求,我們需要重新在表中新增幾個欄位。 在本地測試成功後,我們需要將自己的sql語句,提交到SVN,在版本升級的時候對現網上的資料庫表進行更新。 那麼如何寫插入欄位的sql語句呢?下面這個例子可以做一個簡單地示例: alter table ip_doma

mysql搜尋多模糊查詢

select parttime_job_business_assessments.*, u.nick_name, u.mobile, pj.name as job_name, b.name as business_name from `parttime_job_business_assess

mysql兩個int建立聯合索引,沒有用到索引

這兩天有一個任務表 t_task_list ,搜尋條件下面都有,相關的索引也有,但就是用不到索引,應該是跟資料分佈有關,所以對索引做了調整。 最重要的不是對索引做了調整,而是,不要以為建了索引就一定能用到,還是根據資料的分佈情況來決定的,以後多注意吧,有慢查詢,一定看sql,看expl

MySQL使用表別名與別名

MySQL 表別名(Alias) SQL 表別名 在 SQL 語句中,可以為表名稱及欄位(列)名稱指定別名(Alias),別名是 SQL 標準語法,幾乎所有的資料庫系統都支援。通過關鍵字 AS 來指定。 表別名語法: SELECT column FROM tab

mysql把一個某個的內容複製到另一張的某個的SQL語句寫法

需求:把一個表某個欄位內容複製到另一張表的某個欄位。 實現sql語句1: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_folder f2 ON f1.name = f2.

mysql查詢varchar型別的整數(去除小數)

(假設我們有一個students表,表中有個varchar型別的number欄位) 第一次我使用round()函式找出四捨五入後等於其本身的數字: SELECT number FROM student

Oracle查詢資料結構//型別/大小

Oracle資料庫字典在Oracle的絕大多數資料字典檢視中都有象DBA_TABLES,ALL_TABLES和USER_TABLES這樣的檢視家族。Oracle中有超過100個檢視家族,下表列出了最重要和最常用的檢視家族,需要注意的是每個檢視家族都有一個DBA_,一個ALL_