1、mysql内部提供了序列,主键默认是自增长的,因此不需要我们再定义序列
2、mysql对于分页的处理,常用limit来表示,limit可以接受一到两个参数
如果带一个参数limit n,表示查询返回最大记录数n,等价于limit 0 n
如果要从n开始查询到记录集的所有记录行,则需要写成limit n -1,查询n+1——last
如果带两个参数limit n 10,第一个参数表示查询起始值,第2个参数表示偏移量,即从第n条开始查,查到n+10条
3、mysql字符编码的问题,参见:http://helloworlda.iteye.com/blog/1275160
4、mysql修改表字段名格式如下:
alter table 表名 change column 旧字段名 新字段名 [约束条件];
alter table MESSAGE change column LeaveMessageTime CREATED_TIME timestamp;
5、导出数据库
root@localhost:/usr/bin# mysqldump -uroot -proot -d db > mydb.sql
6、在存储过程中用select 如何给变量赋值
用select...into语句
下面是mysql 5.0的帮助文档的:
这个SELECT语法把选定的列直接存储到变量。因此,只有单一的行可以被取回。
SELECT id,data INTO x,y FROM test.t1 LIMIT 1;
注意,用户变量名在MySQL 5.1中是对大小写不敏感的。请参阅9.3节,“用户变量”。
重要: SQL变量名不能和列名一样。如果SELECT ... INTO这样的SQL语句包含一个对列的参考,并包含一个与列相同名字的局部变量,MySQL当前把参考解释为一个变量的名字。例如,在下面的语句中,xname 被解释为到xname variable 的参考而不是到xname column的:
CREATE PROCEDURE sp1 (x VARCHAR(5))
BEGIN
DECLARE xname VARCHAR(5) DEFAULT 'bob';
DECLARE newname VARCHAR(5);
DECLARE xid INT;
SELECT xname,id INTO newname,xid
FROM table1 WHERE xname = xname;
SELECT newname;
END;
当这个程序被调用的时候,无论table.xname列的值是什么,变量newname将返回值‘bob’。
使用into的方法(单个赋值)
select id into @id from tbl_currentWeather where cityid = _cityid;
多个赋值
select @id:=id,@cityid:=cityid from tbl_currentWeather where cityid = _cityid;
7、判断用ifnull
8、从日期字段中单取年月日的值来做判断
假如一个表中有一个保存时间的字段。
保存的时间格式(YYYY-MM-DD 00:00:00)
现在我想要查询2011年的数据有哪些,该怎么查?根据月份呢?或者天数呢?
查询2011的数据:select * from 表 where year(date)='2011';
查找月份为12的数据:select * from 表 where month(date)='12';
查找天数为本年第二天的数据:select * from 表 where dayofyear(date)='2';
我解释一下:
select * from 表 where 这是必须的
year,month,dayofyear是mysql的函数,分别是取得年,月,和当前时间在本年是第几天的3个函数
date就是你保存时间的字段
等号后面的当然条件啦。
9、mysql开启二进制日志
show global variables like 'log_bin';
10、mysql执行计划
http://www.cnblogs.com/ggjucheng/archive/2012/11/11/2765237.html
11、mysql导出数据库:C:\MySQL\MySQL Server 5.1\bin>mysqldump -u root -p datebasename.sql150518.sql