查看: 471|回复: 2

MySQL中值得我们注意的几个"SQL"语句

 关闭 [复制链接]

签到天数: 2090 天

连续签到: 2 天

[LV.Master]伴坛终老IIII

发表于 2009-6-21 13:20 | 显示全部楼层 |阅读模式
MySQL中值得我们注意的几个\"SQL\"语句



◆1.从一个表向另一个同样结构的表插入批量的数据


insert into table1 (select * from table2 )


◆2.使用sql语句插入大量语句可以如下方式进行插入.一次提交即可.


insert into table1 values
(1,'a'),
(2,'b'),
(3,'a'),
(4,'b'),
...............



◆3.mysql 取得下一个自动增长的id .取得这个数据是连接独立的.也就是mysql会自动维护没一个链接应该拿到的最大id.也就是说,有两个链接同时插入进去这个表各一条记录,则mysql会自动返回相同的最后id.


SELECT LAST_INSERT_ID() from createuserid limit 0,1


◆4.返回第一个非空的字符串.如果字段columnname字段中的数据为null,则会返回aaa值.


COALESCE(columnname,'aaa')


此方法相当与sqlserver中的 isnull(columnname,'default') 返回第一个非空的字符串.


◆5.修复表.如果mysql的表出现灰,不能被读取,并且表的linux用户组也都正确的情况下.使用如下命令修复表.



repair table tablename ;


◆6. 如果字段中的时间为long类型的毫秒数. 使用select FROM_UNIXTIME(875996580) 将之转换为日期类型. 需要注意:


长度超过一定位数后,需要截取前面的几位才可以.否则不能正确转换.


◆7. 日期函数 adddate .


参数说明


函数是对日期进行计算的. 第一个参数是字段,第二个参数是间隔的意思,为关键字. 第三个参数是要累加多少的,后面的参数是累加的单位。


select adddate(regdate,interval 0 day)
from tablename desc limit 0,100


◆8.关于子select语句.一定要注意子语句的对记录范围的选取.


例如:


select * from table1 where id in (select id from table2)



如果要添加条件,一定要在子句中加入where
PCOS系统下载站:http://zhuangji.wang

签到天数: 2090 天

连续签到: 2 天

[LV.Master]伴坛终老IIII

 楼主| 发表于 2009-6-21 13:20 | 显示全部楼层

MySQL中值得我们注意的几个"SQL"语句

MySQL中值得我们注意的几个\"SQL\"语句



◆1.从一个表向另一个同样结构的表插入批量的数据


insert into table1 (select * from table2 )


◆2.使用sql语句插入大量语句可以如下方式进行插入.一次提交即可.


insert into table1 values
(1,'a'),
(2,'b'),
(3,'a'),
(4,'b'),
...............



◆3.mysql 取得下一个自动增长的id .取得这个数据是连接独立的.也就是mysql会自动维护没一个链接应该拿到的最大id.也就是说,有两个链接同时插入进去这个表各一条记录,则mysql会自动返回相同的最后id.


SELECT LAST_INSERT_ID() from createuserid limit 0,1


◆4.返回第一个非空的字符串.如果字段columnname字段中的数据为null,则会返回aaa值.


COALESCE(columnname,'aaa')


此方法相当与sqlserver中的 isnull(columnname,'default') 返回第一个非空的字符串.


◆5.修复表.如果mysql的表出现灰,不能被读取,并且表的linux用户组也都正确的情况下.使用如下命令修复表.



repair table tablename ;


◆6. 如果字段中的时间为long类型的毫秒数. 使用select FROM_UNIXTIME(875996580) 将之转换为日期类型. 需要注意:


长度超过一定位数后,需要截取前面的几位才可以.否则不能正确转换.


◆7. 日期函数 adddate .


参数说明


函数是对日期进行计算的. 第一个参数是字段,第二个参数是间隔的意思,为关键字. 第三个参数是要累加多少的,后面的参数是累加的单位。


select adddate(regdate,interval 0 day)
from tablename desc limit 0,100


◆8.关于子select语句.一定要注意子语句的对记录范围的选取.


例如:


select * from table1 where id in (select id from table2)



如果要添加条件,一定要在子句中加入where
PCOS系统下载站:http://zhuangji.wang

签到天数: 2090 天

连续签到: 2 天

[LV.Master]伴坛终老IIII

 楼主| 发表于 2009-6-21 13:20 | 显示全部楼层

MySQL中值得我们注意的几个"SQL"语句

MySQL中值得我们注意的几个\"SQL\"语句



◆1.从一个表向另一个同样结构的表插入批量的数据


insert into table1 (select * from table2 )


◆2.使用sql语句插入大量语句可以如下方式进行插入.一次提交即可.


insert into table1 values
(1,'a'),
(2,'b'),
(3,'a'),
(4,'b'),
...............



◆3.mysql 取得下一个自动增长的id .取得这个数据是连接独立的.也就是mysql会自动维护没一个链接应该拿到的最大id.也就是说,有两个链接同时插入进去这个表各一条记录,则mysql会自动返回相同的最后id.


SELECT LAST_INSERT_ID() from createuserid limit 0,1


◆4.返回第一个非空的字符串.如果字段columnname字段中的数据为null,则会返回aaa值.


COALESCE(columnname,'aaa')


此方法相当与sqlserver中的 isnull(columnname,'default') 返回第一个非空的字符串.


◆5.修复表.如果mysql的表出现灰,不能被读取,并且表的linux用户组也都正确的情况下.使用如下命令修复表.



repair table tablename ;


◆6. 如果字段中的时间为long类型的毫秒数. 使用select FROM_UNIXTIME(875996580) 将之转换为日期类型. 需要注意:


长度超过一定位数后,需要截取前面的几位才可以.否则不能正确转换.


◆7. 日期函数 adddate .


参数说明


函数是对日期进行计算的. 第一个参数是字段,第二个参数是间隔的意思,为关键字. 第三个参数是要累加多少的,后面的参数是累加的单位。


select adddate(regdate,interval 0 day)
from tablename desc limit 0,100


◆8.关于子select语句.一定要注意子语句的对记录范围的选取.


例如:


select * from table1 where id in (select id from table2)



如果要添加条件,一定要在子句中加入where
PCOS系统下载站:http://zhuangji.wang

本版积分规则