宜昌本地软件开发与弱电工程服务商
项目咨询 · 快速响应
您当前的位置: > 博客2 > PHP教程

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

2016-10-13 00:16:48 点击量:7 标签: 收藏本文

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

ABOUT US
宜昌农人网络科技有限公司

我们是一家提供综合软件外包与弱电工程服务的技术公司。

业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。

公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室