mysql create database to_mysql之CREATE DATABASE Syntax(创建数据库)

一:语法

{} create_specification:[DEFAULT] CHARACTER SET [=] charset_name #指定字符集| [DEFAULT] COLLATE [=] collation_name #specifies the default database collation (排序规则)例如:创建数据库并指定字符集  create database db2 default character set=utf8

备注:数据库的字符集存储在数据库目录下的db.opt文件中,我们可通过  find / -name db.opt  查找并用less 查看相关db.opt文件如下

b1423ff299f6f4baa5301e1263e40dd9.png

二:关于  CHARACTER SET  和   COLLATE

三:查看相关字符集

3.1 :查看MYSQL数据库服务器和数据库字符集

方法一:show variables ;

3.2 :查看表的字符集(show table status from 库名 like  表名)

show status test3 ;

c71597ca4f5e8bf3dbe927717543c27e.png

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

show full columns from test3.students;

5aa21e574555e151c052d06f92f8c3e0.png

注意:数值型的列没有 collation特性

四:修改相关的字符集

4.1.创建时指定字符集

db2 test1(id (),name ()) ;

4.2修改相关字符集

character_set_connectioncharacter_set_databasecharacter_set_resultscharacter_set_serverset character_set_system=utf8;set collation_connection=utf8;set collation_database=utf8;set collation_server=utf8;

4.3 修改库的字符集(alter database 库名 default character set 字符集;)

mysql show . row : `shiyan` row (mysql> alter database shiyan default character set gbk;

Query OK,1 row affected (0.00 sec)

4.4修改表字符集(alter table 表名 convert to character set 字符集;)

show create table test1\G

*************************** 1. row ***************************

Table: test1

Create 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: 0

mysql> show create table test1\G

1. row

Table: test1

Create 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;)

test1 modify name () gbk;

五:案例分析

当我们不知道因和原因创建的一个表(teacher),当我们向表中插入数据是发生乱码如下

sql : INSERT INTO teacher(tid,class_id,NAME)VALUE(312,2,'小明');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值