MySQL修改表、字段、库的字符集及字符集说明

修改数据库字符集:

ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];
把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:
ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]
如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

只是修改表的默认字符集:

ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];
如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

修改字段的字符集:

ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];
如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

查看数据库编码:

SHOW CREATE DATABASE db_name;

查看表编码:

SHOW CREATE TABLE tbl_name;

查看字段编码:

SHOW FULL COLUMNS FROM tbl_name;

查看系统的编码字符

SHOW VARIABLES WHERE Variable_name LIKE ‘character\_set\_%‘ OR Variable_name LIKE ‘collation%‘;

MySQL字符集设置

系统变量:

– character_set_server:默认的内部操作字符集

– character_set_client:客户端来源数据使用的字符集

– character_set_connection:连接层字符集

– character_set_results:查询结果字符集

– character_set_database:当前选中数据库的默认字符集

– character_set_system:系统元数据(字段名等)字符集

– 还有以collation_开头的同上面对应的变量,用来描述字符序。

用introducer指定文本字符串的字符集:

– 格式为:[_charset] ‘string’ [COLLATE collation]

– 例如:

? SELECT _latin1 ‘string’;

? SELECT _utf8 ‘你好’ COLLATE utf8_general_ci;

– 由introducer修饰的文本字符串在请求过程中不经过多余的转码,直接转换为内部字符集处理。

MySQL中的字符集转换过程

  1. MySQL Server收到请求时将请求数据从character_set_client转换为character_set_connection;
  2. 进行内部操作前将请求数据从character_set_connection转换为内部操作字符集,其确定方法如下:

? 使用每个数据字段的CHARACTER SET设定值;

? 若上述值不存在,则使用对应数据表的DEFAULT CHARACTER SET设定值(MySQL扩展,非SQL标准);

? 若上述值不存在,则使用对应数据库的DEFAULT CHARACTER SET设定值;

? 若上述值不存在,则使用character_set_server设定值。

原文地址:https://www.cnblogs.com/qiumingcheng/p/10336170.html

时间: 2024-10-08 13:48:42

MySQL修改表、字段、库的字符集及字符集说明的相关文章

MySQL修改表一次添加多个列(字段)和索引

MySQL修改表一次添加多个列(字段) ALTER TABLE table_name ADD func varchar(50), ADD gene varchar(50), ADD genedetail varchar(50); MySQL修改表一次添加多个索引ALTER TABLE  table_name ADD INDEX idx1 ( `func`), ADD INDEX idx2 ( `func`,`gene`), ADD INDEX idx3( `genedetail`);

mysql 修改表的语法详解

mysql 修改表的详细语法介绍 ALTER [IGNORE] TABLE tbl_name [alter_specification [, alter_specification] ...] [partition_options] algorithm_option: ALGORITHM [=] {DEFAULT|INPLACE|COPY} lock_option: LOCK [=] {DEFAULT|NONE|SHARED|EXCLUSIVE} alter_specification: tab

mysql 修改表引擎方法

修改表引擎方法 方法1:修改mysql.ini配置文件,重启mysql服务生效 修改my.ini,在[mysqld]下加上default-storage-engine=INNODB 其中红色字体部分是要指定的引擎名称. 用sql语句修改已经建成表的引擎: alter table tableName type=InnoDB 下面贴出我的my.ini文件供参考: [mysqld] basedir=C:\Program Files\VertrigoServ\Mysql\ datadir=C:\Prog

mysql修改表、字段、库的字符集

修改数据库字符集: ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...]; 把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集: ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...] 如:ALTER TABLE logtest CONVERT TO CHARACTER SET u

mysql修改表中某个字段的默认值

Mysql中用SQL增加.删除字段,修改字段名.字段类型.注释,调整字段顺序总结 在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿.这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现. 1.增加一个字段  代码如下 复制代码 //增加一个字段,默认为空alter table user add COLUMN new1 VA

mysql如何用sql语句修改表字段?

1.今日任务根据下表用sql语句创建表结构 2.在创建上图表结构的时候,不小心把最后一个字段写成了全大写的STATUS,看着实在不协调,于是准备修改这个字段 3.修改的方法有很多种 1.我用的是mysql数据库,可以直接选择表,右键设计表,直接修改保存就ok 2.或者直接DROP TABLE 表把表删除,重新CREATE TABLE表来新建表 2.但是我需要的是用sql语句来修改,输入下图sql语句运行一下就修改成功了 注意:有的人看到这受影响的行数为0,就要问一句到底有没有修改成功,答案是有的

MySQL修改表的默认字符集和修改表字段的默认字符集

修改表的默认字符集: ALTER TABLE table_name DEFAULT CHARACTER SET character_name; 修改表字段的默认字符集: ALTER TABLE table_name CHANGE field field field_type CHARACTER SET character_name [other_attribute] 修改表的默认字符集和所有列的字符集: ALTER TABLE table_name CONVERT TO CHARACTER SE

mysql数据表操作&库操作

首先登陆mysql:mysql -uroot -proot -P3306 -h127.0.0.1 查看所有的库:show databases; 进入一个库:use database; 显示所在的库:select database(); 开始进行数据表操作: 1,创建数据表:create table user( id smallint unsigned aotu_crement not null primary key,  //id,整型无符号位非空主键 idNum varchar(20) uni

mysql修改表结构

mysql表操作 1,//创建表 mysql>Create table usertest(id int(12) primary key not null auto_increment,url varchar(34) not null); 2,//改表名 mysql>Alter  table usertest rename to cmf_usertest; mysql>alter table zm_useroplog  day  date not null default current_