用SQL语句编写 查找计算机系 19 岁男生【选择之合并律,交之结合律,交之分配律】
时间: 2024-02-29 08:56:46 浏览: 4
假设你的数据库中有学生表(students),其中包括学号(id)、姓名(name)、年龄(age)和性别(gender)等字段,可以使用如下SQL语句查询计算机系 19 岁男生:
```
SELECT *
FROM students
WHERE age = 19 AND gender = '男' AND id IN (
SELECT student_id
FROM course_selections
WHERE course_id IN (
SELECT id
FROM courses
WHERE name LIKE '%计算机%'
)
)
```
这条SQL语句使用了选择之合并律、交之结合律和交之分配律。首先使用了选择操作,筛选出年龄为 19 岁且性别为男的学生,然后使用了选择之合并律,将这个选择操作与课程选择相关的选择操作合并。以课程选择为例,使用了交之分配律,先筛选出名称包含“计算机”的课程,然后再将这个选择操作与课程选择相关的选择操作合并,最后使用了交之结合律,将这个选择操作与学生表中的选择操作合并,返回满足条件的学生信息。需要根据实际情况进行修改。
相关问题
用SQL语句编写 查找计算机系学生的选课情况,列出学号、姓名、课号和分数【连接】
假你的数据库中有学生表(students)、选课表(course_selections)和课程表(courses),其中学生表包括学号(id)、姓名(name)等字段,选课表包括学号、课号和分数等字段,课程表包括课号(id)和课程名称(name)等字段,可以使用如下SQL语句查询计算机系学生的选课情况:
```
SELECT students.id, students.name, courses.id, course_selections.score
FROM students
JOIN course_selections ON students.id = course_selections.student_id
JOIN courses ON courses.id = course_selections.course_id
WHERE courses.name LIKE '%计算机%'
```
这条SQL语句使用了 JOIN 子句来连接三张表格,使用 WHERE 子句来筛选出课程名称中包含“计算机”的课程,最终返回学生的学号、姓名、所选课程的课号和分数。需要根据实际情况进行修改。
将视图(VIEW) V_计算机系学生 重命名为 V_计算机系男生 的 SQL 语句
正确的 SQL 语句应该是:
```
EXEC sp_rename 'V_计算机系学生', 'V_计算机系男生';
```
这条语句使用了系统存储过程 sp_rename,将名为 V_计算机系学生 的视图重命名为 V_计算机系男生。需要注意的是,该存储过程还可以用于修改表、列等对象的名称。同时,如果该视图被其他对象引用,重命名操作可能会导致这些对象无法正常运行,因此需要谨慎使用。