SQL面试题

preview
需积分: 0 17 下载量 11 浏览量 更新于2011-06-07 收藏 23KB DOC 举报
SQL是Structured Query Language的缩写,是用于管理和处理关系数据库的标准语言。在面试中,SQL题目通常用来评估求职者的数据查询、数据处理和数据分析能力。以下是对提供的SQL面试题目的详细解析: 1. 这个问题旨在找出所有盈利的股票。通过联接`stock_sl`和`stock_name`两个表,我们可以获取股票的简称、现价、买入价和持有数量。条件是现价大于买入价,然后按照持有数量降序排列,最终将结果存储到`stock_temp`表中。正确的SQL语句是: ```sql CREATE TABLE stock_temp AS SELECT stock_name.股票简称, stock_sl.现价, stock_sl.买入价, stock_sl.持有数量 FROM stock_sl, stock_name WHERE stock_sl.现价 > stock_sl.买入价 AND stock_sl.股票代码 = stock_name.股票代码 ORDER BY stock_sl.持有数量 DESC; ``` 2. 这题要求找出选修了5门及以上课程的学生的学号、姓名、平均分和选课门数,按平均分降序排列,并存储在`stu_temp`表中。有两种方法: 方法一: ```sql CREATE TABLE stu_temp AS SELECT 学生.学号, 学生.姓名, AVG(选课.成绩) AS 平均分, COUNT(*) AS 选课门数 FROM 学生, 选课 WHERE 学生.学号 = 选课.学号 GROUP BY 选课.学号 HAVING COUNT(*) >= 5 ORDER BY 平均分 DESC; ``` 方法二: ```sql CREATE TABLE stu_temp AS SELECT a.学号, a.姓名, AVG(b.成绩) AS 平均分, COUNT(b.课程号) AS 选课门数 FROM 学生 a, 选课 b WHERE a.学号 = b.学号 GROUP BY b.学号 HAVING (COUNT(b.课程号)) >= 5 ORDER BY 平均分 DESC; ``` 3. 此题要求查找名为"田亮"的借阅者所借图书的信息,包括书名、作者和价格,并按价格降序存入`book_temp`。正确语句如下: ```sql CREATE DBF book_temp AS SELECT 书名, 作者, 价格 FROM book, borrows, loans WHERE 姓名 = '田亮' AND borrows.借书证号 = loans.借书证号 AND loans.图书登记号 = book.图书登记号 ORDER BY 价格 DESC; ``` 4. 需要找出在`score_manager`数据库中未选修任何课程的学生信息,包含学号、姓名和系部字段,查询结果按升序保存在`new_table`中: ```sql CREATE DBF NEW_TABLE AS SELECT 学号, 姓名, 系部 FROM student WHERE 学号 NOT IN (SELECT DISTINCT 学号 FROM Score1); ``` 5. 统计选修了课程的学生人数(即使选修多门,只计数一次),结果保存在`new_table`中: ```sql CREATE DBF NEW_TABLE AS SELECT COUNT(DISTINCT 学号) AS 学生人数 FROM Score1; ``` 查询没有学生选修的课程,包含课程名和开课单位,结果按课程名升序保存在`new_table2`中: ```sql CREATE DBF NEW_TABLE2 AS SELECT 课程名, 开课单位 FROM Course WHERE 课程号 NOT IN (SELECT DISTINCT 课程号 FROM Score1) ORDER BY 课程名; ``` 6. 最后一组问题涉及到对`book.dbf`中的数据进行操作: (1)将书名包含"计算机"的图书复制到`books_bak`中: ```sql CREATE DBF BOOKS_BAK AS SELECT * FROM BOOKS WHERE 书名 LIKE '%计算机%'; ``` (2)更新`books_bak`中所有图书的价格,降价5%: ```sql UPDATE BOOKS_BAK SET 价格 = 价格 * 0.95; ``` (3)找到图书均价高于25元的出版社中,均价最低的出版社名称及均价,结果保存在`new_table4`中: ```sql CREATE DBF NEW_TABLE4 AS SELECT TOP 1 出版单位, AVG(价格) AS 均价 FROM BOOKS_BAK GROUP BY 出版单位 HAVING AVG(价格) >= 25 ORDER BY AVG(价格); ``` 以上就是对给出的SQL面试题目的详细解答,涵盖了多个SQL操作,如联接、聚合函数、条件过滤、排序和数据创建等。这些题目的解答展示了SQL在实际问题解决中的应用。