mysql新建表给字符集_mysql字符集 创建表经验

1.我们可以在4个level指定字符集,server, database, table, and column。2.mysql在字符集方面的功能

2.1  以各种字符集存储字符串。

2.2  用不同的collation比较字符。

2.3在4个level指定字符集,server, database, table, and column

2.4查看server的当前字符集,character_set_server and

collation_server system

variables. 并且在服务器运行时可以改变这些变量。

2.5  database

2.5.1  创建database

CREATE DATABASE db_name

[[DEFAULT] CHARACTER SET charset_name]

[[DEFAULT] COLLATE collation_name]

ALTER DATABASE db_name

[[DEFAULT] CHARACTER SET charset_name]

[[DEFAULT] COLLATE collation_name]2.5.2 创建database时,如果没有特别指定,使用server的character set and server collationcharacter set和collation作用于 LOAD DATA

INFILE。

2.6 table

CREATE TABLE tbl_name (column_list)

[[DEFAULT] CHARACTER SET charset_name]

[COLLATE collation_name]]

ALTER TABLE tbl_name

[[DEFAULT] CHARACTER SET charset_name]

[COLLATE collation_name]表一级的字符集设定是mysql的特性 ,标准sql里是没有的。

2.7 column

每一个字符的column( e CHAR,

VARCHAR, or

TEXT) has a column character

set and a column collation.

2.8  如何查看相应级别的字符集,可以查看mysql的常用命令。

2.9  每个字符串字面都有字符集和collation两个属性。

Every character string literal has a character set and a

collation。2.10  连接的字符集和collation.

3.创建表的一些经验:

3.1首先创建表之前应当确认一下当前的字符集环境。

show variables like 'char%'

3.2 测试结果

测试用mysql版本mysql5.0.37

1 在 mysql> 提示符下执行create table命令

1.1   create table *****kill摒弃这种不确定性操作

1.2  set names gbk; create table     !ok

1.3  set names utf8 ; create table  !ok

2   利用文件导入到数据库

2.1   文件gbk   文件内容  set names gbk; create table  利用set names utf8查看正常

2.2   文件gbk   文件内容  set names utf8; create table  不管怎么看都是乱码了,呵呵.

2.3   文件utf8   文件内容  set names utf8; create table  利用set names utf8查看正常

2.4    文件utf8   文件内容  set names gbk; create table  利用set names gbk查看正常.

2.5    文件utf8   文件内容   create table  *****kill摒弃这种不确定性操作

2.6    文件gbk   文件内容   create table  *****kill摒弃这种不确定性操作

3  通过load data 导入xls文件到数据库中,再利用mysqldump导出相应表的sql文件file.sql

3.1  file.sql为gbk  test数据库

set names gbk查看: data为乱码  comment 乱

set names utf8查看: data为正常 comment 乱

3.2  file.sql为utf8   test2

set names utf8查看: data正常   coment乱

3.3  file.sql为gbk

3.3.1 create table:set names utf8; insert table : set names gbk   test3

如果这个表导入数据库后,dump导出是乱码那么终究还是有些问题的,可以考虑重新load和dump,能够解决问题。

测试用mysql版本mysql5.0.37

1 在 mysql> 提示符下执行create table命令

1.1   create table *****kill摒弃这种不确定性操作

1.2  set names gbk; create table     !ok

1.3  set names utf8 ; create table  !ok

2   利用文件导入到数据库

2.1   文件gbk   文件内容  set names gbk; create table  利用set names utf8查看正常

2.2   文件gbk   文件内容  set names utf8; create table  不管怎么看都是乱码了,呵呵.

2.3   文件utf8   文件内容  set names utf8; create table  利用set names utf8查看正常

2.4    文件utf8   文件内容  set names gbk; create table  利用set names gbk查看正常.

2.5    文件utf8   文件内容   create table  *****kill摒弃这种不确定性操作

2.6    文件gbk   文件内容   create table  *****kill摒弃这种不确定性操作

3  通过load data 导入xls文件到数据库中,再利用mysqldump导出相应表的sql文件file.sql

3.1  file.sql为gbk  test数据库

set names gbk查看: data为乱码  comment 乱

set names utf8查看: data为正常 comment 乱

3.2  file.sql为utf8   test2

set names utf8查看: data正常   coment乱

3.3  file.sql为gbk

3.3.1 create table:set names utf8; insert table : set names gbk   test3

如果这个表导入数据库后,dump导出是乱码那么终究还是有些问题的,可以考虑重新load和dump,能够解决问题。

--测试用mysql版本mysql5.0.37

--1 在 mysql> 提示符下执行create table命令

--1.1   create table *****kill摒弃这种不确定性操作

--1.2  set names gbk; create table     !ok当然最好是utf8的

--1.3  set names utf8 ; create table  !ok

--2   利用文件导入到数据库

--2.1   文件gbk   文件内容  set names gbk; create table  利用set names utf8查看正常

--2.2   文件gbk   文件内容  set names utf8; create table  不管怎么看都是乱码了,呵呵.

--2.3   文件utf8   文件内容  set names utf8; create table  利用set names utf8查看正常

--2.4    文件utf8   文件内容  set names gbk; create table  利用set names gbk查看正常.

--2.5    文件utf8   文件内容   create table  *****kill摒弃这种不确定性操作

--2.6    文件gbk   文件内容   create table  *****kill摒弃这种不确定性操作

--3  通过load data 导入xls文件到数据库中,再利用mysqldump导出相应表的sql文件file.sql

--3.1  file.sql为gbk  test数据库

--set names gbk查看: data为乱码  comment 乱

--set names utf8查看: data为正常 comment 乱

--3.2  file.sql为utf8   test2

--set names utf8查看: data正常   coment乱

--3.3  file.sql为gbk

--3.3.1 create table:set names utf8; insert table : set names gbk   test3

--总结:表的数据格式最好是utf8的,例如:我们如果我们用mysqldump出来的数据是gbk格式的,我们可以用iconv或enca转换为utf8文件,删除文件中的多余-- 和/**/这些,再在文件中加入set names utf8即可,这样我们的表的字符集create table和insert 的字符集是一致的,不会出现二者有一个为乱码的尴尬局面。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值