码迷,mamicode.com
首页 > 数据库 > 详细

jacky自问自答-数据库

时间:2017-06-10 19:23:02      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:www   返回   log   使用   ack   end   com   blog   rom   

1、exists和in有什么区别?

  • EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False,而In子查询则是返回具体的数据值,与指定的字段比较
  • EXISTS与IN的使用效率的问题,通常情况下采用exists要比in效率高,因为IN不走索引,但要看实际情况具体使用
  • IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况。(楼主还没搞清楚原理)

2、解释下SQL UNION 和 UNION ALL 操作符?

  • union和union all的都是两张或多张表查询的结果集合并起来,union会掉重复的记录,unional不会去掉重复的记录。union和union all使用的要求是两个结果集的列数据相同,数据类型相同,顺序相同

3、一张表有3个字段,性别,姓名,年龄,用一条sql查询出男的有多少条,女的有多少条?

  •   select sex,count(*) from 表 group by 性别

     或select sum( CASE WHEN sex = ‘男‘ THEN  1 ELSE 0 END  ) 男数量,sum( CASE WHEN sex = ‘女‘ THEN  1 ELSE 0 END  )  女数量  from      表

4、一张员工表,有个两个字段,分别是员工姓名和工资,假设>=1000就一级,小于1000就2级,用一条sql查询出所有员工的等级?

  • SELECT 姓名,
  • CASE WHEN 工资 < 1000 THEN ‘2‘
  • WHEN 工资 >= 1000 THEN ‘1‘
  • ELSE NULL END 工资等级,
  • FROM Table_A

参考:http://www.cnblogs.com/prefect/p/5746624.html

 

jacky自问自答-数据库

标签:www   返回   log   使用   ack   end   com   blog   rom   

原文地址:http://www.cnblogs.com/520playboy/p/6979427.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!