修改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‘

原文地址:https://www.cnblogs.com/denghuachengle/p/10436452.html

时间: 2024-10-02 22:26:35

修改MySql中数据表和字段的字符集和排序规则的相关文章

(jsp+servlet+html+jdbc)修改mysql中数据表信息

步骤: 以下没写到的都是之前两个的代码没变 注意:一定要导入.jar包 1.创建一个Java EE工程 2.在之前的all.jsp中加两条代码,如下图:---all.jsp 3.再建一个修改页面,如下图:----edit.jsp 图中value="<%=c.getCustomerID()%>和其他那些相同的意思是:获取新参数信息 <input type="hidden" name="CustomerID" value="<

MySQL中大数据表增加字段,通过增加索引实现

MySQL中大数据表增加字段,通过增加索引实现 普通的添加字段sql ALTER TABLE `table_name` ADD COLUMN `num` int(10) NOT NULL DEFAULT 0 AFTER `addtime`; 普通的添加索引sql ALTER TABLE `table_name` ADD INDEX `num` (`num`) ; 但是线上的一张表如果数据量很大呢,执行加字段操作就会锁表,这个过程可能需要很长时间甚至导致服务崩溃,那么这样操作就很有风险了. 在网上

MySQL中数据表的增操作

今天学习到表的增操作,写个博客总结一下,PS:下面所有的注释都是我在电脑上全部操作完成后,再复制到记事本上添加的.至于在执行的时候可不可以那样添加注释,就有待考证了. 选择库 mysql> show databases;#查看目前有哪些数据库存在 +--------------------+ | Database | +--------------------+ | information_schema | | ceshi_ku | | mysql | | performance_schema

MySQL中数据表的查操作

查询数据表的全部内容 mysql> show tables;#查看当前数据库下的所有表 +--------------------+ | Tables_in_ceshi_ku | +--------------------+ | biao | | ceshi_biao | +--------------------+ 2 rows in set (0.00 sec) mysql> select * from biao;#查看该表所有的内容,*代表通配符,在这里是代表所有的列 +------+-

MySQL中数据表的基本操纵

本文基于对国家863中部软件孵化器编著的<MySQL从入门大精通>一书的操作实践.  一.创建数据表 数据表属于数据库,在创建数据表之前,应该使用语句 USE 数据库名  指定操作是在那个数据库中进行. 创建数据表的语句为CREATE TABLE ,语法规则如下: 1 CREATE TABLE 表名 2 ( //为括号 3 字段名1 数据类型 [列级别约束条件] [默认值], 4 字段名1 数据类型 [列级别约束条件] [默认值], 5 ...... 6 [表级约束条件] 7 ); //要有分

MySQL学习笔记(7)之字符集和校对规则

字符集和校对规则 1.字符集:一套符号和字符编码的集合. 2.校对规则:在字符集内用于比较字符的一套规则. 3.安装数据库时最好用我们定好的编码. 4.建立表时可指定字符集:.....charset=[gdk/utf8]: 5.查看编码变量:show varchar like '%char%'; – character_set_server:默认的内部操作字符集 – character_set_client:客户端来源数据使用的字符集 – character_set_connection:连接层

MySQL学习笔记(5)之字符集和校对规则

字符集和校对规则 1.字符集:一套符号和字符编码的集合. 2.校对规则:在字符集内用于比较字符的一套规则. 3.安装数据库时最好用我们定好的编码. 4.建立表时可指定字符集:.....charset=[gdk/utf8]: 5.查看编码变量:show varchar like '%char%'; – character_set_server:默认的内部操作字符集 – character_set_client:客户端来源数据使用的字符集 – character_set_connection:连接层

mysql中数据表

概述: 数据表(或称表)是数据库中最重要的组成部分之一,是其他对象的基础. 关系型数据库就是一张二维表格 行称之为记录 列称之为字段 打开数据库:USE+数据库名称 查看所选择的数据库  SELECT  DATABASE(); 创建数据表 CREATE TABLE [IF NOT EXISTS] table_name(column_name data_type,..) 查看数据表是否存在,SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE exp

Mysql建库,字符集和排序规则

一般对于中文使用都是用utf8字符集和utf8_general_ci 的排序规则 为什么要选用这两种方式可以参考~~~ 哪篇帖子~下次找到贴上来 mysql>CREATE DATABASE IF NOT EXISTS my_db default charset utf8 COLLATE utf8_general_ci; #注意后面这句话 "COLLATE utf8_general_ci",大致意思是在排序时根据utf8变码格式来排序 #那么在这个数据库下创建的所有数据表的默认字符