数据库总结--MySQL常见面试题
2015-03-24 17:56
603 查看
1.根据部门号从高到低,工资从低到高列出员工的信息
select * from employee order by dept_id desc,salary
2.union和union all的区别
用union连接表后,重复的记录会被删除掉
用union all连接表后,记录会被完整保留
3.分页语句(用sql语句直接分页,效率高)
pageSize = 20;
pageNo = 5;
select * from tbname limit (pageNo-1)*pageSize,pageSize
4.数据库三范式
第一范式 字段具有原子性,不可再分
第二范式 表中的每列都和主键相关
第三范式 每列都和主键列直接相关,而不是间接相关
5.用一条SQL语句查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
SELECT name,`subject`,score,sum(score>80) as jg from result GROUP BY `name` HAVING jg=(SELECT COUNT(DISTINCT rs.subject) from result rs );
另一种写法,高大人写的
6.
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息
create TABLE tmp as SELECT s.code FROM student s
GROUP BY s.`name`,s.kname,s.scode,s.kcode,s.score ;
DELETE from student
where code not in (select code from tmp);
drop table tmp;
7.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
SELECT * FROM
department INNER JOIN department as a
ON
department.`name` <> (a.`name`)
8.列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序
SELECT name,deptid,salary from employee where salary>(select avg(salary) from employee) GROUP BY deptid asc
写完后把自己的练习SQL导出一份传上来
select * from employee order by dept_id desc,salary
2.union和union all的区别
用union连接表后,重复的记录会被删除掉
用union all连接表后,记录会被完整保留
3.分页语句(用sql语句直接分页,效率高)
pageSize = 20;
pageNo = 5;
select * from tbname limit (pageNo-1)*pageSize,pageSize
4.数据库三范式
第一范式 字段具有原子性,不可再分
第二范式 表中的每列都和主键相关
第三范式 每列都和主键列直接相关,而不是间接相关
5.用一条SQL语句查询出每门课都大于80分的学生姓名
name kecheng fenshu
张三 语文 81
张三 数学 75
李四 语文 76
李四 数学 90
王五 语文 81
王五 数学 100
王五 英语 90
SELECT name,`subject`,score,sum(score>80) as jg from result GROUP BY `name` HAVING jg=(SELECT COUNT(DISTINCT rs.subject) from result rs );
另一种写法,高大人写的
SELECT ttt.name FROM (select count(r.name) c, r.name from result r WHERE r.score >80 GROUP BY r.`name`) ttt WHERE ttt.c=(select count(DISTINCT `subject`) from result) |
自动编号 学号 姓名 课程编号 课程名称 分数
1 2005001 张三 0001 数学 69
2 2005002 李四 0001 数学 89
3 2005001 张三 0001 数学 69
删除除了自动编号不同,其他都相同的学生冗余信息
create TABLE tmp as SELECT s.code FROM student s
GROUP BY s.`name`,s.kname,s.scode,s.kcode,s.score ;
DELETE from student
where code not in (select code from tmp);
drop table tmp;
7.一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球对,现在四个球对进行比赛,用一条sql语句显示所有可能的比赛组合.
SELECT * FROM
department INNER JOIN department as a
ON
department.`name` <> (a.`name`)
8.列出各个部门中工资高于本部门的平均工资的员工数和部门号,并按部门号排序
SELECT name,deptid,salary from employee where salary>(select avg(salary) from employee) GROUP BY deptid asc
写完后把自己的练习SQL导出一份传上来
相关文章推荐
- 数据库常见面试题总结
- 数据库常见面试题总结
- Mysql学习总结(21)——MySQL数据库常见面试题
- Mysql学习总结(21)——MySQL数据库常见面试题
- mysql常见的面试题总结
- 数据库常见面试题总结
- 数据库常见笔试、面试题总结
- 数据库常见面试题总结
- 数据库常见面试题总结
- 数据库常见面试题总结
- Mysql学习总结(21)——MySQL数据库常见面试题
- MySQL 数据库常见笔试面试题
- MySQL_知识总结01(基本数据库语句+关于Mysql面试题+select语句的练习)
- 总结的关于数据库的一些面试题
- 嵌入式软件常见笔试面试题总结
- 数据库方面常见面试题
- JAVA面试题jsp ejb sql 数据库 等面试题 Oracle Sql server MySQL 经典数据库学习资料
- MySQL 数据库中删除重复记录的方法总结
- SQL 数据库 面试题 总结
- Mysql中存储过程中的一些常见用法总结