SQL 面试题 二 (有关排序、模糊查询)
2010-03-24 13:27
330 查看
一、给定一张表1,根据要求进行排序:
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1001 | toni | 1 | 32000 |
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
| 1004 | mamy | 2 | 9500 |
+--------+----------+---------+----------+
1.根据emp_wage,员工工资升序排序:mysql> select * from employee order by emp_wage ASC; (注:ASC=ascending升序)
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
| 1004 | mamy | 2 | 9500 |
| 1001 | toni | 1 | 32000 |
+--------+----------+---------+----------+
2.根据emp_id降序排序:mysql> select * from employee order by emp_id DESC; (注:DESC=descending降序)
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1004 | mamy | 2 | 9500 |
| 1003 | toM | 4 | 3200 |
| 1002 | lMcy | 3 | 2500 |
| 1001 | toni | 1 | 32000 |
+--------+----------+---------+----------+
二、根据以上表1,根据要求进行模糊查询
1、不区分大小写查询员工名中含有m的员工资料:mysql> select * from employee where emp_name like '%m%';
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
| 1004 | mamy | 2 | 9500 |
+--------+----------+---------+----------+
2、查询员工名中含有大写M的员工资料:mysql> select * from employee where emp_name like binary('%M%');
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
+--------+----------+---------+----------+
3、查询员工名中以“t”打头以“i”结尾的员工资料:mysql> select * from employee where emp_name like 't%' and emp_name like '%i';
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1001 | toni | 1 | 32000 |
+--------+----------+---------+----------+
4、查询员工名中第三位是大写“M”的员工资料:mysql> select * from employee where emp_name like binary('%_ _M%');
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1003 | toM | 4 | 3200 |
+--------+----------+---------+----------+
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1001 | toni | 1 | 32000 |
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
| 1004 | mamy | 2 | 9500 |
+--------+----------+---------+----------+
1.根据emp_wage,员工工资升序排序:mysql> select * from employee order by emp_wage ASC; (注:ASC=ascending升序)
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
| 1004 | mamy | 2 | 9500 |
| 1001 | toni | 1 | 32000 |
+--------+----------+---------+----------+
2.根据emp_id降序排序:mysql> select * from employee order by emp_id DESC; (注:DESC=descending降序)
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1004 | mamy | 2 | 9500 |
| 1003 | toM | 4 | 3200 |
| 1002 | lMcy | 3 | 2500 |
| 1001 | toni | 1 | 32000 |
+--------+----------+---------+----------+
二、根据以上表1,根据要求进行模糊查询
1、不区分大小写查询员工名中含有m的员工资料:mysql> select * from employee where emp_name like '%m%';
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
| 1004 | mamy | 2 | 9500 |
+--------+----------+---------+----------+
2、查询员工名中含有大写M的员工资料:mysql> select * from employee where emp_name like binary('%M%');
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1002 | lMcy | 3 | 2500 |
| 1003 | toM | 4 | 3200 |
+--------+----------+---------+----------+
3、查询员工名中以“t”打头以“i”结尾的员工资料:mysql> select * from employee where emp_name like 't%' and emp_name like '%i';
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1001 | toni | 1 | 32000 |
+--------+----------+---------+----------+
4、查询员工名中第三位是大写“M”的员工资料:mysql> select * from employee where emp_name like binary('%_ _M%');
+--------+----------+---------+----------+
| emp_id | emp_name | dept_id | emp_wage |
+--------+----------+---------+----------+
| 1003 | toM | 4 | 3200 |
+--------+----------+---------+----------+
相关文章推荐
- SQL 二 (有关排序、模糊查询)
- 实现按关健字模糊查询,并按匹配度排序的SQL语句
- 有关SQL模糊查询
- 有关SQL模糊查询
- 有关SQL模糊查询
- 一道面试题:请写sql查询出,成绩小于60的同学的姓名和平均分,并按平均分排序
- 关于SQL查询语句的模糊查询,排序用法,limit用法的介绍
- 有关SQL模糊查询
- sql,模糊查询,站内搜索,指定查询结果排序
- 有关SQL模糊查询
- Linq排序、分组、模糊查询、调用外部方法、直接执行SQL语句、事务、修改数据
- oracle SQL语句练习MERGE、模糊查询、排序、
- 有关SQL模糊查询
- 有关SQL模糊查询
- 有关SQL模糊查询
- 有关SQL模糊查询
- 有关SQL模糊查询
- SQL面试题之一有关连接、查询的题
- SQL语句实现按关健字模糊查询,并按匹配度排序