MySQL学习---作业(1)
題目是從學(xué)校MOOC平臺(tái)粘過(guò)來(lái)的!
3.8 對(duì)于教學(xué)數(shù)據(jù)庫(kù)的三個(gè)基本表:
S(學(xué)號(hào),姓名 ,年齡,性別)
SC(學(xué)號(hào) ,課程號(hào),成績(jī))
C(課程號(hào) ,課程名,任課教師姓名)
試用SQL語(yǔ)句表達(dá)下列查詢:
⑴ 查詢姓劉的老師所授課程的課程號(hào)和課程名。
⑵ 查詢年齡大于23歲的男同學(xué)的學(xué)號(hào)和姓名。
⑶ 查詢學(xué)號(hào)為S3的學(xué)生所學(xué)課程的課程號(hào)、課程名和任課教師姓名。
⑷ 查詢“張小飛”沒(méi)有選修的課程號(hào)和課程名。
⑸ 查詢至少選修了3門(mén)課程的學(xué)生的學(xué)號(hào)和姓名。
⑹ 查詢?nèi)繉W(xué)生都選修了的課程編號(hào)和課程名稱(chēng)。
⑺ 在SC中刪除尚無(wú)成績(jī)的選課元組。
⑻ 把“高等數(shù)學(xué)”課的所有不及格成績(jī)都改為60。
⑼ 把低于總評(píng)均成績(jī)的女同學(xué)的成績(jī)提高5%。
⑽ 向C中插入元組(‘C8’,‘VC++’,‘王昆’)
無(wú)法把要更新的表放在from語(yǔ)句下:
You can’t specify target table for upedate in from column
解決方案
需要把(邏輯上)需要放在from之后的表(也就是那些滿足篩選條件的與元組集合)偽裝成一個(gè)新的表,再?gòu)闹腥〕鲎鳛橄拗茥l件。
我覺(jué)得有些吃力的是(8)、(9):
#(8)update sc as a,(select 學(xué)號(hào),課程號(hào) from sc where 課程號(hào)=(select 課程號(hào) from c where 課程名='高等數(shù)學(xué)')) as bset 成績(jī)=60where a.學(xué)號(hào)=b.學(xué)號(hào)and a.課程號(hào)=b.課程號(hào)and a.成績(jī)<60;#(9) 這種方法有缺陷---只通過(guò)將修改元組的學(xué)號(hào)來(lái)選擇記錄update scset 成績(jī)=(1+0.05)*成績(jī)where 學(xué)號(hào) in (select a.學(xué)號(hào) from(select DISTINCT s.學(xué)號(hào) from s join sc on s.學(xué)號(hào)=sc.學(xué)號(hào)where sc.成績(jī)<(select avg(成績(jī)) from sc)and s.性別='女') as a);修整一下:
#題目:把高等數(shù)學(xué)不及格的成績(jī)都修改成60 #首先選出高等數(shù)學(xué)不及格的學(xué)號(hào)和課程號(hào) SELECT 學(xué)號(hào),課程號(hào) FROM SC WHERE 成績(jī)<60 AND 課程號(hào)= (SELECT 課程號(hào) from c where 課程名= '高等數(shù)學(xué)') #接著,更新相應(yīng)成績(jī) UPDATE SC as a,(SELECT 學(xué)號(hào),課程號(hào) FROM SC WHERE 成績(jī)<60 AND 課程號(hào)= (SELECT 課程號(hào) from c where 課程名= '高等數(shù)學(xué)')) as b SET 成績(jī)=60 WHERE a.學(xué)號(hào)=b.學(xué)號(hào) and a.課程號(hào)=b.課程號(hào); #題目:把低于總平均成績(jī)的女同學(xué)的成績(jī)提高5% update sc a set 成績(jī)=(1+0.05)*成績(jī) where a.學(xué)號(hào) in (select 學(xué)號(hào) from s where 性別='女') and a.成績(jī) in (select m.成績(jī) from (select 成績(jī) from sc where 成績(jī)<(select avg(成績(jī)) from sc) )as m);注:最后一行體現(xiàn)了上述的“偽裝”—把選出的成績(jī)沒(méi)有直接選擇,而是通過(guò)命名成新的表m,再行選擇
總結(jié)
以上是生活随笔為你收集整理的MySQL学习---作业(1)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 计划bom表 java_ERP总结系列(
- 下一篇: 三、大数据时代下的SQL Server第