SQL查询选修了全部课程的学生姓名

2024-05-17 18:19

1. SQL查询选修了全部课程的学生姓名

分析原因如下:
第一问:两个NOT EXISTS表示双重否定:没有一个选了课的学生没有选course表里的课程
select sname from student   where not exists /*没有一个学生满足以下条件*/
(select *   from course  where not exists  /*什么条件呢?没有选过Course表里的课*/
(select *  from sc  where sno =student.sno   /*这里两个=分别指对应的关系,表示选  
过课并且是Course里and cno=course.cno)  的课,只不过用not exists否定掉了*/
第二问:其实和NOT IN 是一个意思 exists只返回true 或false 这里not exists里的内容 其实就                     是指学生选过的课程,再用NOT EXISTS否定了,就变成了没有选

SQL查询选修了全部课程的学生姓名

2. SQL如何查询选修了两门以上课程的学生信息?

1:select sno(学生的学号)  from sc(学生选课表)group by sno having  count(*)>1
2:select s.sno,s.name from student swhere s.sno in(select sno  from score scgroup by sc.cno having sum(sc.sno)>2 )
3:应为三张表;学生表A 课程表B 选修表C(cid aid bid)--没有选修任何课程的学生的学号 

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

3. 在SQL中,如何查询至少选修了两门课程的学生学号呢?

study(sno,cno,score)查询至少选修了两门课程的学生学号:π1(σ(1=4Λ2!=5)(study x study))。
select sno(学生的学号) from sc(学生选课表)
group by sno having count(*)>1
select a.学号,b.姓名,a.cnt as 选修门数 from 
(select 学号,count(1) as as cnt from 选课表 group by 学号 
having count(1)=(select count(1) from 课程表)) a,
学生表 b where a.学号=b.学号;

扩展资料:
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的差由属于R而不属于S的所有元组组成。其结果关系仍为n目关系。记作:
R-S={t|t∈R∧t∉S}
设关系R和关系S具有相同的目n,且相应的属性取自同一个域,则关系R与关系S的交由既属于R又属于S的元组组成。其结果关系仍为n目关系。记作:
R∩S={t|t∈R∧t∈S}
这里的笛卡尔积严格地讲是广义笛卡尔积(Extended Cartesian Product)。在不会出现混淆的情况下广义笛卡尔积也称为笛卡尔积。
两个分别为n目和m目的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1×k2个元组。
参考资料来源:百度百科-关系代数

在SQL中,如何查询至少选修了两门课程的学生学号呢?

4. 用SQL查询同时选修了1号课和2号课的学生学号

工具/材料:以Management Studio为例。
1、首先在桌面上,点击“Management Studio”图标。

2、然后在该界面中,点击“新建查询”按钮。

3、之后在该界面中,输入查询同时选修了1号课和2号课的学生学号的SQL语句:selec t no,name from SC where Cno = '1' and  no in (selec t no from SC where   Cno = '2')。

4、接着在该界面中,点击“执行”按钮。

5、最后在该界面中,显示查询结果。

5. SQL查询选修了两门以上(包括两门)课程的学生信息

1:select sno(学生的学号)  from sc(学生选课表)group by sno having  count(*)>1
2:select s.sno,s.name from student swhere s.sno in(select sno  from score scgroup by sc.cno having sum(sc.sno)>2 )
3:应为三张表;学生表A 课程表B 选修表C(cid aid bid)--没有选修任何课程的学生的学号 

结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

SQL查询选修了两门以上(包括两门)课程的学生信息

6. 数据库SQL语句中 查询选修了全部课程的学生的学号和姓名 理解

楼主别着急!
为好理解我们先从这条SQL语句所要实现的功能入手。
功能:查出选修了全部课程的学信息。那么SQL在查询数据的时候的遍历每一个学生信息。判断该学生是否满足条件。
1
如果存在这么一条Course记录A(暂命名为A),
则不选择该学生。否则该学生就被查询出来
2
那么记录A,是怎么查出来的呢?A查出的条件是:不存在SC记录B,只要不存在B,就可查出A
3
那么B记录是什么?B记录是选课信息表,根据学号和课程号可查出记录B
如果B为空(该学生有没有选的课程)也就是不存在,则A就有一条记录,根据规则2可知:因为有A,所以该学生信息将不被输出。
如果在SC中每一个课程编号和该学生编号为条件都能够查出一条记录B(也就是该学生选修了全部课程),所以A记录不存在,则输出该学生的信息。
也就是在选课表中,如果学生选了全部课程(也就是满足SELECT
*
FROM
SC
WHERE
Sno=
Student.Sno
AND
Cno=
Course.Cno)始终存在,当然,课程编号是任意的)。那么就输出该学生的信息。你不要为理解这条SQL而忘记了它本身是要做什么.
带着SQL的目的(要实现的功能)去理解就好了。

7. SQL 语句:在sc表中查询至少选修了两门课的学生学号的语句

至少选修c1和c2的学生编号:
select sno(学生的学号)  from sc(学生选课表) group by sno having  count(*)>1
SQL结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。
SQL结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

扩展资料:
SQL常见语句:
更新:update table1 set field1=value1 where 范围。
查找:select * from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字元串)。
排序:select * from table1 order by field1,field2 [desc]。
求和:select sum(field1) as sumvalue from table1。
平均:select avg(field1) as avgvalue from table1。
最大:select max(field1) as maxvalue from table1。
最小:select min(field1) as minvalue from table1[separator]。

SQL 语句:在sc表中查询至少选修了两门课的学生学号的语句

8. SQL查询所有学生的学号,姓名和性别,做完了我给高分

1 --查询所有学生的学号,姓名和性别
SWLWCT stuid AS 学号,stuname AS 姓名,stusex AS 性别FROM StuInfo
ORDER BY stuid
2 --查询每门课程的编号,名称和学分
SELECT subid AS 编号,subname AS 名称,subscore AS 学分 FROM SubInfo
ORDER BY subid
3 --查询男同学的基本信息
SELECT * FROM StuInfo WHERE stusex = '男'
4 --查询有补考学生的课程编号
SELECT subid AS 课程编号 FROM SubInfo
WHERE subscore < 60
5 --查询本期正在修课的学生学号
  --修课不知道是什么意思
6 --查询有成绩在90到100之间的学生学号
SELECT stuid AS 学生学号 FROM StuInfo INNER SubInfo ON StuInfo.stuid = SubInfo.stuid
WHERE subscore BETWEEN 90 AND 100
ORDER BY stuid
7 --统计所有学生的总人数
SELECT COUNT(stuid) AS 总人数 FROM StuInfo
8 --统计计算机科学系(“CS”)的女同学总人数
9 --分别统计数学系(“MA”)的男女同学人数
10 --查询课程“002”的平均成绩
SELECT AVG(subscore) AS 平均成绩 FROM SubInfo
WHERE subname = '002'
11 --统计每门课程的平均成绩
SELECT AVG(subscore) AS 平均成绩 FROM SubInfo
12 --统计每个学生的平均成绩
SWLWCT StuInfo.stuid AS 学号,AVG(subscore) AS 平均成绩 FROM StuInfo INNER SubInfo
ON StuInfo.stuid = SubInfo.stuid
ORDER BY StuInfo.stuid
没有表,没有字段,也不知道你是怎么建的表
代码大概就是这样,你自己参照改一下
最新文章
热门文章
推荐阅读