十五年测试老手,长期负责WEB\APP 项目测试,目前主要负责团队管理工作。

6个有用的MySQL语句

上一篇 / 下一篇  2011-07-14 21:15:31 / 个人分类:mysql

    1. 计算年数51Testing软件测试网/g&Nk:\W

    你想通过生日来计算这个人有几岁了。

g5Qzl.d7z#`1L cb z0

    SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(now()) - TO_DAYS(@dateofbirth)), '%Y') + 0;51Testing软件测试网R'V:^;t&T_/Ib

    2. 两个时间的差

@(@0LS2}e ]3i@5^0

    取得两个 datetime 值的差。假设 dt1 和 dt2 是 datetime 类型,其格式为 ‘yyyy-mm-dd hh:mm:ss’,那么它们之间所差的秒数为:51Testing软件测试网1iZ7f`f iQ

    UNIX_TIMESTAMP( dt2 ) - UNIX_TIMESTAMP( dt1 ) 除以60就是所差的分钟数,除以3600就是所差的小时数,再除以24就是所差的天数。51Testing软件测试网!g+q9twK N.p[Om

    3. 显示某一列出现过N次的值

ufp Nq0

    SELECT id

u,bk JZ:tH0

    FROM tbl51Testing软件测试网K1f'VG7\zk

    GROUP BY id

/_O!XH5Y S/RkO9k0

    HAVING COUNT(*) = N;51Testing软件测试网8|9e4H;q4R

    4. 计算两个日子间的工作

!v V!R4Ytf;I X cl)b0

    所谓工作日就是除出周六周日和节假日。51Testing软件测试网6m{ a+B/G0R3S M5t

    SELECT COUNT(*)

Wy^?L[,Ao0

    FROM calendar51Testing软件测试网9B~,Mb&`0Yj0c

    WHERE d BETWEEN Start AND Stop51Testing软件测试网C.Qd.eO7LE

    AND DAYOFWEEK(d) NOT IN(1,7)

)aGMZu;bY0

    AND holiday=0;

x;\ x Ki1u)n0

    5. 查找表中的主键51Testing软件测试网;RP%cF7r8ZLs-t

    SELECT k.column_name

|1?j(m-]%K i+A5O0

    FROM information_schema.table_constraints t51Testing软件测试网| r)m&o}2m

    JOIN information_schema.key_column_usage k

0CIz@g0

    USING (constraint_name,table_schema,table_name)51Testing软件测试网4O5D~|Ev

    WHERE t.constraint_type='PRIMARY KEY'51Testing软件测试网+zUR CfYw qO

    AND t.table_schema='db'51Testing软件测试网5M+`jF6bz1V3S

    AND t.table_name=tbl'51Testing软件测试网8q/B7CC1j~!Ec(]6B

    6. 查看你的数库有多大

2`D s(u&w iw3v/T9H0

    SELECT51Testing软件测试网'u+y SGn)ER

    table_schema AS 'Db Name',51Testing软件测试网E(b+x1LI

    Round( Sum( data_length + index_length ) / 1024 / 1024, 3 ) AS 'Db Size (MB)',

m{ _%^uT j'E0

    Round( Sum( data_free ) / 1024 / 1024, 3 ) AS 'Free Space (MB)'

a'_*Glz5`0

    FROM information_schema.tables

E2y8^O2C Qmo3F7f0

    GROUP BY table_schema ;51Testing软件测试网nL(Ws;l5q5d9}


TAG: MySQL

 

评分:0

我来说两句

Open Toolbar