《數(shù)據(jù)庫題目【高教成教】》由會員分享,可在線閱讀,更多相關(guān)《數(shù)據(jù)庫題目【高教成教】(3頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、3.13 設(shè)數(shù)據(jù)庫中有三個關(guān)系:職工表EMP(E#,ENAME,AGE,SEX,ECITY),其屬性分別表示職工工號、姓名、年齡、性別和籍貫。工作表WORKS(E#,C#,SALARY),其屬性分別表示職工工號、工作的公司編號和工資。公司表COMP(C#,CNAME,CITY),其屬性分別表示公司編號、公司名稱和公司所在城市。試用SQL語句寫出下列操作: 用CREATE TABLE語句創(chuàng)建上述三個表,需指出主鍵和外鍵。 檢索超過50歲的男職工的工號和姓名。 假設(shè)每個職工只能在一個公司工作,檢索工資超過1000元的男性職工工號和姓名。 假設(shè)每個職工可在多個公司工作,檢索在編號為C4和C8公司兼職
2、的職工工號和姓名。 檢索在“聯(lián)華公司”工作、工資超過1000元的男性職工的工號和姓名。 假設(shè)每個職工可在多個公司工作,檢索每個職工的兼職公司數(shù)目和工資總數(shù).顯示(E#,NUM,SUM_SALARY),分別表示工號、公司數(shù)目和工資總數(shù)。 工號為E6的職工在多個公司工作,試檢索至少在E6職工兼職的所有公司工作的職工工號。 檢索聯(lián)華公司中低于本公司平均工資的職工工號和姓名。 在每一公司中為50歲以上職工加薪100元(若職工為多個公司工作,可重復(fù)加)。 在EMP表和WORKS表中刪除年齡大于60歲的職工有關(guān)元組。解:CREATE TABLE EMP( E# CHAR(4) NOT NULL,ENAME
3、 CHAR(8) NOT NULL,AGESMALLINT,SEXCHAR(1),ECITYCHAR(20),PRIMARY KEY(E#);CREATE TABLE COMP( C# CHAR(4) NOT NULL,CNAME CHAR(20) NOT NULL,CITYCHAR(20),PRIMARY KEY(C#);CREATE TABLE WORKS( E# CHAR(4) NOT NULL, C#CHAR(4) NOT NULL, SALARYSMALLINT,PRIMARY KEY(E#, C#),FOREIGN KEY(E#) REFERENCES EMP(E#),FOREIG
4、N KEY(C#) REFERENCES COMP(C#);SELECT E#, ENAMEFROM EMPWHERE AGE50 AND SEX=M;SELECT EMP.E#, ENAMEFROM EMP, WORKSWHERE EMP.E#=WORKS.E# AND SALARY1000;SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, WORKS CWHERE A.E#=B.E# AND B.E#=C.E#AND B.C#=C4 AND C.C#=C8;SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, COMP CWHER
5、E A.E#=B.E# AND B.C#=C.C#AND CNAME=聯(lián)華公司 AND SALARY1000AND SEX=M;SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUM_SALARYFROM WORKS GROUP BY E#;SELECT X.E#FROM WORKS XWHERE NOT EXISTS(SELECT *FROM WORKS YWHERE E#=E6AND NOT EXISTS(SELECT *FROM WORKS ZWHERE Z.E#=X.E#AND Z.C#=Y.C#);SELECT A.E#, A.ENAMEFROM EMP A, WORKS B, COMP CWHERE A.E#=B.E# AND B.C#=C.C# AND CNAME=聯(lián)華公司AND SALARY50);DELETE FROM WORKSWHERE E# IN (SELECT E# FROM EMP WHERE AGE60);DELETE FROM EMPWHERE AGE60;3試題yu教育