数据库一些大题

  • 格式:docx
  • 大小:310.37 KB
  • 文档页数:16

3. 设有下列关系模式:

STUDENTNQ NAME SEX BIRTHDAY CLASS

TEACHERNQ NAME SEX BIRTHDAY PROF DEPART

COURSECNQ CNAMETNO

SCOR(NQ CNO GRADE

其中,学生信息表 STUDEN由学号(NO、学生姓名(NAM)性

别(SEX、出生年月日(BIRTHDA)班级(CLASS组成,记录学生 的情况;教师信息表TEACHE由教师号(NO、教师姓名(NAME性

别(SEX、出生年月曰(BIRTHDA)职称(FROF、教师所在系(DEPART 组成,记录教师的情况;课程表 COURS由课程号(CNO、课程名称

(CNAM、任课教师号(TNO组成,记录所开课程及任课教师情况; 成绩表SCORED学生学号(NO、课程号(CNO、成绩(GRAD、组成, 记录学生选课情况及相应的成绩。用 SQL语句实现以下操作

1) 显示STUDEN表中每个学生的姓名和出生日期。

SELECT NAMEBIRTHDAY FROM STUDENT

2) 显示STUDEN表中所有姓“王”的学生记录。

SELECT * FROM STUDENT WHERE NAME L王E% ;

3) 显示成绩表中成绩在60分到80分之间的所有记录。

SELECT * FROM SCORE WHERE GRADE BETWEEN 60 AND 80 或者(SELECT * FROM SCORE WHERE GRADE>60 AND GRADE <80)

4) 显示“男”教师及其所上的课程。(显示该教师的姓名和所上的课 程名) SELECT, FROM TEACHER COURSE

WHERE = AND SE)= ‘男’;

5) 选出和“李军”同学同性别并同班的学生姓名。

SELECT NAME FROM STUDENT

WHERE SEX=SELECT SEX FROM STUDENT WHERE NA李军=)

AND

CLASS=( SELECT CLASS FROM STUDENT WHERE NA^=

军’);

6)向STUDENT!中插入一条学生记录。(学号:999,姓名:程功,

性别:男,出生年月日:1980-01-01,班级:95035)

INSERT INTO STYDENTVALUESf 999', ‘程功'‘男’

#1980-01-01#, ‘95035');

7) 在STUDEN表中将学号为“ 999”的学生的班号改为“ 95031”

UPDATE STUDENT SET CLAS'S=5031' WHERE NO=999‘;

8) 在STUDEN表中删除学号为“ 999”的学生记录。

DELETE FROM STUDENT WHERE

4. 设有下列四个关系模式:

S (SNO SNAM, CITY)

P (PNO PNAME COLOR WEIGH)

J (JNO JNAME CITY)

SPJ (SNO PNO JNO QTY 其中,供应商表S由供应商号(SNO、供应商姓名(SNAM)供应商 所在城市(CITY、组成,记录各个供应商的情况;零件表 P由零件号

(PNO、零件名称(PNAM)零件颜色(COLOR 零件重量(WEIGH) 组成,记录各种零件的情况;工程项目表 J由项目号(JNQ、项目名

(JNAMR项目所在城市(CITY)组成,记录各个工程项目的情况; 供应情况表SPJ由供应商号(SNO、零件号(PNO、项目号(JNQ、 供应数量(QTY组成,记录各供应商供应各种零件给各工程项目的 数量。用SQL语言完成下列操作:

出工程项目J2使用的各种零件的名称及其数量

SELECT PNAMEQT Y FROM SPJ , P WHERE = AND JNO= ‘ J2'

② 找出所有零件的名称、颜色、重量

SELECT PNAME, COLOR, WEIGHT FROM P

③ 找出上海厂商供应的所有零件号码

SELECT DISTINCT PNO FROM SPJ

WHERE SNO IN ( SELECT SNO FROM S WHERE CIT Y=上 海');

④ 从供应商关系中删除 S2 (供应商号)的记录,并从供应情况关系 中删除相应的记录

DELETE FROM S WHERE SNO=S2‘ ;

DELETE FROM SPJ WHERE SNO= ’S2'

⑤ 请将(S2, P4, J6, 200)插入供应情况关系

INSERT INTO SPJ VALUS ( 'S2' ‘ P4' ‘ J6' 200);

5 .设有3个关系:

S (S#, SNAMJEAGE SEX

SC (S#, C# CNAM) C(C# CNAMETEACHER

试用关系代数表达式表示下列查询语句:

1) 检索LIU老师所授课程的课程号和课程名。

n c#, CNAM£ (T TEACHER=LIU ' (C))

2) 检索年龄大于23岁的男学生的学号和姓名

n S#, SNAME T AGE‘23'人 SEX= ' M (S))

3) 检索学号为S3学生所学课程的课程名与任课教师名。

n CNAME TEACHER T S#= ' S3' (S3 C))

4) 检索至少选修LIU老师所授课程中一门课的女学生姓名

n SNAME T SEX='F'人 TEACHER= LIU' (S g SC^ C))

5) 检索WAN同学不学的课程的课程名。

n C#(C)- n C#( T SNAME‘WANG (S g SC)

6) 检索全部学生都选修的课程的课程号与课程名

n C#,CNAM*C g ( n S#, C#(SC) — n S#(S)))

7) 检索选修课程包含LIU老师所授全部课程的学生学号

n S#, C #(SC)—n c#( T TEACHER= LIU ' (C))

1. 设有下列四个关系模式:

S (SNO SNAME CITY)

P (PNO PNAME COLOR WEIGH) 1、 求供应工程项目号为J1工程零件的供应商号SNO

n SNO (T JNO= ‘ J1' (SPJ)

SELECT SNO FROM SPJ WHERE JNO=1';

2) 求供应工程项目号为J1工程零件号为P1的供应商号SNO n SNO

(T JNO= ' JT 人 PNO‘ P1' (SPJ)

SELECT SNO FROM SPJ WHERJNO‘ J1' AND PNO‘P1‘;

3) 求供应工程项目号为J1工程红色零件的供应商号 SNO

n SNO (T JNO= ' JT 人 COLOR‘红’ (SPJ^ P))

SELECT SNO FROM SPJ P WHERE = AND ‘红'AND JNO=

J1'

4)求至少使用天津供应商生产的红色零件的工程号 JNO

n JNO ( SPJ) - n JNO (C city='天津'人 COLOR=红' (SPJ^ S)) J (JNO JNAME CITY)

SPJ (SNO PNO JNO QTY

其中,供应商表S由供应商号(SNO、供应商姓名(SNAM)供 应商所在城市(CITY)组成,记录各个供应商的情况;零件表 P由零 件号(PNO、零件名称(PNAM)零件颜色(COLOR零件重量(WEIGH) 组成,记录各种零件的情况;工程项目表 J由项目号(JNQ、项目名

(JNAM)项目所在城市(CITY)组成,记录各个工程项目的情况; 供应情况表SPJ由供应商号(SNO、零件号(PNO、项目号(JNQ、 供应数量(QTY组成,记录各供应商供应各种零件给各工程项目的

数量。分别用关系代数和SQL语言完成下列查询:

SELECT JNO FROM SP, P, S

WHERE = AND = AND CITY<>天津’AND COLOR<>!';

5)求至少用了 S1供应商所供应的全部零件的工程号 JNO(本题不需 要用SQL语言完成)

n JNO,PN ((SPJ) —n PN(( (T SNO‘ S1' (SPJ))

2. 现有如下关系模式:

雇员(员工姓名,居住城市,居住街道)

工作(员工姓名,公司名,工资)

公司(公司名,公司所在城市)

主管(员工姓名,主管姓名)

用关系代数完成下列查询:

1) 找出所有在公司名为“ firstbank ”的公司工作的员工,显示员工 姓名。

n 员工姓名 (T 公司名='firstbank '(工作))

2) 显示为“ firstbank ”公司工作的员工姓名和居住城市。

n 员工姓名,居住城市 (T 公司名=‘ firstba nk '(雇员乂工作))

3) 找出所有为“ firstbank ”公司工作且工资在1000元以上的员工, 显示员工姓名和工资。

n 员工姓名,工资 (T公司名=‘ firstbank '人工资>1000 (工作))

4) 找出每个员工工资都在1000元以上的公司,显示公司名。

n 公司名 (工作)-n 公司名 (T工资<1000 (工作))

5) 找出主管人员Smith领导的员工姓名及员工居住的城市。 n 员工姓名,居住城市 (C主管姓名=‘ Smith ' (雇员*主管))

9.设数据库中有3个关系:

职工表 EMP(E#, ENAMJEAGE SEX ECITY),其属性分别表示职工

工号、姓名、年龄、性别和籍贯。

工作表 WORKSE#, C#, SALARY,其属性分别表示职工工号、工作 的公司编号和工资。

公司表COMP(C#, CNAMECITY),其属性分别表示公司编号、公司

名称和公司所在城市。

试用SQL语言写出下列操作:

1) 检索超过50岁的男职工的工号和姓名。

SELECT E# ENAME FROM EMP WHERE AGE>50 AND SE||=;

2) 假设每个职工只能在一个公司工作, 检索工资超过1000元的男性 职工工号和姓名。

SELECT #, ENAME FROM EMPWORKS

WHERE #=# AND SALAR Y>10Q0

3) 假设每个职工可在多个公司工作,检索在编号为 C4和C8公司兼 职的职工工号和姓名。

SELECT #, FROM EMP A WORKS BWORKS C

WHERE #=# AND #=# AND #=C4‘ AND #= 'C8‘;

4) 检索在“联华公司”工作、工资超过1000元的男性职工的工号和 姓名。