我给你四张表,表结构是第一张表名称是student,字段是 s_id,s_name,s_birth,s_sex; 第二张表名称是teacher字段是t_id,t_name 第三张表名称是course,字段是 c_id,c_name,t_id; 第四张表名称是score,表字段是 s_id,c_id,s_score,根据以上表结构生成难度高的oracle sql题目及答案,网上查询不到
时间: 2024-02-19 19:03:36 浏览: 51
好的,以下是一道难度较高的 Oracle SQL 题目及答案:
题目:
查询出每个学生的姓名、性别、出生日期以及该学生所选的课程的名称和分数,如果该学生没有选课,则显示课程名为 null,分数为 0。
要求:
- 仅使用一条 SQL 语句实现。
- 使用 ANSI SQL 标准语法。
答案:
```sql
SELECT s.s_name, s.s_sex, s.s_birth, c.c_name, NVL(sc.s_score, 0)
FROM student s
LEFT JOIN score sc ON sc.s_id = s.s_id
LEFT JOIN course c ON c.c_id = sc.c_id
ORDER BY s.s_id, c.c_id;
```
解析:
- 使用左连接查询,确保查询结果中包含了所有学生信息以及他们所选的课程信息。
- 使用 NVL 函数将没有选课的学生分数默认为 0。
- 使用 ORDER BY 子句对查询结果按学生 ID 和课程 ID 进行排序。
相关问题
我给你四张表,表结构是第一张表名称是student,字段是 s_id,s_name,s_birth,s_sex; 第二张表名称是teacher字段是t_id,t_name 第三张表名称是course,字段是 c_id,c_name,t_id; 第四张表名称是score,表字段是 s_id,c_id,s_score,根据以上表结构生成难度高的oracle sql题目及答案
假设四张表的表结构如下:
```
CREATE TABLE student (
s_id INT PRIMARY KEY,
s_name VARCHAR2(50),
s_birth DATE,
s_sex VARCHAR2(10)
);
CREATE TABLE teacher (
t_id INT PRIMARY KEY,
t_name VARCHAR2(50)
);
CREATE TABLE course (
c_id INT PRIMARY KEY,
c_name VARCHAR2(50),
t_id INT,
CONSTRAINT fk_teacher FOREIGN KEY (t_id) REFERENCES teacher(t_id)
);
CREATE TABLE score (
s_id INT,
c_id INT,
s_score INT,
CONSTRAINT pk_score PRIMARY KEY (s_id, c_id),
CONSTRAINT fk_student FOREIGN KEY (s_id) REFERENCES student(s_id),
CONSTRAINT fk_course FOREIGN KEY (c_id) REFERENCES course(c_id)
);
```
现在给出以下复杂的 Oracle SQL 题目和答案:
1. 查询每门课程的平均分和最高分,按照平均分从高到低排序。
答案:
```
SELECT c.c_id, c.c_name, AVG(s.s_score) AS avg_score, MAX(s.s_score) AS max_score
FROM course c
LEFT JOIN score s ON c.c_id = s.c_id
GROUP BY c.c_id, c.c_name
ORDER BY avg_score DESC;
```
2. 查询每个学生的平均成绩,按照平均成绩从高到低排序。
答案:
```
SELECT s.s_id, s.s_name, AVG(sc.s_score) AS avg_score
FROM student s
LEFT JOIN score sc ON s.s_id = sc.s_id
GROUP BY s.s_id, s.s_name
ORDER BY avg_score DESC;
```
3. 查询没有选修任何课程的学生的姓名和性别。
答案:
```
SELECT s.s_name, s.s_sex
FROM student s
LEFT JOIN score sc ON s.s_id = sc.s_id
WHERE sc.s_id IS NULL;
```
4. 查询同时选修了编号为 1 和编号为 2 课程的学生的姓名。
答案:
```
SELECT s.s_name
FROM student s
INNER JOIN score sc ON s.s_id = sc.s_id
WHERE sc.c_id IN (1, 2)
GROUP BY s.s_id, s.s_name
HAVING COUNT(DISTINCT sc.c_id) = 2;
```
5. 查询选修了所有课程的学生的姓名。
答案:
```
SELECT s.s_name
FROM student s
INNER JOIN score sc ON s.s_id = sc.s_id
GROUP BY s.s_id, s.s_name
HAVING COUNT(DISTINCT sc.c_id) = (SELECT COUNT(*) FROM course);
```
这些题目和答案都比较复杂,需要熟练掌握 SQL 查询和连接的知识才能解决。
以下是一个简化的网上书店订单管理系统,包含四张表,前面增加的字段为该表的主键cl
该网上书店订单管理系统的主要包含四张表,它们分别是:书籍信息表、客户信息表、订单信息表和订单明细表。其中,每个表都包含了一个主键字段,用来唯一标识表中的每一条记录。
首先是书籍信息表,该表用于存储书店中所有书籍的相关信息。该表的主键字段为cl,表示每本书的唯一编号。除此之外,还可以在该表中包含其他相关的字段,如书名、作者、出版社、定价等。通过这个表,管理员可以方便地查阅和管理书店的书籍信息。
接下来是客户信息表,该表用于存储网上书店的顾客信息。该表的主键字段为cl,表示每个顾客的唯一编号。除此之外,还可以包含顾客的其他相关信息,如姓名、联系方式、地址等。通过这个表,管理员可以方便地管理和联系顾客,提供更好的客户服务。
第三张表是订单信息表,该表用于存储每个订单的基本信息。该表的主键字段为cl,表示每个订单的唯一编号。除此之外,还可以包含订单的其他相关信息,如下单时间、付款方式、配送方式等。通过这个表,管理员可以方便地追踪和管理订单的处理过程。
最后是订单明细表,该表用于存储每个订单中的具体书籍信息。该表的主键字段也为cl,表示每个订单明细的唯一编号。除此之外,还可以包含订单明细的其他相关信息,如书籍数量、价格、折扣等。通过这个表,管理员可以方便地查看每个订单中的具体书籍信息,对订单进行处理。
在这个简化的网上书店订单管理系统中,通过以上四张表以及它们的主键字段,管理员可以方便地查阅和管理书籍信息、顾客信息、订单信息和订单明细信息,提供更好的服务和管理。同时,这些主键字段的唯一性保证了每个记录的唯一性和精确性,方便系统的查询和操作。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)