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在实际问题解决中的应用。