學生表課程表成績表三表
① 某學校教學管理資料庫jxgl.dbc中有三個表:學生表,課程表和成績表,內容如下: 學生表:
(1)創建學生表、課程表和成績表。具體要求:學生表中學號為主索引,出生日期默認值為1988-09-01;課程表中課程號為主索引,學分不能為空;成績表中學號是外索引與學生表建立關系,課程號是外索引與課程表建立關系,成績的要求是在0-100之間。
createtable 學生表
(學號intnotnullprimarykey,
姓名varchar(30)notnull,
性別varchar(4)notnull,
出生日期datetimenotnulldefault 1988-09-01
)
go
createtable 課程表
(課程號char(6)notnullprimarykey,
課程名varchar(30)notnull,
學分char(10)notnull
)
go
createtable 成績表
(學號 學生表(學號),
課程號char(6) 課程表(課程號),
成績 tinyintconstraint 成績_ckcheck (成績>=0 and 成績<=100 )
)
(2)通過insert into命令向各表中輸入記錄(按照所給表的內容)
insert into 學生表values (10001,'張娟娟','女','1987-09-01')
insert into 學生表values (10002,'李斌','男','1988-03-01')
insert into 學生表values (10003,'王亮晶','女','1986-05-04')
insert into 學生表values (10004,'成果果','女')
insert into 課程表values ('K01','VFP程序設計','3.5')
insert into 課程表values ('K02','計算機文化基礎','2')
insert into 成績表values (10001,'K01 ','85')
insert into 成績表values (10001,'K02 ','90')
insert into 成績表values (10002,'K01 ','88')
insert into 成績表values (10002,'K02 ','92')
insert into 成績表values (10003,'K01 ','90')
insert into 成績表values (10003,'K02 ','91')
insert into 成績表values (10004,'K01 ','76')
insert into 成績表values (10004,'K02 ','87')
(3)查詢「VFP程序設計」課程的學號和成績並按降序輸出。
select 課程表.課程名,成績表.學號,成績表.成績from 成績表
join 課程表on 成績表.課程號=課程表.課程號
where 課程表.課程名='VFP程序設計'
orderby 成績表.成績desc
(4)查詢「成果果」的學號和成績。
select 學生表.姓名,成績表.學號,成績表.成績from 成績表
join 學生表on 成績表.學號=學生表.學號
where 學生表.姓名='成果果'
(5)查詢「張娟娟」的學號和出生日期。
select 學號,姓名,出生日期from 學生表where 姓名='張娟娟'
(6)查詢課程號為「K01」的成績。
select 課程號,成績from 成績表where 課程號='K01'
(7)查詢「王亮晶」的「計算機文化基礎」成績。
select 學生表.姓名,課程表.課程名,成績表.成績from 成績表
join 課程表on 成績表.課程號=課程表.課程號
join 學生表on 學生表.學號=成績表.學號
where 課程表.課程名='計算機文化基礎'and 學生表.姓名='王亮晶'
② 根據學生表,課程表和成績表,查詢學生的學號,姓名,課程號,課程名和分數。(多表查詢
直接將三表關聯查詢就可以了 select b.姓名,c.課程,a.成績 from 成績專表 a,學生表屬 b,課程表 c where a.學生學號 = b.學號 and a.課程編號 = c.編號 and a.成績 < 60
③ 資料庫多表查詢,學生表,課程表,成績表
直接將三表關聯查詢就可以了
select b.姓名,c.課程,a.成績
from 成績表 a,學生表 b,課程表 c
where a.學生學號 = b.學號 and a.課程編號 = c.編號 and a.成績 < 60
④ 已知三個關系模式(學生表,課程表,成績表)用SQL語句實現以下內容
CREATE TABLE 選課表
(學號 CHAR(8) REFERENCES 學生表(學號),
課程編號 CHAR(6) REFERENCES 課程表(課程編號),
成績 smallint)
GO
INSERT INTO 學生表 VALUES('20100101','李丹','女','1993-6-6','管理系')
GO
SELECT 學號,姓名,所在系
FROM 學生表
GO
SELECT 學生表.學號,姓名
FROM 學生表 JOIN 選課表 ON 學生表.學號=選課表.學號
WHERE 課程編號='A01-02'
GO
SELECT *
FROM 學生表
WHERE 姓名 LIKE '[趙李張]%'
GO
SELECT 課程名稱,COUNT(*) AS 選修總人數
INTO 修課統計
FROM 課程表 JOIN 選課表 ON 課程表.課程編號=選課表.課程編號
GROUP BY 課程名稱
⑤ 用SQL對學生表、課程表、成績表進行多表查詢。
CREATE TABLE 選課表
(學號 CHAR(8) REFERENCES 學生表內(學號),
課程編號 CHAR(6) REFERENCES 課程表(課程編號),
成績 smallint)
GO
INSERT INTO 學生表 VALUES('20100101','李丹','女','1993-6-6','管理系容')
GO
SELECT 學號,姓名,所在系
FROM 學生表
GO
SELECT 學生表.學號,姓名
FROM 學生表 JOIN 選課表 ON 學生表.學號=選課表.學號
WHERE 課程編號='A01-02'
GO
SELECT *
FROM 學生表
WHERE 姓名 LIKE '[趙李張]%'
GO
SELECT 課程名稱,COUNT(*) AS 選修總人數
INTO 修課統計
FROM 課程表 JOIN 選課表 ON 課程表.課程編號=選課表.課程編號
GROUP BY 課程名稱
⑥ 新建資料庫,三張表 學生表 ,成績表,課程表(有以下課程:語文,數學,英語),目前有100個學生
最後那一段幫你小改了下,直接執行
ifOBJECT_ID('up_init','p')isnotnull
dropprocup_init
go
createprocup_init
as
begin
--*********************************
--遍歷每一個學生
declaremy_ccursorscroll
forselectstuidfromstudent
--2.
openmy_c
--3.
declare@nint,@stuidint,@scorefloat
set@n=1
select@score=scorefromGrade
--begin
while(@n<=@@CURSOR_ROWS)
begin
fetchnextfrommy_cinto@stuid
insertintoGradevalues('語文',RAND()*100,@stuid)
insertintoGradevalues('數學',RAND()*100,@stuid)
insertintoGradevalues('英語',RAND()*100,@stuid)
set@n=@n+1
end
--4.
closemy_c
--5.
deallocatemy_c
end
-----------------------------------
go
execup_init
select*fromGrade
⑦ 學生—課程」資料庫中包含學生表、課程表、學生選課表3個表
看一下。等下寫寫。內
1.
select sno, ssex from student where
sname like '王%'
2.
select sname from student where
sname not like '劉容%'
3.
select sname from student where
sage <20
4.
select sage from student order by sage asc
5. select count(*) from student where sno in (
select sno from sc)
⑧ 將學生表、成績表、課程表三張表中的數據作為基礎數據,寫出相關SQL語句,謝謝
--查詢所有學生的成績信息(無成績的學生也需顯示)
SELECTSname,Cname,Grade
.Sno=SC.Sno
LEFTJOINCourseONCourse.Cno=SC.Cno
--查詢8002課程的平均分、最高分以及課程名稱,且平均分保留2位小數
SELECTCAST(AVG(Grade)ASNUMERIC(5,2))平均分,MAX(Grade)最高分,Cname課程名稱
FROMCoruseJOINSCONCourse.Cno=SC.Cno
WHERECourse.Cno='8002'
⑨ 學生—課程"資料庫中包含學生表,課程表,學生選課表3個表,分別是:
您好,您這樣:
--1
select Sname,Sage from Student where Sage<(select Sage from Student where Sno='某一學生') and Sdept='數學系'
--2
select Sname from Student where Sno in (select Sno from SC)
--3
select Sname from Student where Sno in (select Sno from SC group by Sno having count(*)=(select count(*) from Course ))
⑩ 資料庫中包含學生表、課程表、學生選課表3個表,分別是什麼
1、SELECT 課程號, 課程名, 課程學分
FROM 課程 WHERE 課程號 IN(SELECT 課程號
FROM 選課
GROUP BY 課程號
HAVING COUNT(學生號) BETWEEN 2 AND 4 )
2、SELECT MAX(成績) - MIN(成績) AS 分數之差
FROM 選課
倘若要每門課程相差
SELECT 課程, MAX(成績) - MIN(成績) AS 分數之差
FROM 選課
GROUP BY 課程