《數(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元的男性職工工號和姓名。
2、④ 假設(shè)每個職工可在多個公司工作,檢索在編號為C4和C8公司兼職的職工工號和姓名。
⑤ 檢索在“聯(lián)華公司”工作、工資超過1000元的男性職工的工號和姓名。
⑥ 假設(shè)每個職工可在多個公司工作,檢索每個職工的兼職公司數(shù)目和工資總數(shù).顯示(E#,NUM,SUM_SALARY),分別表示工號、公司數(shù)目和工資總數(shù)。
⑦ 工號為E6的職工在多個公司工作,試檢索至少在E6職工兼職的所有公司工作的職工工號。
⑧ 檢索聯(lián)華公司中低于本公司平均工資的職工工號和姓名。
⑨ 在每一公司中為50歲以上職工加薪100元(若職工為多個公司工作,可重復(fù)加)。
⑩ 在EMP表和WORKS表中刪除年齡大于60歲的職工
3、有關(guān)元組。
解:① CREATE TABLE EMP
( E# CHAR(4) NOT NULL,
ENAME CHAR(8) NOT NULL,
AGE SMALLINT,
SEX CHAR(1),
ECITY CHAR(20),
PRIMARY KEY(E#));
CREATE TABLE COMP
( C# CHAR(4) NOT NULL,
CNAME CHAR(20) NOT NULL,
CITY CHAR(20),
PRIMARY KEY(C#));
CREATE TABLE WORKS
( E# CHAR(4) NOT
4、NULL,
C# CHAR(4) NOT NULL,
SALARY SMALLINT,
PRIMARY KEY(E#, C#),
FOREIGN KEY(E#) REFERENCES EMP(E#),
FOREIGN KEY(C#) REFERENCES COMP(C#));
② SELECT E#, ENAME
FROM EMP
WHERE AGE>50 AND SEX='M';
③ SELECT EMP.E#, ENAME
FROM EMP, WORKS
WHERE EMP.E#=WORKS.E# AND SALARY>1000;
④ SELECT A.E
5、#, A.ENAME
FROM EMP A, WORKS B, WORKS C
WHERE A.E#=B.E# AND B.E#=C.E#
AND B.C#='C4' AND C.C#='C8';
⑤ SELECT A.E#, A.ENAME
FROM EMP A, WORKS B, COMP C
WHERE A.E#=B.E# AND B.C#=C.C#
AND CNAME='聯(lián)華公司' AND SALARY>1000
AND SEX='M';
⑥ SELECT E#, COUNT(C#) AS NUM, SUM(SALARY) AS SUM_SALARY
FROM WO
6、RKS
GROUP BY E#;
⑦ SELECT X.E#
FROM WORKS X
WHERE NOT EXISTS
(SELECT *
FROM WORKS Y
WHERE E#='E6'
AND NOT EXISTS
(SELECT *
FROM WORKS Z
WHERE Z.E#=X.E#
AND Z.C#=Y.C#));
⑧ SELECT A.E#, A.ENAME
FROM EMP A, WORKS B, COMP C
WHERE A.E#=B.E# AND B.C#=C.C#
AND CNAME='聯(lián)華公司'
AND SALARY<(SELECT AVG(SALARY)
FROM WORKS, COMP
WHERE WORKS.C#=COMP.C#
AND CNAME='聯(lián)華公司');
⑨ UPDATE WORKS
SET SALARY=SALARY+100
WHERE E# IN (SELECT E# FROM EMP WHERE AGE>50);
⑩ DELETE FROM WORKS
WHERE E# IN (SELECT E# FROM EMP WHERE AGE>60);
DELETE FROM EMP
WHERE AGE>60;
3
試題yu教育