mysql用sql语句创建表和数据库怎么设置字符编码&39;

ALTER TABLE DEMO ADD AGE CHAR(3);,我们用视图工具DBVISUAL看下表机构,这时AGE字段是CHAR类型的 我们如果需要把这个字段修改为VARCHAR类型的怎么办呢,ALTER TABLE DEMO MODIFY AGE VARCHAR(20),然后我们在用视图工具DBVISUAL看下表机构,这时AGE字段是VARCHAR类型的 ...
mysql用sql语句创建表和数据库怎么设置字符编码&39;
-- 创建数据库时,设置数据库的编码方式 -- CHARACTER SET:指定数据库采用的字符集,utf8不能写成utf-8-- COLLATE:指定数据库字符集的排序规则,utf8的默认排序规则为utf8_general_ci(通过show character set查看)drop database if EXISTS dbtest;create database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改数据库编码alter database dbtest CHARACTER SET GBK COLLATE gbk_chinese_ci;alter database dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 创建表时,设置表、字段编码use dbtest;drop table if exists tbtest;create table tbtest(id int(10) auto_increment,user_name varchar(60) CHARACTER SET GBK COLLATE gbk_chinese_ci,email varchar(60),PRIMARY key(id))CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 修改表编码alter table tbtest character set utf8 COLLATE utf8_general_ci;-- 修改字段编码ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
-- 查看所有的字符编码SHOW CHARACTER SET;-- 查看创建数据库的指令并查看数据库使用的编码show create database dbtest;
-- 查看数据库编码:show variables like '%char%';
-- 设置character_set_server、set character_set_client和set character_set_resultsset character_set_server = utf8; -- 服务器的默认字符集。使用这个语句可以修改成功,但重启服务后会失效。根本的办法是修改配置MYSQL文件MY.INI,character_set_server=utf8,配置到mysqld字段下。
set character_set_client = gbk; -- 来自客户端的语句的字符集。服务器使用character_set_client变量作为客户端发送的查询中使用的字符集。
set character_set_results = gbk; -- 用于向客户端返回查询结果的字符集。character_set_results变量指示服务器返回查询结果到客户端使用的字符集。包括结果数据,例如列值和结果元数据(如列名)。

-- 查看某字段使用的编码:SELECT CHARSET(email) FROM tbtest;2016-09-27
方法如下:

我们先建一个DEMO表,来做我们今天的实现,建表语句如下:
CREATE TABLE
DEMO
(
NAME VARCHAR(50) COMMENT '姓名',
SEX CHAR(1) COMMENT '性别',
PRIMARY KEY (NAME)
)
ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='例子表';
并且select查询一下,如下图

增加一个AGE字段,
ALTER TABLE DEMO ADD AGE CHAR(3);
select查询一下,如下图
请对比上下图,可以发现 多出了一个AGE字段,此处是CHAR类型的。

那么如何删除我们刚加的字段呢,
ALTER TABLE DEMODROP COLUMN AGE;
select查询一下,如下图
请对比上下图,可以发现 AGE字段被删除掉了

我们在把这个字段加回来
ALTER TABLE DEMO ADD AGE CHAR(3);,
我们用视图工具DBVISUAL看下表机构,这时AGE字段是CHAR类型的

我们如果需要把这个字段修改为VARCHAR类型的怎么办呢,
ALTER TABLE DEMO MODIFY AGE VARCHAR(20),
然后我们在用视图工具DBVISUAL看下表机构,这时AGE字段是VARCHAR类型的

2018-03-31
ASCII用途:用来映射简单的单字节字符,比如大小写英文字母、阿拉伯数字、常用的标点符、运算符、控制字符等。编码范围:U+0000 - U+007F注意:对于用这类字符的场景够用了,但是却无法表达比如汉字,日文等编码。2. UNICODE用途:用来映射包含 ASCII 以内的其他的所有字符。编码范围:U+0000 - U+10FFFF注意:ASCII 是 UNICODE 的子集,ASCII 编码的字符可以无损转换为 UNICODE 编码的字符。MySQL 常用字符集1. Latin1Latin1 是 cp1252 或者 ISO-8859-1 的别名。ISO-8859-1 编码是单字节编码,向下兼容 ASCII。编码范围:U+0000 - U+00FFISO-8859-1 收录的字符除 ASCII 收录的字符外,还包括西欧语言、希腊语、泰语、阿拉伯语、希伯来语对应的文字符号。单字节内的空间都被 ISO-8859-1 编码占用,所以能够用 ISO-8859-1 编码存储、传输其他任何编码的字节流。比如把一个 Utf8mb4 的编码或者 GBK 的编码存入 Latin1,不会有任何问题。因为 Latin1 保留了原始的字节流,这也就是 MySQL 长期以来把 Latin1 做默认字符集的原因。但是由于 Latin1 对任何字符都存放字节流,造成了字符个数的浪费。比如:CHAR(10) CHARACTER SET LATIN1;CHAR(10) CHARACTER SET UTF8;该字段中存储字符个数 UTF8 是 Latin1 的三倍!!!2. GB18030GB18030 是中国官方标准字符集,向前兼容 GBK、GB2312,是这两个的超集。用 1、2、4 个字节分别表示一个符号。比如对一般中文字符,默认是用两个字节编码存储。Windows 系统,默认用的就是 GB18030。若只是存储中文字符,那 GB18030 最佳。原因有两点:1)占用空间小,比如比 UTF8 小。2)存储的汉字根据拼音来排序,检索快。
3. UTF8UTF8 是 Unicode 的编码实现,可以存储 UNICODE 编码对应的任何字符, 这也是使用最多的一种编码。最大的特点就是变长的编码方式,用 1 到 4 个字节表示一个符号,可以根据不同的符号编码字节长度。字母或数字用 1 字节,汉字用 3 字节,emoji 表情符号用 4 字节。UTF8 字符集目前是使用最广泛的。注意!MySQL 里常说的 UTF8 是 UTF8MB3 的别名,UTF8MB3 是 UTF8MB4 的子集,UTF8MB4 才是真正的 4 字节 UTF8 字符集!UTF8MB3 表示最大支持 3 个字节存储字符,UTF8MB4 表示最大 4 个字节存储字符。根据实际需要和未来展望,MySQL 8.0 已经默认用 UTF8MB4 基础字符集。
2020-10-28
mengvlog 阅读 8 次 更新于 2025-07-21 03:09:17 我来答关注问题0
  • 1. 确保字段在存储层SQL查询中具备高效性,比如在写入操作时需要考虑是否应添加索引,以优化查询性能。2. 考虑到数据安全性和一致性,合理设计唯一性约束,例如通过在索引前添加UNIQUE关键字实现唯一索引。针对不同情况,添加索引的方式略有差异。在表尚未建立时,可以直接在创建表语句的主键或索引部分,明...

  • 在MySQL中创建数据库和数据表的步骤如下:登录MySQL:在命令提示符中输入 mysql u root p 并回车。系统会提示你输入密码,输入密码后回车即可进入MySQL命令行模式。创建数据库:使用 CREATE DATABASE databasename; 命令来创建一个新的数据库。其中,databasename 是你想要创建的数据库的名称。例如:sql...

  •  文暄生活科普 如何利用Mysql创建数据库和建表?

    要利用MySQL创建数据库和建表,首先需要确保你的环境中已经安装并配置了MySQL服务器。在命令行或MySQL客户端工具中,使用SQL语句`CREATE DATABASE DBNAME;`来创建数据库。这里的`DBNAME`是你要创建的数据库名称,可以根据需要自定义。执行这条命令后,数据库将被创建,你可以使用`SHOW DATABASES;`命令查看...

  •  多彩生活小贴士 这道mysql数据库怎么用SQL建立表?

    1. 若想在db_shop库中创建一个名为staffer的职员表的备份,包括所有记录,可以使用以下SQL语句:```sql create table db_shop.staffer_bak as select * from db_shop.staffer;```2. 要查看staffer_bak表的结构,可以使用以下SQL命令:```sql desc db_shop.staffer_bak;```3. 向staffer_bak2...

  • 答案:在MySQL中,可以使用`CREATE TABLE IF NOT EXISTS`语句来创建表。如果该表已经存在,则该语句不会执行任何操作。详细解释:1. CREATE TABLE语句的基本功能:`CREATE TABLE`是SQL中用于创建新表的语句。通过该语句,可以定义表的结构,包括列名、数据类型和其他属性。2. IF NOT EXISTS的作用:当...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部