首页 > 代码库 > jacky自问自答-数据库
jacky自问自答-数据库
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自问自答-数据库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。