1. 程式人生 > >資料庫實驗五/SQL的資料查詢

資料庫實驗五/SQL的資料查詢

資料庫實驗五

本學期資料庫實驗,之前又看到別人寫的,但是有一部分有點小錯,於是還是自己上機實驗的程式碼比較靠譜,這裡貼出來供大家參考
/////

/////

如果有錯誤 還望指出

////////

///////

SQL的資料查詢

一、實驗目的

1. 熟練使用SQL語言select 命令進行資料庫資料的各類查詢:單表查詢、多表連線查詢、分組統計查詢及巢狀查詢等。

2.會使用帶有子查詢的資料更新命令insert、update、delete。

二、實驗準備及任務

1.複習教材上SQL語言中select 命令和帶有子查詢的insert、update、delete

命令。

2.使用教師已經錄入相關資料的附錄二的“xsglsjk”資料庫,完成以下查詢,預先寫好相應的命令。

(1)查詢姓名中第二個字為“勇”的男學生的姓名和班級。

(2)查詢成績為68、78、88和98的選修記錄。

(3)查詢選修了“4”號課程沒有成績的學生學號。

(4)查詢“00311”班所有女生的學號、姓名和出生年份。

(5)查詢“李勇敏”同學的班長姓名。

(6)查詢“2001102”同學的選課門數。

(7)統計學生表中的班級數。

(8)查詢“00311”班每位同學的課程平均分。

(9)查詢哪些學生最低分大於70,最高分小於90,輸出他們的學號。

(10)計算Student×Cj×Course的結果。

(11)以clno升序、Sage降序列出Student表的學生資訊。

(12)列出成績高於學號為“2000101”、課程號為“3”的成績的所有選課記錄。

(13)查詢和“張婷婷”同學在同一班級的學生資訊。

(14)查詢不及格課程在三門及以上的同學。

(15)*查詢選修了目前Course中所有課程的同學。

  1. 完成帶有子查詢的insert、update、delete的任務,預先寫好相應的命令。

(16)對每位同學,求平均成績,並把結果存入新建立的表中。

(17)將班級號為“01312”班級的所有女學生的成績加5分。

(18)刪除“01311”班級的所有學生的成績記錄。

我只貼上幾個我認為還不錯的,太簡單的就不放程式碼了

select sname
from student
where sno in  
	(select monitor
	 from class
	 where clno in
	 (
		select clno
		from student
		where sname = '李勇敏'
	 )
	);

select COUNT(distinct cno)
from cj 
where sno = '2001102'
//////////////////////////////////////////////////////////////////////

select  distinct sno 
from cj
where cj.grade > 70 and cj.grade <90;
////////////////////////////////////////////////////////////////

select sno,avg(grade)
from cj
where sno in 
			(select sno
			 from student
			 where clno = '00311'
			)
group by sno

//////////////////////////////////////////////////////////////////////
select sno,clno,sage
from student
order by  sage desc,clno asc;

//////////////////////////////////////////////////////////////

	
select grade,cno,sno
from cj
where grade > 
			(
			select grade
			from cj
			where sno = '2000101' and cno = 3
			)

select  sno ,count(cno) 不及格科目數
from cj
where grade < 60 
group by (sno)
having COUNT(cno) >= 3
 

select  sno ,AVG(grade) 平均成績
from cj
group by (sno)