當前位置:首頁 » 學校課程 » 創建課程表SC

創建課程表SC

發布時間: 2021-02-09 08:07:00

『壹』 設有一個學生-課程資料庫,包括學生關系student、課程關系course、選秀關系sc

你准備用啥東西建啊? SQL語句? powerbuilder ? sql/developer?

『貳』 Student 學生表 ,Course 課程表 ,SC成績表 ,Teacher 教師表,sql操作運用

建表語句

CREATE TABLE student
(
s# INT,
sname nvarchar(32),
sage INT,
ssex nvarchar(8)
)

CREATE TABLE course
(
c# INT,
cname nvarchar(32),
t# INT
)

CREATE TABLE sc
(
s# INT,
c# INT,
score INT
)

CREATE TABLE teacher
(
t# INT,
tname nvarchar(16)
)

插入測試數據語句

insert into Student select 1,N'劉一',18,N'男' union all
select 2,N'錢二',19,N'女' union all
select 3,N'張三',17,N'男' union all
select 4,N'李四',18,N'女' union all
select 5,N'王五',17,N'男' union all
select 6,N'趙六',19,N'女'

insert into Teacher select 1,N'葉平' union all
select 2,N'賀高' union all
select 3,N'楊艷' union all
select 4,N'周磊'

insert into Course select 1,N'語文',1 union all
select 2,N'數學',2 union all
select 3,N'英語',3 union all
select 4,N'物理',4

insert into SC
select 1,1,56 union all
select 1,2,78 union all
select 1,3,67 union all
select 1,4,58 union all
select 2,1,79 union all
select 2,2,81 union all
select 2,3,92 union all
select 2,4,68 union all
select 3,1,91 union all
select 3,2,47 union all
select 3,3,88 union all
select 3,4,56 union all
select 4,2,88 union all
select 4,3,90 union all
select 4,4,93 union all
select 5,1,46 union all
select 5,3,78 union all
select 5,4,53 union all
select 6,1,35 union all
select 6,2,68 union all
select 6,4,71

問題

問題: 1、查詢「001」課程比「002」課程成績高的所有學生的學號; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查詢平均成績大於60分的同學的學號和平均成績; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查詢所有同學的學號、姓名、選課數、總成績; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查詢姓「李」的老師的個數; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查詢沒學過「葉平」老師課的同學的學號、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='葉平'); 6、查詢學過「001」並且也學過編號「002」課程的同學的學號、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查詢學過「葉平」老師所教的所有課的同學的學號、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='葉平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='葉平')); 8、查詢課程編號「002」的成績比課程編號「001」課程低的所有同學的學號、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2 from Student,SC where Student.S#=SC.S# and C#='001') S_2 where score2 <score; 9、查詢所有課程成績小於60分的同學的學號、姓名; select S#,Sname from Student where S# not in (select S.S# from Student AS S,SC where S.S#=SC.S# and score>60); 10、查詢沒有學全所有課的同學的學號、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# group by Student.S#,Student.Sname having count(C#) <(select count(C#) from Course); 11、查詢至少有一門課與學號為「1001」的同學所學相同的同學的學號和姓名; select distinct S#,Sname from Student,SC where Student.S#=SC.S# and SC.C# in (select C# from SC where S#='1001'); 12、查詢至少學過學號為「001」同學所有一門課的其他同學學號和姓名; select distinct SC.S#,Sname from Student,SC where Student.S#=SC.S# and C# in (select C# from SC where S#='001'); 13、把「SC」表中「葉平」老師教的課的成績都更改為此課程的平均成績; update SC set score=(select avg(SC_2.score) from SC SC_2 where SC_2.C#=SC.C# ) from Course,Teacher where Course.C#=SC.C# and Course.T#=Teacher.T# and Teacher.Tname='葉平'); 14、查詢和「1002」號的同學學習的課程完全相同的其他同學學號和姓名; select S# from SC where C# in (select C# from SC where S#='1002') group by S# having count(*)=(select count(*) from SC where S#='1002'); 15、刪除學習「葉平」老師課的SC表記錄; Delect SC from course ,Teacher where Course.C#=SC.C# and Course.T#= Teacher.T# and Tname='葉平'; 16、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號「003」課程的同學學號、2、 號課的平均成績; Insert SC select S#,'002',(Select avg(score) from SC where C#='002') from Student where S# not in (Select S# from SC where C#='002'); 17、按平均成績從高到低顯示所有學生的「資料庫」、「企業管理」、「英語」三門的課程成績,按如下形式顯示: 學生ID,,資料庫,企業管理,英語,有效課程數,有效平均分 SELECT S# as 學生ID ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='004') AS 資料庫 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='001') AS 企業管理 ,(SELECT score FROM SC WHERE SC.S#=t.S# AND C#='006') AS 英語 ,COUNT(*) AS 有效課程數, AVG(t.score) AS 平均成績 FROM SC AS t GROUP BY S# ORDER BY avg(t.score) 18、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分 SELECT L.C# As 課程ID,L.score AS 最高分,R.score AS 最低分 FROM SC L ,SC AS R WHERE L.C# = R.C# and L.score = (SELECT MAX(IL.score) FROM SC AS IL,Student AS IM WHERE L.C# = IL.C# and IM.S#=IL.S# GROUP BY IL.C#) AND R.Score = (SELECT MIN(IR.score) FROM SC AS IR WHERE R.C# = IR.C# GROUP BY IR.C# );
自己寫的:select c# ,max(score)as 最高分 ,min(score) as 最低分 from dbo.sc group by c# 19、按各科平均成績從低到高和及格率的百分數從高到低順序 SELECT t.C# AS 課程號,max(course.Cname)AS 課程名,isnull(AVG(score),0) AS 平均成績 ,100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分數 FROM SC T,Course where t.C#=course.C# GROUP BY t.C# ORDER BY 100 * SUM(CASE WHEN isnull(score,0)>=60 THEN 1 ELSE 0 END)/COUNT(*) DESC 20、查詢如下課程平均成績和及格率的百分數(用"1行"顯示): 企業管理(001),馬克思(002),OO&UML (003),資料庫(004) SELECT SUM(CASE WHEN C# ='001' THEN score ELSE 0 END)/SUM(CASE C# WHEN '001' THEN 1 ELSE 0 END) AS 企業管理平均分 ,100 * SUM(CASE WHEN C# = '001' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '001' THEN 1 ELSE 0 END) AS 企業管理及格百分數 ,SUM(CASE WHEN C# = '002' THEN score ELSE 0 END)/SUM(CASE C# WHEN '002' THEN 1 ELSE 0 END) AS 馬克思平均分 ,100 * SUM(CASE WHEN C# = '002' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '002' THEN 1 ELSE 0 END) AS 馬克思及格百分數 ,SUM(CASE WHEN C# = '003' THEN score ELSE 0 END)/SUM(CASE C# WHEN '003' THEN 1 ELSE 0 END) AS UML平均分 ,100 * SUM(CASE WHEN C# = '003' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '003' THEN 1 ELSE 0 END) AS UML及格百分數 ,SUM(CASE WHEN C# = '004' THEN score ELSE 0 END)/SUM(CASE C# WHEN '004' THEN 1 ELSE 0 END) AS 資料庫平均分 ,100 * SUM(CASE WHEN C# = '004' AND score >= 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C# = '004' THEN 1 ELSE 0 END) AS 資料庫及格百分數 FROM SC

21、查詢不同老師所教不同課程平均分從高到低顯示
SELECT max(Z.T#) AS 教師ID,MAX(Z.Tname) AS 教師姓名,C.C# AS 課程ID,MAX(C.Cname) AS 課程名稱,AVG(Score) AS 平均成績
FROM SC AS T,Course AS C ,Teacher AS Z
where T.C#=C.C# and C.T#=Z.T#
GROUP BY C.C#
ORDER BY AVG(Score) DESC
22、查詢如下課程成績第 3 名到第 6 名的學生成績單:企業管理(001),馬克思(002),UML (003),資料庫(004)
[學生ID],[學生姓名],企業管理,馬克思,UML,資料庫,平均成績
SELECT DISTINCT top 3
SC.S# As 學生學號,
Student.Sname AS 學生姓名 ,
T1.score AS 企業管理,
T2.score AS 馬克思,
T3.score AS UML,
T4.score AS 資料庫,
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 總分
FROM Student,SC LEFT JOIN SC AS T1
ON SC.S# = T1.S# AND T1.C# = '001'
LEFT JOIN SC AS T2
ON SC.S# = T2.S# AND T2.C# = '002'
LEFT JOIN SC AS T3
ON SC.S# = T3.S# AND T3.C# = '003'
LEFT JOIN SC AS T4
ON SC.S# = T4.S# AND T4.C# = '004'
WHERE student.S#=SC.S# and
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
NOT IN
(SELECT
DISTINCT
TOP 15 WITH TIES
ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0)
FROM sc
LEFT JOIN sc AS T1
ON sc.S# = T1.S# AND T1.C# = 'k1'
LEFT JOIN sc AS T2
ON sc.S# = T2.S# AND T2.C# = 'k2'
LEFT JOIN sc AS T3
ON sc.S# = T3.S# AND T3.C# = 'k3'
LEFT JOIN sc AS T4
ON sc.S# = T4.S# AND T4.C# = 'k4'
ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);

23、統計列印各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ <60]
SELECT SC.C# as 課程ID, Cname as 課程名稱
,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS [100 - 85]
,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS [85 - 70]
,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS [70 - 60]
,SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS [60 -]
FROM SC,Course
where SC.C#=Course.C#
GROUP BY SC.C#,Cname;

24、查詢學生平均成績及其名次
SELECT 1+(SELECT COUNT( distinct 平均成績)
FROM (SELECT S#,AVG(score) AS 平均成績
FROM SC
GROUP BY S#
) AS T1
WHERE 平均成績 > T2.平均成績) as 名次,
S# as 學生學號,平均成績
FROM (SELECT S#,AVG(score) 平均成績
FROM SC
GROUP BY S#
) AS T2
ORDER BY 平均成績 desc;

原文地址:http://www.cnblogs.com/qixuejia/p/3637735.html

『叄』 SQL語句的一道題 三個基本表:學生表(Student)、課程表(Course)、學生選課表(SC)

1. select * from SC
2. select Sname,Sage from Student where Sdept = '計算機'
3. select Sno,Cno,Grade from SC where Grade >= 70 and Grade <= 80
4. select Sname,Sage from Student where Sage between 18 and 20 and Ssex = '男'
5. select top 1 Grade from SC where Cno = 'C01'
6. select max(Sage),min(Sage) from Student
7. select Sdept,sum(Sno) from Student group by Sdept
8. select course.Cname,sum(sc.Sno),max(Grade) from SC
join studet on Student.Sno = SC.Sno
join Course on Course.Cno = SC.Cno
group by course.cname,max(grade)

9. select sum(Cno),avg(Grade) from SC
join Course on Course.Cno = SC.Cno
join Student on Student.Sno= SC.Sno
order by SC.Sno

10. select Stuent.Sno,Stuent.Sname,sum(Grade) A from SC
join Student on Student.Sno = SC.Sno
group by sc.Sno,student.Sname
having A > 200

11. select Student.Sname,Student.Sdept from Student
join Course on Course.Cno = SC.Cno
join SC on SC.Sno = Student.Sno
where SC.Cno = 'C02'

12. select Student.sname,course.cno,sc.grade from sc
join student on student.sno = sc.sno
join course on course.cno = sc.cno
where sc.grade >= 80
order by sc.grade desc

13. select cno,cname from
(
select course.cno,course.cname,sun(sno) from student
join course on course.cno = sc.cno
join sc on sc.sno = student.sno
group by cno,cname
having sun(sno) > 0
)

14. ① select student.sname,student.sdept from
(
select student.sname,student.sdept,course.cname from student
join sc on sc.sno = student.sno
join course on course.cno = sc.cno
where course.cname = 'C01'
)

② select student.sno,student.sname from
(
select student.sno,student.sname,student.sdept,sc.grade from sc
join student on student.sno = sc,sno
where student.sdept = '信息' and sc.grade >= 80
)

③ select top 1 student.sname from
(
select student.sname,student.sdept,sum(sc.grade) from sc
join student on student.sno = sc.sno
where student.sdept = '計算機'
group by student.sname,student.sdept
order by
)

15. delete from sc where grade < 50
16. update sc set grade += 5 from sc
join course on course.cno = sc.cn
join student on student.sno = sc.sno
where student.sno =
(
select student.sno from sc
join course on course.cno = sc.cno
where course.cname = 'c01'
)

17. update sc set grade += 10 from sc
join student on student.sno = sc.sno
where student.sno =
(
select student.sno from student
join sc on sc.sno = student.sno
join course on course.cno = sc.cno
where student.sdept = '計算機' and course.cname = '計算機文化基礎'
)

18. create view [A] as
select student.sno,student.sname,student.sdept,course.cno,course.cname,sc.grade from sc
join student on student.sno = sc.sno
join course on course.cno = sc.cno

19. create view [A] as
select student.sno,avg(sc.grade) from sc
join student on student.sno = sc.sno
group by student.sno

20. create view [A] as
select student.sno,sum(sc.grade) from sc
join student on student.sno = sc.sno
group by student.sno

21. create index A on student(sname)
22. 不會

『肆』 設有學生表S和和學生選課表SC

1.(1)查詢出所有系別是物理或者數學的學生的姓名,性別
(2)這是一個子查詢,查詢出姓名為「黎明」的人的所在系別的所有學生的姓名和性別
2.(1)select sname from s where sdept="計算機" and sage<20 and ssex="男" (ps:最後那個什麼關系代數沒看懂什麼意思)
(2)select distinct prov from s where sdept="物理系" (ps:最後那個什麼關系代數沒看懂什麼意思)
(3)select s.sname,sc.grade from s,sc where s.sno=sc.sno and sc.cno=6 (ps:最後那個什麼關系代數沒看懂什麼意思)
(4)select s.sno,s.sname from s,sc,c where s.sno=sc.sno and sc.cno=c.cno and c.cname="人工只能" (ps:最後那個什麼關系代數沒看懂什麼意思)
(5)select max(grade) from sc where sc.cno=1
(6)select s.sname,sc.grade from s,sc,c where s.sno=sc.sno where s.sdept="物理系" and c.cname="資料庫系統概論" and s.sno=sc.sno and sc.cno=c.cno order by sc.grade desc
(7)create view view_gmax as select s.sno,max(sc.grade) from s,sc where s.sno=sc.sno
group by s.sno order by 1 desc
上述SQL沒有實際檢測過,可能會有錯誤,見諒
實體聯系圖自己畫吧,很簡單的

『伍』 建立一個選課表,定義sno,cno為sc的外鍵分別對應學生表s中的主鍵sno,和課程表c中的cno

蠻簡單的

『陸』 用SQL語言創建三張表 , 學生表S,學生修課表SC,課程表C

哎 孩子這個還真像幫你做
不過你這分數和題量不大合適
其實還是懶了呵呵
不過你打了這么多字 要是不是復制的話 好好看書其實做更快了
SQL語句還是挺簡單的 都不難 期末老師還是會考的

『柒』 如何在資料庫中創建選課SC表

先創建需要外鍵參照的兩個主表(學生)主鍵學號,(課程)主鍵課號。
然後創建回選課表SC,學號和課答號聯合作主鍵,分別作外鍵。
create table sc(學號 char(6),課號 char(6),成績 int,primary key (學號,課號),foreign key (學號)references 學生(學號),foreign key (課號)references 課程(課號))

『捌』 對於教學資料庫的3個基表(S表示學生表,C表示課程表,SC表示學生選課表,假設基表中

1.create table S
(SNO char(10) primary key,
SNAME varchar(20),
AGE int,
SEX char(2)default '男')
2.SELECT CNO,CNAME FROM C WHERE TEACHER='LI'
3.insert into C values('C01','高等數學','LI')
4.SELECT SNO,SNAME FROM S WHERE AGE>21 AND SEX='男'
5.select CNAME,TEACHER FROM C INNER JOIN SC ON C.CNO=SC.CNO WHERE SC.SNO='S1'
6.SELECT SNAME FROM S
WHERE SEX='男' and SNO in(select SNO from SC inner join
C on SC.CNO=C.CNO WHERE C.TEACHER='LI')
7.select CNO,CNAME FROM C
WHERE CNO in(select CNO from SC inner join
S on SC.SNO=S.SNO WHERE S.SNAME='WANG')
8.SELECT CNO 課程號,SEX 性別,count(*) 總人數,AVG(GRADE) 平均成績 FROM SC INNER JOIN
S ON SC.SNO=S.SNO group by CNO,SEX
9.select SNAME,SNO from S
where SNO in (select SNO FROM SC group by SNO having count(SNO)>=2)

『玖』 SQL創建學生表(Student)、課程表(Course)、班級表(Class)、選課表(XK),寫對的我可以獎勵QB

一個student表student表包含復三個欄位的學制生的ID(stu_id)學生姓名(stu_name),當然ID(les_id)
「CREATE TABLE [dbo的]。學生(/ stu_id。的uniqueidentifier] NOT NULL,
stu_name [數據類型為nvarchar](425)NOT NULL,
les_id [為uniqueidentifier] NOT NULL

第二個表中的課程課,有兩個欄位,當然的ID(les_id)的和課程名稱(les_name)
CREATE TABLE [dbo的課(
les_id的uniqueidentifier] NOT NULL,
les_name [數據類型為nvarchar](425)NOT NULL
)< /第三個表,學生表的分數,三場場ID(les_id)的學生證(stu_id)和課程成績(les_score)
創建表[DBO]。分數(
les_id的uniqueidentifier] NULL,
stu_id的唯一標識符NOT NULL,
les_score [INT] NOT NULL

『拾』 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.學號 AND SC.課程=『人工智慧』
5.SELECT MAX(成績) FROM S,SC WHERE S.學號=SC.學號 AND S.學號=1號
6.SELECT 學號,姓名 FROM S WHERE SUBSTRING(姓名,3,2)=』月』
7.SELECT 課程號,COUNT(*) FROM C,SC WHERE C.課程號=SC.課程號
8.SELECT S.學號,姓名 FROM S,SC,C WHERE S.學號=SC.學號 AND SC.課程號=C.課程號 AND C.成績>80
9.SELECT DISTINCT(省區) FROM S WHERE S.系別=『物理』
10.SELECT * FROM S ORDER BY 系別 ASC,年齡 DSC
11.SELECT AVG(成績 ) FROM C WHERE 課程號=2號
12.SELECT 學號,姓名 FROM S WHERE SUBSTRING(姓名,3,2)=』陽』

熱點內容
武漢大學學生會輔導員寄語 發布:2021-03-16 21:44:16 瀏覽:612
七年級學生作文輔導學案 發布:2021-03-16 21:42:09 瀏覽:1
不屑弟高考成績 發布:2021-03-16 21:40:59 瀏覽:754
大學畢業證會有成績單 發布:2021-03-16 21:40:07 瀏覽:756
2017信陽學院輔導員招聘名單 發布:2021-03-16 21:40:02 瀏覽:800
查詢重慶2018中考成績查詢 發布:2021-03-16 21:39:58 瀏覽:21
結業考試成績怎麼查詢 發布:2021-03-16 21:28:40 瀏覽:679
14中醫醫師資格筆試考試成績查分 發布:2021-03-16 21:28:39 瀏覽:655
名著賞析課程標准 發布:2021-03-16 21:27:57 瀏覽:881
北京大學商業領袖高端培訓課程 發布:2021-03-16 21:27:41 瀏覽:919