mysql字符编码的搜集
mysql字符集编码向来是一个难题,因为有时候为大多数人想的UTF8可以解决一些难题,不过不要太理想化了,有时候在window客户端下 修改成utf8,mysql是不支持的,所以还得具体问题具体分析,可是这个还真得需要你花点时间来研究
下面是一些别人的文章,在此先谢了
mysql服务器中有六个关键位置使用了字符集的概念,他们是:client、connection、database、results、server、system。
a、其中client是客户端使用的字符集,相当于网页中的字符集设置如下
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">。
b、其中的connection是连接数据库的字符集设置类型,如果php没有指明连接数据库使用的字符集类型
就按照服务器端默认的字符集设置。
c、其中database是数据库服务器中某个库使用的字符集设定,如果建库时没有指明,将使用服务器安装
时指定的字符集设置。
d、results是数据库给客户端返回时使用的字符集设定,如果没有指明,使用服务器默认的字符集。
e、server是服务器安装时指定的默认字符集设定。
f、system是数据库系统使用的字符集设定。
system一般默认是utf-8字符集,server是最高的字符集设定,database没有单独设定就按照server的字符
集设定,其他都是按照server的设定设置字符集。还有,数据库内的每个表和字段也都有字符集的概念,一般都
是根据上一级结构决定自身的字符集,比如表就根据database库的设定决定自己的字符集,字段根据表来决定自己
的字符集。
二、统一字符集的方法:(以utf-8字符集为例,因为他是目前支持文字种类最广的字符集)
1、彻底解决字符集的方法:
要彻底解决字符集的方法就是让mysql在安装的时候就是用utf-8的字符集设定,这样可以使上面的六个关键
点的编码都为utf-8。
a、 在windows下安装mysql有提示可以选择字符集,我们选择utf-8就可以了。
b、在linux下有三种安装方法,第一种是rpm包安装,这种因为我没有使用过所以没有发言权。
第二种为可执行程序安装,这种安装因为已经被编译成了latin1这种瑞典语的字符集,所以无法完全解决字
符集问题,这个版本我们后面会讲到怎么解决字符集问题。
第三种为源码自行编译安装,这种安装可以在编译时设置字符集类型,这部分主要讲这种安装方式。
在编
相关文档:
导出是,没有指定编码
方法一 phpmyadmin处理方式
检查php-mbstring是否有可装,没有安装上 yum -y install php-mbstring
打开phpmyadmin 中导出,再从phpmyadmin 导入是选取二制进(binary)
如果还不行,在my.cnf mysqld中加入 default-character=你的编码, 重启mysql 再试 ......
MySQL的也支持存储过程,函数,触发器。
以下各个功能的详述,主要是示例。
/**1.定义分割符*/
DELIMITER //
/**2.创建函数-计算两数之和*/
CREATE FUNCTION f_sum(num1 INT,num2 INT) RETURNS INT
BEGIN
RETURN num1+num2;
END;
//
/**
*3.创建存储过程
*思路:3.1.有该存储过程则删除,3.2有使用的中间表 ......
MySQL 中文显示乱码
如果你遇到乱码问题,可以从下面几个问题逐步检查:
(1)检查你的文件存储编码是否和 meta 声明的一致,假如你的文件是按照 utf-8 编码存储,但是 meta 却声明为 gb2312 ,将导致乱码。
解决办法:将页面存储编码和 meta 声明保持一致。用记事本 ......
//导出
String mysql="mysqldump -uroot -proot --opt databasename > d:/test.sql";
java.lang.Runtime.getRuntime().exec("cmd /c "+mysql);
//导入
String mysql="mysqladmin -uroot -proot create databasename";
java.lang.Runt ......
InnoDB也支持外键约束。InnoDB中对外键约束定义的语法看起来如下:
[CONSTRAINT symbol] FOREIGN KEY [id] (index_col_name, ...)
REFERENCES tbl_name (index_col_name, ...)
[ON DELETE {RESTRICT | CASCADE | SET NULL | NO ACTION}]
[ON UPDATE ......