SQL语句(查询、新建表、删除表、更新表、新建视图)
生活随笔
收集整理的這篇文章主要介紹了
SQL语句(查询、新建表、删除表、更新表、新建视图)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL語句(一):
涉及:查詢、新建表、刪除表、更新表、新建視圖操作
1、注意:只需要創建SPJ表即可,但要記得外鍵和主鍵用SQL語句建立2.8中的四個表
(這里只需要給出SPJ表的創建腳本即可),
S(SNO,SNAME,STATUS,SCITY);
P(PNO,PNAME,COLOR,WEIGHT);
J(JNO,JNANE,JCITY);
SPJ(SNO,PNO,JNO,QTY)。
其中在SPJ表中,SNO、PNO和JNO是外鍵分別參照S、P、J中的相應字段。
create table SPJ(SNO INT NOT NULL,PNO INT NOT NULL,JNO INT NOT NULL,FOREIGN KEY(SNO) REFERENCES S(SNO),FOREIGN KEY(PNO) REFERENCES P(PNO),FOREIGN KEY(JNO) REFERENCES J(JNO));2、做下面的查詢時,大家記得distinct的使用。
針對上題中四個表,用SQL語句完成下述操作(2-9題)。
找出使用供應商S1所供零件的工程號碼。
SELECT JNO FROM SPJ WHERE SNO = 'S1';3、找出工程項目J2使用的各種零件名稱及其數量。
SELECT P.PNAME,SPJ.QTYFROM P,SPJWHERE P.PNO = SPJ.PNOAND SPJ.JNO = 'J2';4、找出上海廠商供應的所有零件號碼。
SELECT DISTINCT PNOFROM SPJWHERE SNO IN(SELECT SNOFROM SWHERE CITY = '上海');5、找出使用上海產的零件的工程名稱。
SELECT J.NAMEFROM J,SPJ,SWHERE J.JNO = SPJ.JNOAND SPJ.SNO = S.SNOANDS.CITY = '上海';6、找出沒有使用天津產零件的工程號碼
SELECT JNOFROM JWHERE NOT EXISTS(SELECT *FROM SPJWHERE SPJ.JNO = J.JNOAND SNO IN(SELECT SNOFROM SWHERE CITY = '天津'));7、將由供應商S5供給工程代碼為J4的零件P6改為由S3供應。
UPDATE SPJSET SNO = S3WHERE SNO = 'S5' AND JNO = 'J4' AND PNO = 'P6';8、從供應商關系中刪除S2的記錄,并從供應零件關系中刪除相應的記錄。
DELETE FROM SPJWHERE SNO = 'S2';DELETEFROM SWHERE SNO = 'S2';9、請將(S2,J6,P4,500)插入供應情況表。
INSERT INTO SPJ(SNO,JNO,PNO,QTY)VALUES(S2,J6,P4,500)10、對于教學數據庫的三個基本表:
S(S# ,SNAME ,AGE ,SEX)
SC(S# ,C# ,GRADE)
C(C# ,CNAME ,TEACHER)試用SQL語句表達下列查詢(10-18):
10、查詢姓劉的老師所授課程的課程號和課程名
SELECT C#,CNAMEFROM CWHERE TEACHER = ‘劉’;11、查詢年齡大于23歲的男同學的學號和姓名。
SELECT s#, snameFROM SWHERE age>23 AND sex='男';12、查詢學號為S3學生所學課程的課程號、課程名和任課教師名。
SELECT * FROM C,SCWHERE C.C# = SC.C# AND SC.S# = 'S3';13、查詢“張小飛”沒有選修的課程號和課程名。
SELECT C#,CNAMEFROM CWHERE NOT EXISTS(SELECT * FROM S, SCWHERE sc.s#=s.s#AND sc.c#=c.c# AND s.sname='張小飛');14、查詢至少選修了3門課程的學生的學號和姓名。
SELECT S.S#,S.SNAMEFROM S,SCWHERE S.S#=SC.S#GROUP BY S.S#HAVING count(*)>=3;15、在SC中刪除尚無成績的選課元組。
delete from SCwhere SC.GRADE in null;16、把“高等數學”課的所有不及格成績都改為60。
update SCset SC.GRADE = 60where SC.GRADE < 60 and SC.CNO in (select CNOfrom Cwhere C.CNAME = '高等數學');17、把低于所有人總平均成績的女同學的成績提高5%。
update SCset SC.GRADE = SC.GRADE * (1 + 5%)where SC.SNO in (select SNO from Swhere S.SEX = '女')and SC.GRADE < (select avg(GRADE)from SC);18、向C中插入元組(‘C8’,‘VC++’,‘王昆’)。
insert into Cvalues ('C8', 'VC++', '王昆');19、請為三建工程項目建立一個供應情況的視圖,包括供應商代碼(SNO)、零件代碼(PNO)、供應數量(QTY)。
CREATE VIEW 三建 AS SELECT SNO,PNO,QTY FROM SPJ,J WHERE SPJ.JNO=J.JNO AND J.JNAME ='三建';20、針對上題(19題)所創建的視圖完成查詢:(1)找出三建工程項目使用的各種零件代碼及其數量;
SELECT PNO,SUM(QTY)AS QTY FROM 三建GROUP BY PNO21、針對上題(19題)所創建的視圖完成查詢:找出供應商S1的供應情況。
SELECT *FROM 三建WHERE SNO ='S1';總結
以上是生活随笔為你收集整理的SQL语句(查询、新建表、删除表、更新表、新建视图)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《动态壁纸 : 手机壁纸大全》EULA条
- 下一篇: linux下查看硬盘型号、大小等信息