笔者从事开发也有一段时间了,关于数据库方面的一些小知识在这里总结一下

1、count(*),count(1)与count(column)区别

count(*)对行的数目进行计算,包含NULL

count(1)对行的数目进行计算,包含NULL

count(column)对特定的列的值具有的行数进行计算,不包含NULL值。

所以count(1)这个用法和count(*)的结果是一样的。

注意:

如果表没有主键,那么count(1)比count(*)快。

如果有主键,那么count(主键,联合主键)比count(*)快。

如果表只有一个字段,count(*)最快。

count(1)跟count(主键)一样,只扫描主键。count(*)跟count(非主键)一样,扫描整个表。明显前者更快一些。

2、mysql日期加减

获取当前日期时间函数 now() 和 sysdate():

SELECT now(), sleep(3), now();

结果是

mysql> select sysdate(), sleep(3), sysdate();

结果是

可以看到,虽然中途 sleep 3 秒,但 now() 函数两次的时间值是相同的; sysdate() 函数两次得到的时间值相差 3 秒。

sysdate() 日期时间函数跟 now() 类似,不同之处在于:now() 在执行开始时值就得到了, sysdate() 在函数执行时动态得到值。

mysql> select curdate(); #获得当前日期(date)函数:curdate()
mysql> select curtime(); #获得当前时间(time)函数:curtime()

为日期增加一个时间间隔:date_add()

mysql> SELECT date_add('2017-12-25 17:43:44', interval 1 day);

结果为:2017-12-26 17:43:44

类似的还有:

set @dt = now();

select date_add(@dt, interval 1 day);        -- add 1 day
select date_add(@dt, interval 1 hour); -- add 1 hour
select date_add(@dt, interval 1 minute); -- ...
select date_add(@dt, interval 1 second);
select date_add(@dt, interval 1 microsecond);
select date_add(@dt, interval 1 week);
select date_add(@dt, interval 1 month);
select date_add(@dt, interval 1 quarter);
select date_add(@dt, interval 1 year); select date_add(@dt, interval -1 day); -- sub 1 day

最新文章

  1. Xamarin.Android-捕获未处理异常(全局异常)
  2. Windows内核 语言选择注意点
  3. Leetcode#79 Word Search
  4. MIS框架开发计划
  5. js控制键盘按键(回车、空格)
  6. android sql Cursor
  7. 转:jmeter性能测试---登录百度进行搜索
  8. 基于python2.7通过boto3实现ec2表格化
  9. NOI2009 植物大战僵尸
  10. 【转载】C#工具类:实现文件操作File的工具类
  11. [心得] 如何利用liquibase進行資料庫版本控制 - 實際練習
  12. 41_redux_counter应用_react-redux版本
  13. DWM1000 定位数据收发以及定位算法
  14. Android开发之五大布局篇
  15. ubuntu16.04搭建geodjango+postgresql+postgis的WebGIS框架(三)加载空间数据
  16. 第二节:创建模型,使用Code First,配置映射关系
  17. Delphi窗体部分属性
  18. apache -- xampp配置虚拟主机
  19. WPF透明窗体不支持缩放解决方案
  20. Spark Streaming的使用——转载

热门文章

  1. Centos 搭建DNS服务器
  2. linux使用du查看文件夹大小
  3. SAS数据挖掘实战篇【七】
  4. MySQL 数据库架构
  5. Day01:对象和类(上)
  6. 根据输入的整数n使得输出精确到小数n位
  7. 使用new关键字创建对象数组(C#,C++,Java)
  8. Mycat+Mysql主从复制实现双机热备
  9. 【6.18校内test】T1多项式输出
  10. 剑指offer-递归和循环-python