SQL笔试题集:数据库操作与查询实战

4星 · 超过85%的资源 需积分: 9 13 下载量 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 浏览量
SQL是高级的非过程化编程语言,是沟通数据库服务器和客户端的重要工具,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以,具有完全不同底层结构的不同数据库系统,可以使用相同的SQL语言作为数据输入与管理的SQL接口。 它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使它具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。    结构化查询语言(Structured Query Language)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。如今无论是像Oracle、Sybase、DB2、Informix、SQL Server这些大型的数据库管理系统,还是像Visual Foxpro、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。    美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。ANSI同时也是ISO和International Electrotechnical Commission(IEC)的成员之一。ANSI 发布与国际标准组织相应的美国标准。1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92。ANSI SQL-92有时被称为ANSI SQL。尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循 ANSI SQL 标准。SQL Server使用ANSI SQL-92的扩展集,称为T-SQL,其遵循ANSI制定的 SQL-92标准。    SQL语言包含4个部分:    数据定义语言(DDL),例如:CREATE、DROP、ALTER等语句。    数据操作语言(DML),例如:INSERT(插入)、UPDATE(修改)、DELETE(删除)语句。    数据查询语言(DQL),例如:SELECT语句。    数据控制语言(DCL),例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。    SQL语言包括三种主要程序设计语言类别的语句:数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。