SQL笔试题集:数据库操作与查询实战
4星 · 超过85%的资源 需积分: 9 63 浏览量
更新于2025-01-05
收藏 7.29MB DOC 举报
"这是一份关于SQL数据库的试题集,主要涵盖了数据筛选、排序、聚合函数以及联接操作等核心概念。这些题目旨在帮助求职者准备SQL相关的笔试或面试,提高其在实际工作中处理数据库查询的能力。"
第一题,题目要求从`employee`表中按部门名称(`depart_name`)的字母顺序抽取部门名称及其平均工资,并排除包含"human resource"的部门。解答如下:
```sql
SELECT depart_name, AVG(wage)
FROM employee
WHERE depart_name <> 'humanresource'
GROUP BY depart_name
ORDER BY depart_name;
```
此题考察了SQL的基本查询能力,包括使用`WHERE`子句进行条件筛选,`GROUP BY`对数据进行分组,以及`AVG`函数计算平均值,最后使用`ORDER BY`进行排序。
第二题,要求在不使用统计函数的情况下找出`Test`表中`num`字段的最小值。解答如下:
```sql
SELECT TOP 1 num
FROM Test
ORDER BY num;
```
这里使用`TOP 1`来获取第一条记录,配合`ORDER BY`按`num`字段从小到大排序,从而达到获取最小值的效果,同时避免了使用`MIN`函数。
第三题,涉及两张表`Customer`和`Order`,需要计算每个`Customer`的`Revenue`总和。首先创建表`Customer`和`Order`:
```sql
CREATE TABLE Customer (
ID INT PRIMARY KEY,
Name CHAR(10)
);
CREATE TABLE [Order] (
ID INT PRIMARY KEY,
CustomerID INT FOREIGN KEY REFERENCES Customer(ID),
Revenue FLOAT
);
```
然后,可以使用`FULL JOIN`或`INNER JOIN`来关联这两张表,计算每个客户的总收入:
```sql
-- 使用FULL JOIN
SELECT Customer.ID, SUM(ISNULL([Order].Revenue, 0))
FROM Customer FULL JOIN [Order]
ON ([Order].CustomerID = Customer.ID)
GROUP BY Customer.ID;
-- 或使用INNER JOIN
SELECT Customer.ID, SUM(ISNULL(Order.Revenue, 0))
FROM Customer
INNER JOIN Order
ON Customer.ID = Order.CustomerID
GROUP BY Customer.ID;
```
两种方法都能得到相同的结果,`FULL JOIN`会包含`Customer`表中的所有记录,即使在`Order`表中没有对应的订单,而`INNER JOIN`只包括两表都有对应记录的客户。`ISNULL`函数用于当`Order`表中无收入时,将`Revenue`设为0,确保总和计算的正确性。
这些题目覆盖了SQL中的基础查询、条件过滤、分组聚合以及表间联接的关键知识点,对于理解SQL语言的运用具有很高的实践价值。
12693 浏览量
1326 浏览量
326 浏览量
173 浏览量
321 浏览量
437 浏览量
114 浏览量
176 浏览量
wjzhujiang
- 粉丝: 0
- 资源: 5
最新资源
- mini-vue:迷你台
- THU人工智能基础编程作业1;15数码问题;无信息搜索(盲目搜索);有信息搜索;python实现.zip
- 我的技能个人简历网页模板
- Map-Snippets:一组Sublime Text 23的自定义Web映射片段
- SC20_AD:ADAE重现SC20纸的结果
- solf:Solf-卫生在线预订系统
- ssh_test1
- stm32f103单片机呼吸灯实验
- fymodem:免费的YModem实现
- Python编程助教面试题.zip
- 广工数字逻辑课设-篮球比赛计分器.zip
- 分类显示列表视图效果
- picire:并行Delta调试框架
- 最终项目
- DDR2 读写时序
- khTravel