经典sql面试题及答案第1期

题目:

  1. 编写查询,查找表中的行总数。

  2. 编写查询,消除表结果中的重复记录。

  3. 编写查询,获取t_employee表中designation字段前3个字符。

  4. 查询t_employee表,合并输出Designation和Department两个字段的内容。

  5. 如果使用union和union all合并4条SQL子查询,union会有多少次被用来去除重复行?

  6. IN和BETWEEN之间的区别是什么,在WHERE子句中如何使用?

  7. 解释“LIKE”关键字在WHERE子句中如何使用?SQL有哪些通配符?

  8. 怎样使用“LIKE”语句?

  9. 解释 GROUP BY 和 HAVING 子句的用法。

  10. 在t_employee表中,department字段可为空。编写查询,获取尚未分配部门的员工。

 

答案:

  1. select count(*) from tblsample;

  2. Select distinct * from tblSample;

  3. Select substr(designation,1,3) from t_employee;

  4. Select Designation + ‘ ‘ + Department from t_employee;

  5. 1次。

  6. BETWEEN子句是用来获取一个范围值,而IN子句是从指定值列表中获取对应数据。

  7. LIKE是用于部分字符串的匹配。SQL有两个通配符,“%”(匹配字符串的任何字符)和“_”(匹配任意单个字符)。

  8. 在局部搜索中使用。例如,你需要找到lastname包含“gat”字母的所有员工,那么你可以使用下面的查询、匹配搜索条件:

    Select empid, firstname, lastname from t_employee where lastname like ‘%gat%’;

    这可能会搜索到lastname包含字符“gat”的所有雇员,像Gates、Gatsby、Gatsburg、Sogatsky...

    "%"用于表示名称中剩余的所有字符。这个查询获取在字符串中包含“gat”的所有记录。

  9. 利用group by子句分组数据,当select语句中使用到组函数和字段一起连用时会用到group by,否则会出现错误。Group by 把select查询的结果集分成几个小组,这个group by子句可以跟在where后面且在having前面。Group by子句也会触发排序操作,会按分组字段排序。 b

  10. Select empid, firstname, lastname from t_employee where department is null;

上一篇:Spring Boot 线程池的使用和扩展 - 转载


下一篇:第四章 Hive安装及配置