·您当前的位置:首页 > 技术教程 > PHP教程 >

[php]建表并指定数据库编码Mysql数据库的编码

时间:2014-08-22 14:58酷播
[php]建表并指定数据库编码CREATE TABLE 指定编码,Mysql数据库的编码分为四级:

Mysql数据库的编码分为四级:

1、Mysql数据库服务器编码;

(在相应的配置文件中,需要修改配置文件)

2、Mysql数据库编码;

(可以在创建的时候指定,也可以在创建之后进行修改)

3、Mysq数据库中表的编码;

(可以在创建的时候指定,也可以在创建之后进行修改)

4、Mysql数据库表中字段的编码;

(可以在创建的时候指定,也可以在创建之后进行修改)

 

数据库编码选择的一般准则:

1、GBK/GB2312

适合纯中文存储的数据库

2、LATIN1

适合于纯英文的存储

3、UTF8

适合中英文混合编码的存储。

 

创建数据库database并指定编码和修改数据库编码: (数据库)

方法1、

create database db_name default character set utf8

方法2、

create database db_name default charset=utf8

修改DB的编码:

alter database db_name default character set utf8;

创建表table并指定编码:(表)

方法1、

create table table_name

(

......//字段信息

)default character set utf8;

方法2、

create table table_name

(

......//字段信息

)default charset=utf8;

修改表table的编码:

alter table table_name default character set utf8

 

指定字段field的编码: (字段) 仅有一种方法

方法:

create table table_name

(

filed_name varchar(20) character set utf8 //注意不能有default

);
修改字段field编码:

方法:

假如字段的限制是 varchar(20) not null default '';

alter table table_name change old_filed_name new_filed_name varchar(20) not null default 'abc' character set utf8;

change和modify的区别,modify只能修改字段属性,change可以修改字段名。

mysql set names 问题
mysql_query("set names 'utf8'");
一直以来总以为set names 是用来设置msyql 的字符集的,最近作个东西才发现自己认识上的错误,
查一下手册
set names ‘x‘语句与这三个语句等价:
mysql> SET character_set_client = x;
mysql> SET character_set_results = x;
mysql> SET character_set_connection = x;

set names 应该与前台页面的字符编码一致。

mysql -hhostname -Pport -uusername -ppassword -e sql,不用在mysql的提示符下运行mysql,即可以在shell中操作mysql的方法。

这个中可以使用这个指定编码,避免乱码:

mysql -hhostname -Pport -uusername -ppassword --default-character-set=utf8 -s -e sql

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器