delete from sc from sc join student on sc.sno=student.sno from sc join course on sc.cno=course.cno where student.sdept ='计算机系'and grade <60 and cnamne='java'对不对
时间: 2023-11-27 12:50:21 浏览: 36
这个 SQL 语句有语法错误,正确的语句应该是:
```sql
DELETE sc FROM sc
JOIN student ON sc.sno = student.sno
JOIN course ON sc.cno = course.cno
WHERE student.sdept = '计算机系' AND sc.grade < 60 AND course.cname = 'java';
```
这条 SQL 语句的作用是删除选修了“java”课程且所在学生所在院系为“计算机系”且该门课程的成绩低于60分的记录。
相关问题
select sname from student where not exists (select * from course where not exists (select * from sc where sno=student.sno and Cno=course.cno));
这是一个 SQL 查询语句,作用是查询选课表中选了所有课程的学生姓名。具体解释如下:
首先,内层的最里层查询语句是查询选了特定课程的学生号和课程号的记录,其中 `sno` 和 `Cno` 分别表示学生号和课程号。外层的第二层查询语句是查询选了所有课程的学生号的记录,即找出选课表中没有未选课程的学生。最外层的查询语句是通过学生号找到对应的学生姓名。
因此,这个查询语句的意思是:查询选了所有课程的学生姓名。
希望这个解释对你有所帮助。
解释一下select Sname from student where not exists( select * from course where course.Cno in (1,2) and not exists( SELECT * from sc where Sno=student.Sno AND Cno=course.Cno ) )
这是一个嵌套的SQL查询语句。它的意思是查询选了所有编号为1或2的课程的学生名字,但是没有选过这些课程以外的课程。
具体来说,内层查询语句是:
```
select *
from sc
where Sno=student.Sno AND Cno=course.Cno
```
这个查询语句是判断一个学生是否选了某个课程。如果查询结果为空,则说明这个学生没有选这个课程。
接着,内层查询语句再嵌套在另一个查询语句中:
```
select *
from course
where course.Cno in (1,2) and not exists( ... )
```
这个查询语句是查询所有编号为1或2的课程,并且此课程没有学生选过。如果查询结果为空,则说明有学生选了这个课程。
最后,这个查询语句再嵌套在外层查询语句中:
```
select Sname from student where not exists( ... )
```
这个查询语句是查询所有没有选过除了编号为1或2的其他课程的学生名字。如果查询结果为空,则说明所有学生都选了其他课程。