今天在写实习生的培训PPT时,用mysql的command line client插入一条带中文的记录时,报data to long的错误,
在网上查看了相关资料,说的是因为这个console使用了一种编码方式,把命令编码后再发送到数据库,具体请参看http://www.cnblogs.com/ovliverlin/archive/2007/11/26/972549.html,说的比较详细,本人看完后,直接输入
set names gbk命令也把问题解决了。 ......
一.关于MySQL数据库服务器
MySQL服务器的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明。
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务(bin/mysqld_safe &)非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置。
二.PHP程序设计时要考虑的字符编码问题
一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”, 其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道 开发中哪些环节涉及到了编码:
1、文件编码:指的是页面文件(.html,.php等)本身是 以何种编码来保存的。记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不 ......
一.关于MySQL数据库服务器
MySQL服务器的默认编码是Latin1,不支持中文,那么如何修改MySQL的默认编码呢,下面以UTF-8为例来说明。
1、中止MySQL服务(bin/mysqladmin -u root shutdown)
2、在/etc/下找到my.cnf,如果没有就把MySQL的安装目录下的support-files目录下的my-medium.cnf复制到/etc/下并改名为my.cnf即可
3、打开my.cnf以后,在[client]和[mysqld]下面均加上default-character-set=utf8,保存并关闭
4、启动MySQL服务(bin/mysqld_safe &)非常简单,这样的修改一劳永逸,今后MySQL一切相关的默认编码均为UTF-8了,创建新表格的时候无需再次设置。
二.PHP程序设计时要考虑的字符编码问题
一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析,从而出现了满屏乱七八糟的“天书”, 其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。要解决上述乱码问题,首先需要知道 开发中哪些环节涉及到了编码:
1、文件编码:指的是页面文件(.html,.php等)本身是 以何种编码来保存的。记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不 ......
在数据库应用,我们经常要用到唯一编号。在MySQL中可通过字段的AUTO_INCREMENT属性来自动生成。MySQL支持多种数据表,每种数据表的自增属性都有所不同。
ISAM表
如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号。编号从1开始,并1为基数递增。
当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值。
当插入记录时,如果为AUTO_INCREMENT字段明确指定了一个数值,则会出现两种情况,情况一,如果插入的值与已有的编号重复,则会出现出错信息,因为AUTO_INCREMENT数据列的值必须是唯一的;情况二,如果插入的值大于已编号的值,则会把该插入到数据列中,并使在下一个编号将从这个新值开始递增。也就是说,可以跳过一些编号。
如果自增序列的最大值被删除了,则在插入新记录时,该值被重用。
如果用UPDATE命令更新自增列,如果列值与已有的值重复,则会出错。如果大于已有值,则下一个编号从该值开始递增。
如果用replace命令基于AUTO_INCREMENT数据列里的值来修改数据表里的现有记录,即AUTO_INCREMENT数据列出现在了replace命令的where子句里,相应的AUTO_INCREMENT值将不会发生变化。但如果replace命令是通过其它的PRI ......
基础部分
一、MySQL 获得当前日期时间 函数
1.1 获得当前日期+时间(date + time)函数:now()
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2008-08-08 22:20:46 |
+---------------------+
除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函数:
current_timestamp()
,current_timestamp
,localtime()
,localtime
,localtimestamp -- (v4.0.6)
,localtimestamp() -- (v4.0.6)
这些日期时间函数,都等同于 now()。鉴于 now() 函数简短易记,建议总是使用 now() 来替代上面列出的函数。
1.2 获得当前日期+时间(date + time)函数:sysdate()
sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。看下面的例子就明白了:
mysql& ......
http://www.blogjava.net/Alpha/archive/2007/07/23/131912.html
//主键549830479
alter table tabelname add new_field_id int(5) unsigned default 0 not null auto_increment ,add primary key (new_field_id);
//增加一个新列549830479
alter table t2 add d timestamp;
alter table infos add ex tinyint not null default '0';
例2:alter table msglogabstract add subcaption int(255) default 0;
//删除列549830479
alter table t2 drop column c;
//重命名列549830479
alter table t1 change a b integer;
//改变列的类型549830479
alter table t1 change b b bigint not null;
alter table infos change list list tinyint not null default '0';
//重命名表549830479
alter table t1 rename t2;
加索引549830479
mysql> alter table tablename change depno depno int(5) not null;
mysql> alter table tablename add index 索引名 (字段名1[,字段名2 …]);
mysql> alter table tablename add index emp_name (name);
加主关键字的索引549830479
mysql> alter table tablename add primary key(id); ......
2007-11-16 15:37
今天看着手册试了下,发现原来大数据导入导出是那么的轻松(不是很大,200多M的文本而以)
注意:如果发现MYSQL unknown command '\'这样的提示,则设置一下服务器的字符集,如:
mysql -uroot -ppasspass --default-character-set=utf8 databaseName <d:bakcup.sql
这样就不会报错了,^_^
导出:(mysqldump)
cmd>下进行Mysql的安装目录,进入bin目录!
mysqldump -u root -p database_name > d:backup\bak_sql_name.sql
然后回车(其中,-u mysql的用户 -p为密码(空着) database_name为需要备份的数据名,> 后面就是地址了!)
详细的参数,可看官方手册!
导入:(mysql)
在mysql的bin目录下,键入mysql -u root -p database_name < d:backup\bak_sql_name.sql
提示输入正确密码就OK了!
也可以键入mysql -u root -p(登陆mysql控制台,用source或\.命令进行导入!)
mysql>source d:backup\bak_sql_name.sql
mysql>\. d:bakcup\bak_sql_name.sql
mysqldump用法几例
2007/08/24 02:27 P.M.
================================
几个常用用例:
1.导出整个数据库
mysqldump -u ......