试用SQL查询语句表达学生-课程数据库中3个基本表S,SC,C的查询

试用SQL查询语句表达学生-课程数据库中3个基本表S,SC,C的查询
S(Sno,Sname,Sage,Ssex,Sdept),
SC(Sno,Cno,Grade),
Course(Cno,Cname,Cpno,Ccredit)
1) 创建建SC表的SQL语句
2) 查询以“MIS_”开头,且倒数第二个汉字为“系”字的课程的详细情况
3)查询选修了课程的学生人数

4)将95003学生选修3号课程的成绩改为该课程的平均成绩。
5)查询其他系中比CS系所有学生年龄均大的学生名单,并排序输出。
程名与任课教师。
(3)、采用连接查询或嵌套的方式检索至少选修王老师所授课程中一门课程的女同学姓名。

(4)、检索张同学不学的课程的课程号。

1)
CREATE TABLE SC(
  Sno int,
  Cno int,
  Grade decimal(3,1)
);
注:
因为不知道 S表的 Sno 的数据类型  和  Couser 的 Cno 的数据类型。
因此这里暂时把 Sno 与 Cno 数据类型写成 int,
如果知道那2个表的那2列的数据类型的话。
那么这里应该把数据类型修改成和那2列一样。

2)
SELECT
  *
FROM
  Course
WHERE
  Cname LIKE 'MIS!_%' ESCAPE '!'
  AND Cname LIKE  '%系_';


3)
SELECT 
  count( distinct Sno  )
FROM
  SC;

 
4)
UPDATE
  SC
SET
  Grade = ( SELECT AVG(Grade) FROM SC WHERE  Cno = 3)
WHERE
  Sno = 95003
  AND Cno = 3;


5)
SELECT
  *
FROM
  S
WHERE
  Sage > ( SELECT MAX(s2.Sage) FROM S s2 WHERE s2.Sdept = 'CS' )
ORDER BY
  Sage;


-- 中间可能断掉了部分题目

(3)
SELECT
  S.SName
FROM
  S JOIN SC  ON  ( S.Sno = Sc.Sno)
    JOIN Course  ON (Course.Cno = Sc.Cno)
WHERE
  Course.不知道哪一列是 老师列了...
  AND  S.Ssex = '女';



 
(4)
SELECT
  Cno
FROM
  Course
WHERE
  NOT EXISTS( SELECT 1 FROM SC  JOIN  S  ON(S.Sno = SC.SNO)  WHERE S.Sname= '张同学'  AND SC.Cno = Course.Cno);

追问

后两题是另外加上去的。谢谢

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-08

你提供的信息不全,从第三题开始没办法作答了。。

CREATE TABLE SC
(Sno INT NOT NULL,
 Cno NVARCHAR(50) NOT NULL,
 Grade NVARCHAR(50) NOT NULL
)
GO
SELECT * FROM Course WHERE Cname LIKE 'MIS%' AND LEFT(RIGHT(Cname,2),1)='系'
SELECT COUNT(*) FROM Course

追问

问题的原题就是这样,你的方法是在C语言里面做的?

追答

。。感觉你的三个表里哪有 那么多的字段啊 这是纯 sql代码,跟C没关系

SQL serever 数据库 学生管理 三个表学生表S,学生选课表SC,课程表C
1.SELECT COUNT(DISTINCT(学号)) FROM SC 2.SELECT 姓名 FROM S,SC WHERE S.学号=SC.学号 AND S.学号=1号 3.SELECT S.学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.课程号=C.课程 AND 课程号=1号 4.SELECT S.学号,姓名 FROM S,SC WHERE S.学号=SC.学...

如何使用sql语句操作“学生课程数据库中的三个关系”?
(1).检索选修课程名称为“MATHS”的学生的学号与姓名 SELECT S.学号,S.姓名 FROM SC INNER JOIN C ON SC.课程号 = C.课程号 INNER JOIN S ON SC.学号 = S.学号 where C.课程名 = 'MATHS'(2).检索至少学习了课程号为“C1”和“C2”的学生的学号 SELECT 学号,iCount=Sum(iCount) From...

sql标准嵌套三表查询
1.SELECT S#,SN FROM S WHERE S# IN(SELECT S# FROM SC WHERE C#=(SELECT C# FROM C WHERE CN='税收基础'))2.SELECT SN,SD FROM S WHERE S# IN(SELECT S# FROM SC WHERE C#='C2')3.SELECT SN,SD FROM S WHERE S# NOT IN(SELECT S# FROM SC WHERE C#='C5')...

查询问题:设教学数据库Education有三个关系:学生关系S(Sno,Sname,Ssex...
可以使用以下SQL语句查询课程名为数据库管理系统的所有学生的学号、姓名和成绩:解释:从S、SC和C三个表中选取需要的列,即学号Sno、姓名Sname和成绩Score。使用WHERE语句指定查询条件,即S表和SC表的Sno列相等,SC表和C表的Cno列相等,并且C表的Cname列为“数据库管理系统”。执行查询操作,返回结果集。

SQL语句查询
1、select distinct s.学号,姓名 from s,c,sc where s.学号=sc.学号 and c.课程号=sc.课程号 and 成绩>=85 2、select s.学号,姓名,平均成绩=avg(成绩) from s,sc where s.学号 in (select 学号 from sc group by 学号 having count(学号)>5 3、select 书名 from 图书 where 出版...

数据库sql语言
SQL 练习题 一 学生 – 课程数据库 1 查询 7号课程没有考试成绩的学生学号 select sno from sc where cno=’7’ and grade is null 2 查询 7号课程成绩在90分以上或60分以下的学生学号 select sno from sc where grade>90 or grade<60 3 查询课程名以“数据”两个字开头的所有课程的课程号...

如何用sql语句实现学生课程选修的查询
3:应为三张表;学生表A 课程表B 选修表C(cid aid bid)--没有选修任何课程的学生的学号 结构化查询语言(Structured Query Language)简称SQL(发音:\/ˈes kjuː ˈel\/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理...

sql数据库 建立三个表 student(学号 姓名 性别) sc(学号 课程号 成绩...
sql数据库 建立三个表 student(学号 姓名 性别) sc(学号 课程号 成绩)course(课程号 课程名 分数 ) 要求有二门以上(含两门)不及格课程的学生姓名及其平均成绩,麻烦详细说一下groupby的用法... 要求有二门以上(含两门)不及格课程的学生姓名及其平均成绩,麻烦详细说一下group by的用法 展开  我来答 ...

用sql语句创建student,course,sc表.
create table student (id int Not Null,studentnumber varchar(22),name id int Not Null,```)craete table course (```)craete table sc (```)

三表联查的SQL语句
student.id=choose.sid sc2 where sc1.id='1'and sc2.id='2'and sc1.score>sc2.score 5.至于你说的insert报错的问题,我想可能是因为学生ID和课程ID这两个外键有重复的值,你可以检查下,实在不行删除外键,插入数据,在这里外键对你最后要的结果影响不大。纯手工打造~有帮助记得给分哈 ...

相似回答