リレーショナルデータベース言語のSQL演習(3)


序文

この記事で使用されているS、SC、C、およびTはすべて、教育で使用されている従来の教育データベースであり、属性については説明していません。

1.質問ドライ

SQL更新ステートメントを試して、教育データベースでリレーショナルS SCCTの更新操作を表現してください。

第二に、問題を解決するためのステップ

1.コースタプル( 'c8'、 'vc ++'、 'T6')をリレーションcに挿入します。

コードは次のように表示されます。

INSERT INTO C
VALUES(‘C8’,’VC++’,’T6’)

2.教えられたすべてのコースで平均スコアが80を超える教師の名前を取得し、取得した値をFACULTY(TNAME)に送信します。

コードは次のように表示されます。

INSERT INTO FACULTY(TNAME)
SELECT DISTINCT TNAME
FROM(SELECT TNAME,C.C#,AVG(SCORE)
FROM T,C,SC
WHERE T.T#=C.T#AND C.C#=SC.C#
GROUP BY TNAME,C.C#)
AS RESULT(TNAME,C#,AVG—SCORE)AS X
WHERE 80<=ALL(SELECT AVG—SCORE
FROM RESULT AS Y
WHERE Y.TNAME=X.TNAME)

3.SCで成績のない選択タプルを削除します

DELETE FROM SC WHERE SCORE IS NULL

4.LIU先生のコースを受講している女子学生のタプルをすべて削除します

DELETE FROM SC
WHERE S# IN(SELECT S# FROM S WHERE SEX=’F’)
AND C# IN(SELECT C# FROM C.T WHERE C.T#=T.T#AND TNA

5.MATHSのすべての不合格グレードを60に変更します

UPDATE SC
SET SCORE=60
WHERE SCORE<60
AND C# IN(SELECT C#FROM C WHERE CNAME=’MATHS’)

6.平均を下回る女子学生の成績を5%向上させる

UPDATE SC
SET SCORE=SCORE*1.05
WHERE S # IN(SELECT S# FROM S WHERE SEX='F’)
AND SCORE<(SELECT AVG(SCORE)FROM SC);

7. C4 <= 70の場合、5%増加し、それ以外の場合は4%増加します(2つの方法を使用)

UPDATE SC
SET SCORE=SCORE*1.04
WHERE C#=’C4’AND SCORE>70;
UPDATE SC
SET SCORE=SCORE*1.05
WHERE C#=’C4’AND SCORE<=70;

UPDATE SC
SET SCORE=SCORE*CASE
WHEN SCORE>70 THEN 1.O4
ELSE l.05
END
WHERE C#=’C4’:

8. SCでは、特定の成績がすべてのコースの平均成績よりも低い場合、5%増加します

UPDATE SC
SET SCORE=SCORE*105
WHERE SCORE<(SELECT AVG(SCORE)
FROM SC)

総括する

記事は急いで公開されました、私を訂正してください

おすすめ

転載: blog.csdn.net/Skylar_tramp/article/details/114931739