數(shù)據(jù)庫表的查詢操作實踐演練(實驗三)
繼前兩次的實驗,本次實驗以熟練掌握利用select語句進行各種查詢操作:單表查詢、多表連接及查詢、嵌套查詢、集合查詢等,鞏固數(shù)據(jù)庫查詢操作。
下面就跟著小編一起練習吧!
在實驗一創(chuàng)建并插入數(shù)據(jù)的表(Student, Course,SC,Teacher,TC)的基礎上,完成以下操作。
(1)將教師‘羅莉'的名字改為‘羅莉莉'。
(2)將兩個同學(數(shù)據(jù)自己臨時設置,用后即刪除)的兩門課程的成績以運行sql程序文件的形式插入score表中。該題用以驗證、理解和掌握關系模型的完整性規(guī)則;
插入:
insert into Score(sno,cno,grade) values('04261007','C004','79')
查詢:
刪除:
(3)求每門課的平均成績,并把結果存入average表(自行設計并創(chuàng)建);
(
cno CHAR(8),
avscore numeric(5,2),
constraint a1 primary key (cno),
constraint a2 foreign key (cno) references Course(cno),
)
insert into average(cno,avscore)
select distinct cno ,avg(grade) from Score group by cno
(4)將學生“馬麗”的年齡改為24;
(5)將所有學生的szipcode屬性列值填補上;
(6)將average表中的所有課程的平均成績置零;
(7)刪除average表中的課程號為‘C007'的平均成績記錄;
(8)刪除所有average表中平均成績記錄;
(9)建立一個臨時學生信息表(tstudent),刪除該表中的學號含‘101'的所有學生記錄。
Delete from tstudent where Sno like '001011%';
(10)查詢?nèi)w學生的學號與姓名;
(11)查詢?nèi)w學生的學號、姓名、所屬系;
(12)查詢?nèi)w學生的詳細記錄;
(13)查詢?nèi)w學生的姓名及其年齡;
(14)查詢?nèi)w學生的姓名、出生年份;
(15)查詢所有修過課的學生的學號;
select distinct student.sno from Student,Score where Student.sno=Score.sno and Score.grade>0 ;
(16)查詢“計算機系”班全體學生名單;
(17)查詢查詢所有年齡在23歲以下的學生姓名及其年齡;
(18)查詢考試成績有不及格的學生的學號;
(19)查詢年齡在20至22歲之間的學生姓名、系和年齡;
(20)查詢年齡不在20至22歲之間的學生姓名、系和年齡;
(21)查詢“計算機系”和“電商系”的學生的姓名;
(22)查詢既不是“計11”也不是“計61”班的學生的姓名和班級信息;
(23)查詢學號為“04262002”的學生的詳細情況;
[code]select student.sno,sname,ssex,2014-year(sbirth),sclass,grade from Student,Score where Student.sno=Score.sno and Student.sno='04262002';
(24)查詢學號以“04262”打頭的學生信息;
(25)查詢所有姓“張”學生的學號、姓名、性別、年齡;
(26)查詢名字中第二個字有“?!弊值膶W生的學號、姓名、性別、年齡;
(27)查詢所有不姓“劉”學生的姓名;
(28)查詢課程號以“C”開頭的最后兩個字母為“05”的課程號和課程名;
(29)某些學生選修某門課程后沒有參加考試,所以有選修課記錄,但沒有考試成績,試查找缺少考試成績的學生和相應的課程號;
(30)查找全部有成績記錄的學生學號、課程號;
(31)查找“計算機系”年齡在22歲以下的學生學號、姓名;
(32)查找選修了“C001”號課程的學生學號及其成績,查詢結果按分數(shù)降序排序;
(33)查詢?nèi)w學生情況,查詢結果按所在系升序排列,對同一系中的學生按年齡降序排列;
(34)查詢學生總人數(shù);
(35)查詢選修了課程的學生人數(shù);
(36)在所有課程中查詢最高分的學生學號和成績;
(37)查詢學習“C001”課程的學生最高分數(shù);
(38)計算各個課程號與相應的選課人數(shù);
(39)查詢“計算機系”選修了兩門課程以上的學生學號、姓名;
(select Student.sno from Student,Score where
sdept='計算機系'and Student.sno=Score.sno group by Student.sno having count(cno)>=2);
(40)自然連接student和score表;
(41)使用自身連接查詢每一門課程的間接先行課(即先行課的先行課)
(42)使用復合條件連接查詢選修“c001”號課程且成績在90分以上的所有同學;
(43)使用復合條件連接查詢每個學生選修的課程名及其成績;
(44)查詢選修了全部課程的學生;
(45)查詢所有選修了C001號課程的學生學號、姓名;
(46)查詢選修了課程C001或C007的學生學號、姓名;
[code]select student.sno,sname,cno from student,Score where student.sno=Score.sno and cno in ('C001','C007');
(47)查詢“計算機系”的學生及年齡不大于23歲的學生;
(48)查詢既選修了課程C001又選修了課程C007的所有學生學號、姓名;
(49)查詢選修了課程名為“數(shù)據(jù)庫原理”的學生的學號、姓名、性別、年齡;
(50)查詢其他班中比“計算機系”所有學生年齡都小的學生名單;
(51)查詢與“夏天”在同一個系學習的學生學號、姓名、性別、年齡;
(52)建立“計算機系”學生的視圖1;
as select sno,sname,ssex,sbirth,sclass from student where sclass='13z網(wǎng)絡'
(53)建立“計算機系”學生的視圖2,并要求進行修改與插入時,仍須保證該視圖只有“計算機系”班學生;
as select sno,sname,ssex,sbirth,sclass from student where sclass='13z網(wǎng)絡' with check option;
(54)建立“計算機系”選修了“C001”課程的學生的視圖,定義視圖名為“v_cs_C001_student1”;
as select student.sno,sname,ssex,sbirth,sclass from Student ,Score where
student.sno=Score.sno and sclass='13z網(wǎng)絡' and cno='C001';
(55)建立“計算機系”班選修了“C001”課程且成績在90分以上的學生的視圖,定義視圖名為“cs_c001_student2”;
as
select student.sno,sname ,ssex,sbirth,sclass,cno from student,Score where
student.sno=Score.sno and cno='C001' and sclass='13z網(wǎng)絡'and student.sno in (select student.sno from student,Score where student.sno=Score.sno and grade>90)
(56)定義一個反映學生年齡的視圖,定義視圖名為“v_birth_student”;
as
select sno,sname,2014-year(sbirth) age from student
(57)將學生表中所有女生記錄定義為一個視圖,視圖名為“v_female_student”;
as
select * from student where ssex='女';
(58)將學生的學號及其平均成績定義為一個視圖,視圖名為“v_average_student”;
as
select sno,avg(grade) avscore from Score group by sno;
(59)在“計算機系”學生視圖中找出年齡小于22歲的學生;
(60)利用視圖查詢“計算機系”選修了“C001”課程的學生;
(61)通過(52)中的“計算機系”視圖修改某個學生的名字;
(62)通過(53)中的“計算機系”視圖,插入一個新學生記錄。
(63)通過(53)中的“計算機系”視圖,刪除一個學生記錄。
實驗課結束了,相信通過本節(jié)課的實踐操作,小伙伴們都對數(shù)據(jù)庫表的操作有了更進一步的了解。
以上就是查詢數(shù)據(jù)庫表的基本操作,幾乎涵蓋了各種查詢操作所遇到的情況,值得大家親自操作一下,相信對大家的學習有所幫助。
- MySQL學習筆記3:表的基本操作介紹
- 單個select語句實現(xiàn)MySQL查詢統(tǒng)計次數(shù)
- sql查詢出各科成績最好的學生信息
- mysql查詢昨天 一周前 一月前 一年前的數(shù)據(jù)
- mysql查詢今天、昨天、近7天、近30天、本月、上一月的SQL語句
- MySql查詢時間段的方法
- MySQL查詢和修改auto_increment的方法
- 一個優(yōu)化MySQL查詢操作的具體案例分析
- MySQL查詢倒數(shù)第二條記錄實現(xiàn)方法
- 50條SQL查詢技巧、查詢語句示例
- SQL查詢出表、存儲過程、觸發(fā)器的創(chuàng)建時間和最后修改時間示例
- 大幅優(yōu)化MySQL查詢性能的奇技淫巧
- SQL大量數(shù)據(jù)查詢的優(yōu)化及非用like不可時的處理方案
- 如何使用MySQL查詢某個列中相同值的數(shù)量統(tǒng)計
- SQL如何實現(xiàn)MYSQL的遞歸查詢
- 數(shù)據(jù)庫表的創(chuàng)建、管理和數(shù)據(jù)操作(實驗一)
- 數(shù)據(jù)庫表的查詢操作(實驗二)
相關文章
SQL Server簡單實現(xiàn)數(shù)據(jù)的日報和月報功能
這篇文章主要介紹了SQL Server簡單實現(xiàn)數(shù)據(jù)的日報和月報功能,結合實例形式對比分析了SQL Server實現(xiàn)當日及當月數(shù)據(jù)的查詢功能相關技巧,需要的朋友可以參考下2016-06-06SQL Server誤區(qū)30日談 第13天 在SQL Server 2000兼容模式下不能使用DMV
對于兼容模式已經(jīng)存在了很多誤解。80的兼容模式的數(shù)據(jù)庫是否意味著能夠附加或恢復到SQL Server 2000數(shù)據(jù)庫?當然不是2013-01-01