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