当前位置:首页 » 编程语言 » sql选修1号和2号课程
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql选修1号和2号课程

发布时间: 2022-10-03 11:23:06

㈠ 查询同时只选修了1号和2号课程的学生的学号

目前想到3种方法:
1)select Student.S#,Sname from Student
join SC on Student.S# = SC.S#
where Student.S# in (select Student.S# from Student join SC on Student.S# and SC.S# where C# = ’001#’)
and SC.C# = ’002#’
-- 先筛选出选了课程1的学生学号,再筛选了课程2的学生
2)select SC.S# from SC
where SC.C# in ('001#','002#') group by SC.S# having COUNT(*) = 2;
-- 在成绩表中筛选出选修了课程1和课程2的数据,如果同一个学生这两条记录加起来是2,就说明他既选修了课程1,也选修了课程2
3)select Student.S#,Sname from Student
join SC on Student.S# = SC.S#
where SC.C# = ‘1#’ and exists
(select Student.S#,Sname from Student
join SC on Student.S# = SC.S#
where SC.C# = ‘2#’)

㈡ access中的sql如何写找出一个表中同时选修了课程编号为1和2两门课的学生的姓名

Select 姓名 from Table where 课程编号=1 and 课程编号=2

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

工具/材料:以Management Studio为例。

1、首先在桌面上,点击“Management Studio”图标。

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

sno 指的是什么?cno指什么? 上面的sql语句是不可能实现同样的功能的。
sno如果是指学生学号;
cno是指课程号的话。
where cno=’1‘ and cno=’2‘
是指课程号是1和2 的学生信息。
where sno=’1‘ and sno in(select sno
from SC
where sno=’2‘)
是指学生学号是1和2 的学生,事实上,作为主键的sno没有可能同时是1和2的。

数据库sql查询同时选修了选修课1和选修课2的学生学号

select Sno from sc where Cno in('课1','课2') group by Sno having count(*)=2

㈥ 用SQL查询同时选修了1号课和2号课的学生学号怎么查

你好像写错了吧,,,
我感觉应该是
select Sno
from SC
where Cno='1' and son in (select Sno from SC where Cno='2');
或者
where Cno='1' intersert select Sno from SC where Cno='2');
INTERSECT对两个查询做交集。相当于and

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

至少选修c1和c2的学生编号:

select sno(学生的学号) from sc(学生选课表) group by sno having count(*)>1

SQL结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统,可以使用相同的结构化查询语言作为数据输入与管理的接口。

SQL结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。

(7)sql选修1号和2号课程扩展阅读:

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求选修了1号课或2号课的学生学号和课号及成绩用集合查询的方法

SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='2'
集合运算,列的数目、类型要一致
如果还报错,那就考虑别的语法吧,not in或者not exists
列值不一样的记录,在集合想减时减不掉,所以要把cno和grade列去掉

㈨ SQL查询没有同时选修1号课程和2号课程学生的学号

SELECT DISTINCT Sno
FROM SC
WHERE Sno NOT IN
(SELECT Sno
FROM SC
WHERE Cno='1' AND Sno IN
(SELECT Sno
FROM SC
WHERE Cno='5'))
这是一般的变法,还可用集合查询,关键字INTERSECT
SELECT DISTINCT Sno
FROM SC
WHERE Sno NOT IN
(SELECT Sno
FROM SC
WHERE Cno='1'
INTERSECT
SELECT Sno
FROM SC
WHERE Cno='5')

㈩ 用SQL语句列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩。

很简单,先查询出1号课成绩学生的学号和成绩,再查询出选修2号课成绩的学生的学号和成绩,将两条查询语句作为两个将要查询的表,进行查询,并且用where设置条件,就行了,两个表连接可能要用到join on这条语句,LZ不懂可以直接网络,这个问题网络上很多的。