mysql之CREATE DATABASE Syntax(创建数据库)
一:语法
备注:数据库的字符集存储在数据库目录下的db.opt文件中,我们可通过 find / -name db.opt 查找并用less 查看相关db.opt文件如下

二:关于 CHARACTER SET 和 COLLATE
三:查看相关字符集
3.1 :查看MYSQL数据库服务器和数据库字符集
方法一:show variables like '%character%'; 方法二:show variables like 'collation%';
3.2 :查看表的字符集(show table status from 库名 like 表名)
show table status from test3 like 'students';

3.4 :查看表中所有列的字符集(show full columns from 表名;)
show full columns from test3.students;

注意:数值型的列没有 collation特性
四:修改相关的字符集
4.1.创建时指定字符集
建库时指定 create database db2 default character set=utf8 建表时指定 create table test1(id int(6),name char(10)) default character set = 'gbk';
4.2修改相关字符集
4.3 修改库的字符集(alter database 库名 default character set 字符集;)
4.4修改表字符集(alter table 表名 convert to character set 字符集;)
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
修改表的字符集mysql> show create table test1\G*************************** 1. row *************************** Table: test1Create Table: CREATE TABLE `test1` ( `id` int(6) DEFAULT NULL, `name` char(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=gbk #原字符集1 row in set (0.00 sec)mysql> alter table test1 convert to character set utf8;Query OK, 0 rows affected (0.58 sec)Records: 0 Duplicates: 0 Warnings: 0mysql> show create table test1\G*************************** 1. row *************************** Table: test1Create Table: CREATE TABLE `test1` ( `id` int(6) DEFAULT NULL, `name` char(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8 #修改后的字符集1 row in set (0.00 sec) |
4.5修改字段的字符集(alter table 表名 modify 字段名 字段属性 character set gbk;)
alter table test1 modify name char(10) character set gbk;
五:案例分析
当我们不知道因和原因创建的一个表(teacher),当我们向表中插入数据是发生乱码如下
sql : INSERT INTO teacher(tid,class_id,NAME)VALUE(312,2,'小明');
每天进步一点点

浙公网安备 33010602011771号