mysql开发常用的几条sql查询语句

mysql开发常用的几条sql查询语句,有需要的朋友可参考一上.

1.计算年龄

如果你有一个人的生日而需要计算这个人的年龄,将下列语句中@dateofbirth替换为生日即可,代码如下:

SELECT DATE_FORMAT (FROM_DAYS (TO_DAYS (now ()) - TO_DAYS (@dateofbirth)), '%Y') + 0;

2.计算两个日期的差值

计算两个日期的分,秒,小时和天数的差值,如果dt1和dt2的的格式是‘yyyy-mm-dd hh:mm:ss’,那么两个日期之间的秒数差值就是,代码如下:

UNIX_TIMESTAMP ( dt2 ) - UNIX_TIMESTAMP ( dt1 )

3.显示出现了N次的栏目的值,代码如下:

  1. SELECT id
  2. FROM tbl
  3. GROUP BY id
  4. HAVING COUNT (*) = N;

4.计算两个日期之间的工作日

计算两个日期之间的工作日的最简单方法是是一个含有d日期栏目和另一个标定了在已知年份中所有日期是否为休息日的栏目的日历表,然后下面的查询就是找到在Start和Stop两个日期之间所有的工作日,代码如下:

  1. SELECT COUNT (*)
  2. FROM calendar
  3. WHERE d BETWEEN Start AND Stop
  4. AND DAYOFWEEK (d) NOT IN (1,7)
  5. AND holiday=0;

5.找到一个表的主键,代码如下:

  1. SELECT k.column_name
  2. FROM information_schema.table_constraints t
  3. JOIN information_schema.key_column_usage k
  4. USING (constraint_name,table_schema,table_name)
  5. WHERE t.constraint_type='PRIMARY KEY'
  6. AND t.table_schema='db' --phpfensi.com
  7. AND t.table_name='tbl'

6.查询你的数据库数据占用的总空间,代码如下:

  1. SELECT
  2. table_schema AS 'Db Name',
  3. Round ( Sum ( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)',
  4. Round ( Sum ( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)'
  5. FROM information_schema.tables
  6. GROUP BY table_schema;