SQL 面试题 一
题目一:
有两张表:部门表department 部门编号dept_id 部门名称dept_name
员工表employee 员工编号emp_id 员工姓名emp_name 部门编号dept_id 工资emp_wage
根据下列题目写出sql:
1、列出工资大于5000的员工所属的部门名、员工id和员工工资;
2、列出员工表中的部门id对应的名称和员工id(左连接)
3、列出员工大于等于2人的部门编号
4、列出工资最高的员工姓名
5、求各部门的平均工资
6、求各部门的员工工资总额
7、求每个部门中的最大工资值和最小工资值,并且它的最小值小于5000,最大值大于10000
8、假如现在在库中有一个和员工表结构相同的空表employee2,请用一条sql语句将employee表中的所以记录插入到employee2表中。
answer:
1:列出工资大于5000的员工所属的部门名、员工id和员工工资;
select emp_id,emp_wage,dept_name from employee as e inner join department as d on e.dept_id=d.dept_id where e.emp_wage>5000 group by e.emp_id;
2:列出员工表中的部门id对应的名称和员工id(左连接)
select dept_name,emp_id from department d left join employee e on e.dept_id=d.dept_id group by e.emp_id;
+------------+--------+
| dept_name | emp_id |
+------------+--------+
| 咨询部 | NULL |
| 软件开发部 | 1001 |
| 市场策划部 | 1002 |
| 销售部 | 1003 |
| HR | 1004 |
| HR | 1005 |
| HR | 1006 |
| 软件开发部 | 1007 |
+------------+--------+
3:列出员工大于等于2人的部门编号
select dept_name from department d [inner] join employee e on d.dept_id=e.dept_id group by dept_name
having count(e.dept_id) >=2;
&nb
相关文档:
一).创建部署项目
1. 在“文件”菜单上指向“添加项目”,然后选择“新建项目”。
2. 在“添加新项目”对话框中,选择“项目类型”窗格中的“安装和部署项目”,然后选择“模板”窗格 ......
在数据库的开发过程中,经常会遇到复杂的业务逻辑和对数据库的操作,这个时候就会用SP来封装数据库操作。如果项目的SP较多,书写又没有一定的规范,将会影响以后的系统维护困难和大SP逻辑的难以理解,另外如果数据库的数据量大或者项目对SP的性能要求很,就会遇到优化的问题,否则速度有可能很慢,经过亲身经验,一个经 ......
SQL语句中的Having子句与where子句之区别
---WHERE句子作用于基本表或试图,从中选择满足条件的元组。HAVING作用于组,从中选择满足条件的组---
在说区别之前,得先介绍GROUP BY这个子句,而在说GROUP子句前,又得先说说“聚合函数”——SQL语言中一种特殊的函数。例如SUM, COUNT, MAX, AVG等。这 ......
SELECT
(case when a.colorder=1 then d.name
--+'('+cast(h.value as nvarchar)+')'
else '' end)表名,
a.colorder 字段序号,
a.name 字段名,
isnull(g.[value],'') AS 字段说明,
(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) 标识,
(case whe ......
1.SQL Server Mobile 简介
2.获取 SQL Server Mobile
3.安装必备软件
4.安装开发环境
5.安装服务器环境
6.配置 Web 同步向导
7.使用 Internet Explorer 检查 SQL Server Mobile 服务器代理配置
8.使用SQL Server Mobile 数据库
==========================
1.SQL Server Mobile 简介
-------------------------- ......