2020-08-24

sql相关语句

  1. distinct:用于返回唯一不同的值

    	SELECT DISTINCT Company FROM Orders; 
    
  2. limit 、offset

     . offset X是跳过X个数据,limit Y是选取Y个数据
     . limit X,Y  中X表示跳过X个数据,读取Y个数据
     . 数据库数据计算是从0开始的
    

举例:从数据库中第三条开始查询,取一条数据,即第三条数据读取,一二条跳过

select * from testtable limit 2,1;

从数据库中的第二条数据开始查询两条数据,即第二条和第三条

select * from testtable limit 2 offset 1;
  1. if、ifnull、case when then else end

    . if(exp, a, b):exp为true,则结果为a,否则为b
    . ifnull(exp,a):exp为null,则返回a,否则返回null
    . case when then else end
    	简单case函数:case sex when 1 then '男' when 2 then '女' else '其他' end
    	case搜索函数:case when sex = 1 then '男' when sex = 2 then ‘女’ else '其他' end(可以写条件判定,比如不等于,而简单case函数只能是=)
    	case函数如果满足第一个条件,就会忽略第二个条件
    

举例:case和sum结合还可以实现分段统计

select sum(case sex when 1 then 1 else 0 end) 男性,sum(case sex when 2 then 1 else 0 end) 女性,sum(case  when sex <> 1 and sex <> 2 then 1 else 0 end)其他 from users

把salary表中的女改成男,男改成女:

update salary set sex = if( sex = '男','女','男');
select (case sex when '男' then '女' when '女' then '男' end ) from salary;
update salary set sex = case sex when 'f' then 'm' else 'f' end ;
  1. DATEDIFF(expr1,expr2)

DATEDIFF()返回 expr1- expr2以从一个日期到另一个日期的天数表示的值。expr1 和expr2是日期或日期和时间表达式。在计算中仅使用值的日期部分。

mysql> SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
        -> 1
mysql> SELECT DATEDIFF('2010-11-30 23:59:59','2010-12-31');
        -> -31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值