收藏 分销(赏)

SQL数据库复习题.doc

上传人:xrp****65 文档编号:9434582 上传时间:2025-03-26 格式:DOC 页数:15 大小:312.50KB
下载 相关 举报
SQL数据库复习题.doc_第1页
第1页 / 共15页
SQL数据库复习题.doc_第2页
第2页 / 共15页
点击查看更多>>
资源描述
复习题 年级专业: 教学班号: 学号: 姓名: 装 订 线 一、名词解释 实体:客观存在并可相互区别的个体 域 :是一组具有相同数据类型的值的集合。 候选码:若关系中的某一属性或属性组的值能唯一地标识一个元组,则称该关系中所有满足此要求的属性或属性组为候选码。 主码:若一个关系中有多个候选码,则选定其中一个为主码。 外码:若一个关系R2 中的一个属性子集S 是另一个关系R1 的主码所对应的属性组,则称S 为R2 的外码。 主属性:候选码中的诸(各)属性称为主属性。 数据:对客观事物特征一种抽象的符号化的表示,即用一定的符号表示那些从观察或测量中所收集的基本事实 数据库:计算机的存储设备上合理存放的相关联的有结构的数据集合 码: 设K 为关系模式R <U,F>中的属性或属性组,若K -f--->U则K为R的候选码,也称为码。 参照完整性:考虑不同关系之间或同一关系的不同元组之间的制约 数据字典:用于定义数据流程图中出现的所有数据元素和处理。通常包括数据项、数据流、数据存储和处理过程四个元素。 二、选择题 1. 在数据库中,下列说法( )是不正确的 A.数据库避免了一切数据的重复 B.若系统是完全可以控制的,则系统可确保更新时的一致性 C.数据库中的数据可以共享 D.数据库减少了数据冗余 2. 设关系R和S的元组个数分别为100和300,关系T是R与S的笛卡尔积,则T的元组个数是 ( ) A. 400  B. 10000   C. 30000   D. 90000 3. 为了防止一个用户的工作不适当地影响另一个用户,应该采取( ) A. 完整性控制 B. 安全性控制 C. 并发控制 D. 访问控制 4. 有一个关系:学生(学号,姓名,系别),规定学号的值域是8个数字组成的字符串,这一规则属于( ) A. 实体完整性约束 B. 参照完整性约束 C. 用户自定义完整性约束 D. 关键字完整性约束 5. 关系模型中,一个码是( )。 A. 可以由多个任意属性组成 B. 至多由一个属性组成 C. 由一个或多个属性组成,其值能够惟一标识关系中一个元组 D. 以上都不是 6. 解决并发操作带来的数据不一致问题普遍采用( ) A.封锁 B.存取控制 C.恢复 D.协商 7. 设有关系R,按条件f对关系R进行选择,正确的是( ) A.R×R B. C.RfR D.f (R) 8 假设学生关系S(S#,SNAME,SEX),课程关系C(C#,CNAME),学生选课关系SC(S#,C#,GRADE)。要查询选修“Computer”课的男生姓名,将涉及到关系( ) A. S B. S,SC C. C,SC D. S,C,SC 9. 如果关系模式R中的每一个非主属性既不部分依赖也不传递依赖于键,则称这个关系模式属于( ) A. 第一范式 B. 第二范式  C. 第三范式  D. BC范式 10. 在数据库三级模式间引入二级映象的主要作用是(  ) A.提高数据与程序的独立性 B.提高数据与程序的安全性 C.保持数据与程序的一致性 D.提高数据与程序的可移植性 11. 设有一个关系:DEPT(DNO,DNAME),如果要找出倒数第三个字母为W,并且至少包含4个字母的DNAME,则查询条件子句应写成WHERE DNAME LIKE ( ) A. ‘_ _ W _ %’ B. ‘_ % W _ _’ C. ‘_ W _ _’ D. ‘_ W _ %’ 12、SQL的COMMIT语句的主要作用是( ) A. 终止程序 B. 中断程序 C. 事务提交 D. 事务回退 13、当局部ER图合并成全局ER图时可能出现冲突,不属于合并冲突的是( ) A.属性冲突 B.语法冲突 C.结构冲突 D.命名冲突 14、数据库管理系统能实现对数据库中数据的查询、插入、修改和删除等操作,这种功能称为( ) A.数据定义功能 B.数据管理功能 C.数据操纵功能 D.数据控制功能 15.“授权”是DBS采用的( ) A. 完整性措施 B. 安全性措施 C. 恢复措施 D. 并发控制措施 16、DB的转储属于DBS的 ( ) A. 完整性措施 B. 安全性措施 C.恢复措施 D. 并发控制措施 17、DB技术中,“脏数据”是指( ) A. 未提交的数据 B. 错误的数据 C. 未提交的随后又被撤消的数据 D. 回退的数据 18、在数据库三级模式两级映射中与数据库全局逻辑独立性有关的是( ) A. 模式 B. 内模式 C. 储存模式 D.外模式 19、在数据库系统中,日志文件用于(   ) A.保障事务的并发性 B.保障数据的安全性 C.检测系统的死锁 D.数据库故障的恢复 20、如果事务T获得了数据项Q上的排他锁,则T对Q( ) 。 A.只 能读不能写 B.只能写不能读 C.既可读又可写 D.不能读也不能写 三、简答题 1、数据库管理系统的主要功能有哪些? 数据库定义功能 数据库管理功能 数据库的建立和维护功能 数据组织、存储和管理功能 通信功能 2、试述关系模型的三个组成部分。 数据结构   操纵与完整性约束   存储结构 3、举例说明关系参照完整性的含义。 R为参照关系,S为被参照关系,即关系R中属性的取值必须是关系S中K列中存在的值 4、试述数据库设计过程。 需求分析 概念结构设计 逻辑结构设计 物理结构设计 实现 运行和维护 5、什么是事务?事务具有哪四个特性? 构成单一逻辑工作单元的操作集合 原子性 一致性 隔离性 持续性 6、并发操作会带来哪三类不一致性?什么样的并发调度是正确的调度? 丢失更新 读脏数据 不可重复读 只有可串行性调度才是正确的调度方式 7、数据模型的三个要素分别是什么? 数据结构 数据操作 数据约束条件 8、在学生、课程和选修三个关系模式中,选修关系的学号和课程号都是外码,请从实体完整性和参照完整性(规则)角度分析说明选修关系中这两个外码的取值情况。 学生(学号,姓名,性别,专业号,年龄) 课程(课程号,课程名,学分) 选修(学号,课程号,成绩) 实体完整性角度看:学号和课程号都是学生和课程之间的关系,主属性不能取重复的值,也不可以为空值;从参考完整性看:选修关系引用的学号,课程号是存在实体 9、试述数据库系统的组成 硬件 软件 数据库 用户 10、什么是基本表?什么是视图?它们之间的区别是什么? 基本表:本身独立存在的表,一个表可以带若干索引,索引也存放在存储文件中。 视图:一个表或者几个基本表导出的表,是一个虚表。 基本表和视图都是表,但基本表是实际存储数据库的表,视图时虚表,它是从基本表或其他视图中导出的表 11、数据库的三级模式结构包括哪三级模式和哪两级映像?为什么这两级映像可以保证数据库中的数据有较高的逻辑独立性和物理独立性? 三级模式:外部模式 概念模式 内部模式 两级映像:外模式/模式映像 模式/内模式映像 如果数据库的模式需要改变,只需对外模式/模式映像作相应修改,可使外模式和应用程序尽可能保持不变,保证数据与程序的逻辑独立性。如果数据库为了某种需要改变内模式,可对模式/内模式映像作相应改变,可使模式尽可能保持不变,保证数据与程序的物理独立性 12、请叙述1NF、2NF、3NF的定义。 如果一个关系模式R,每个关系r的属性值都是不可再分的原子值,则称R为一范式 若R属于1NF,且每一个非主属性都完全函数依赖于候选码,则称R为第二范式 关系模式R属于2NF,且每个非主属性都不传递依赖于候选码,则称R为第三范式 13、什么是数据库的安全性?,什么是数据库的完整性?两者的区别是什么? 数据库的安全性:保护数据库以防止不合法的使用所造成的数据泄露、更改或者破坏 数据库的完整性:数据库中数据的正确性和相容性,即为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出 14、需求分析阶段的设计目标是什么?调查的内容是什么? 目标:通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能 调查内容:组织机构的调查 业务流程调查 系统的信息要求和处理要求 企业的限制和目标 15、什么是封锁,基本的封锁类型有几种?试述他们的含义。 封锁:事务T在对某个数据对象操作之前,先向系统发出请求,对其加锁 基本的封锁类型:X锁 S锁 X锁也称为排它锁,又称为写锁。若事务T对数据对象A加上X锁,则只允许T读取和修改A,不允许其他任何事务再对A进行加锁和操作,直至T释放A上的锁,从而保证在事务T释放A的硕之前,其他事务不能再读取和修改数据对象A S锁也称为共享锁,又称为读锁。若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的锁 16、什么是数据转储、静态转储和动态转储? 数据转储:DBA将整个数据库复制到磁带或另一个磁盘上保存起来的过程 静态转储:在系统中无运行事务时进行的转储操作 动态转储:转储期间允许对数据库进行存取或修改 17、RDBMS在实现参照完整性时需要考虑哪些方面? 外码的取值规则 参考表中增加元组 参考表中修改一个元组的外码 被参照表中删除一个元组 被参照表中修改一个元组的主码 18、什么叫数据与程序的物理独立性?什么叫数据与程序的逻辑独立性?为什么数据库系统具有数据与程序的独立性? 逻辑独立性表示一旦模式发生变化,无需改变外模式或应用程序能力,物理独立性表示不会因为内模式发生改变而导致概念模式发生改变的能力。因为两层映像保证了数据库具有较高的数据独立性。 19、把下列E-R图转换为相应的关系模式,说明:加下划线的属性为该实体的码。 人数 班号 班级名称 班级(CLASS) 1 成绩 C-S 课程号 学时数 课程名称 n S-C m n 课程(COURSE) 学生(STUDENT) 年龄 性别 姓名 学号 班级:班号 班级名称 人数 学生:学号 姓名 性别 年龄 班号 课程:课程号 课程名称 学时数 成绩: 学号 课程号 成绩 四、综合题 1、假设要建立一个企业数据库,该企业有多个下属单位,每一单位有多个职工,一个职工仅隶属于一个单位,且一个职工仅在一个工程中工作,但一个工程中有很多职工参加工作,有多个供应商为各个工程供应不同设备。单位的属性有:单位名、电话。职工的属性有:职工号、姓名、性别。设备的属性有:设备号、设备名、产地。供应商的属性有:姓名、电话。工程的属性有:工程号、地点。请完成如下处理: (1)设计满足上述要求的E-R图。 (2)将该E-R图转换为等价的关系模式,并标示出主码 单位:单位名 电话; 职工:职工号 姓名 性别 设备:设备号 设备名 产地; 供应商:姓名 电话 工程:工程名 地点 供应:姓名 工程名 设备号 数量 2、在学校中,一个学生只能属于一个院系,一个院系有多名学生,一个学校有多个社团,每个学生可以加入多个社团,每个社团有多名学生,有一个学生设计了一个关系模式:R(学号,姓名,所属院系编号,院系名称,参加社团的编号,社团名称,参加社团的日期) (1) 请描述该系统的最小函数依赖集。 (2) 请指出该学生的关系模式R的码。 (3) 请说明该学生的关系模式R属于几范式,并说明理由。 (4) 如果该学生的关系模式R不属于BCNF,请对该关系模式R进行模式分解,要求分解后的所有关系模式满足BCNF。 3、有一个“学生-课程”数据库(stu_c),数据库中包括三个表: (1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字, 类型char(8)。 (2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字,类型char(8)。 (3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (Sno, Cno) 为关键字。 (1)用SQL语句实现SC表的创建,要求定义相应的主键和外键约束 Create table SC( Sno char(8), Cno char(8), Grade int, Primary key (Sno,Cno) ); (2)“学生”表上以学生姓名和年龄建立一个唯一性索引(升序)。 create index snamesage on student(sname,sage); (3)在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别 select 学生.学号,学生.姓名,学生.性别 from 学生 join 学生选课 on 学生.学号=学生选课.学号 join 课程on 课程.课程号=学生选课.课程号 where 课程.学分=5 and 学生选课.成绩>60 (4)统计每个同学所修课程的全部学分(不及格课程不统计)。 select 学生.学号,学生.姓名,课程.课程名,课程.学分 from 学生 join 学生选课 on 学生.学号=学生选课.学号 join 课程 on 课程.课程号=学生选课.课程号 where 学生选课.成绩>=60 (5)修改“李立”同学的数据库成绩为75分。 update 学生选课set 成绩=75 where 学号in (select 学号 from 学生where 姓名='李立') and 课程号 in (select 课程号 from 课程 where 课程名='数据库') (6)删除“数据库”课程的选课信息(条件是其先修课不及格) delete from 学生选课where 课程号=any(select 课程号from 课程where 课程名='数据库') and 学号in(select 学号from 学生选课 where 成绩<60 and 课程号in(select 先修课号from 课程where 课程名='数据库') (7)年龄大于23岁的女学生的学号和姓名; select 学号,姓名from 学生where 年龄>23 and 性别='女' (8)“李小波”所选修的全部课程名称; select 课程.课程名from 学生 join 学生选课on 学生.学号=学生选课.学号 join 课程on 课程.课程号=学生选课.课程号where 学生.姓名='李小波' (9)所有成绩都在80分以上的学生姓名及所在系; select 学号,姓名,所在系 from 学生where 学号 in ((select distinct 学生.学号 from 学生 inner join 学生选课 on 学生.学号=学生选课.学号where 学生选课.成绩>=80) except (select distinct 学生.学号from 学生inner join 学生选课 on 学生.学号=学生选课.学号where 学生选课.成绩<80)) (10)英语成绩比数学成绩好的学生; select 学生.学号,学生.姓名,成绩 as 英语 into temp1 from 学生 inner join 学生选课 on 学生.学号=学生选课.学号 inner join 课程 on 课程.课程号=学生选课.课程号 where 课程.课程名='英语' select 学生.学号,学生.姓名,成绩 as 数学 into temp2 from 学生 inner join 学生选课 on 学生.学号=学生选课.学号 inner join 课程 on 课程.课程号=学生选课.课程号 where 课程.课程名='数学' select temp1.学号,temp1.姓名,temp1.英语,temp2.数学 into temp3 from temp1 left join temp2 on temp1.学号=temp2.学号 select 学号,姓名 from temp3 where 英语>数学 (11)“操作系统”课程得最高分的学生姓名、性别、所在系; select 姓名,性别,所在系 from 学生 inner join 学生选课 on 学生.学号=学生选课.学号 inner join 课程 on 课程.课程号=学生选课.课程号 where 课程名='操作系统' and 成绩= (select max(成绩) from 学生选课 where 课程号in (select 课程号from 课程 where 课程名='操作系统')) (12)至少选修两门以上课程的学生姓名、性别; select 姓名,性别 from 学生 where 学号 in (select 学号 from 学生选课 group by 学号 having count(学号)>=2) (13)创建视图,显示每个学生的学号,姓名,选课门数,补考门数 select 学号,count(学号) as 选课门数 into temp1 from 学生选课 group by 学号 select 学号,count(学号) as 补考门数 into temp2 from 学生选课 where 成绩<80 group by 学号 select 学生.学号,学生.姓名,选课门数,补考门数 from 学生 join temp1 on 学生.学号=temp1.学号 inner join temp2 on temp1.学号=temp2.学号 (14)查找选课包括“李丽”所有选课的学生 select 课程.课程号 into temp1 from 学生inner join 学生选课 on 学生.学号=学生选课.学号 inner join 课程 on 课程.课程号=学生选课.课程号 where 学生.姓名='李立' select 学生选课.学号,学生选课.课程号,成绩 into temp2 from temp1 left join 学生选课 on temp1.课程号=学生选课.课程号 select 学号,姓名 from 学生 where 学号in (select 学号from temp2 group by 学号having count(学号)=(select count(*) from temp1)) 法1: select 课程.课程号 into temp1 from 学生inner join 学生选课 on 学生.学号=学生选课.学号 inner join 课程 on 课程.课程号=学生选课.课程号 where 学生.姓名='李四方' /*选出李四方的选课课程号,并将其放到新表temp1中*/ select 学生选课.学号,学生选课.课程号,成绩 into temp2 from temp1 left join 学生选课 on temp1.课程号=学生选课.课程号 /*将所有选了课的学生的学号,对应的课程号,成绩。通过左连接放到temp2中,只要和李四方选中的课程号一样的学生都能连上。这样就不需要考虑其他人比李四方选课选的更多的情况了*/ select 学号,姓名 from 学生 where 学号 in (select 学号from temp2 group by 学号 having count(学号)=(select count(*) from temp1)) /*(select count(*) from temp1)----代表李四方选课的门数。select 学号from temp2 group by 学号having count(学号)----代表其他学生选了和李四方相同课程的门数。只要二者相等就能说明其他同学(至少)也选了和(李四方相同的所有选的课)*/ 法2: declare @xh nchar(10),@n int select @xh=学号from 学生where 姓名='李丽' select * into temp from 学生选课where 课程号in (select 课程号from 学生选课 where 学号=@xh) /*把凡是包含了李丽所有课程的其它同学的课程选出来.然后后面只要门数等于李丽的选课门数,自然就至少全部包含了所有李丽的所有选的课程了*/ select @n= count(*) from 学生选课 where 学号=@xh /*查出李丽的选课门数*/ select 学号,count(*) as 门数 from temp group by 学号 having count(*)>=@n (15)删除修课表 drop table 学生选课 用SQL语句完成下列操作: (1)用SQL语句实现SC表的创建,要求定义相应的主键和外键约束 (2)“学生”表上以学生姓名和年龄建立一个唯一性索引(升序)。 (3)在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别 (4)统计每个同学所修课程的全部学分(不及格课程不统计)。 (5)修改“李立”同学的数据库成绩为75分。 (6)删除“数据库”课程的选课信息(条件是其先修课不及格) (7)年龄大于23岁的女学生的学号和姓名; (8)“李小波”所选修的全部课程名称; (9)所有成绩都在80分以上的学生姓名及所在系; (10)英语成绩比数学成绩好的学生; (11)“操作系统”课程得最高分的学生姓名、性别、所在系; (12)至少选修两门以上课程的学生姓名、性别; (13)创建视图,显示每个学生的学号,姓名,选课门数,补考门数 (14)查找选课包括“李丽”所有选课的学生 (15)删除修课表 4、设有学生课程数据库中包含如下关系: S(SNO,SNAME,SEX,SD,AGE) C(CNO,CNAME,TERM,CREDIT) SC(SNO,CNO,GRADE) 其中,S为学生表,它的各属性依次为学号、姓名、性别、系别和年龄;C为课程表,它的各属性依次为课程号、课程名、上课学期和学分;SC为学生选课成绩表,它的各属性依次为学号、课程号和成绩。请用关系代数或SQL语句表达式完成如下问题: 1.查询选修课程名为“数学”的学生学号和姓名 2.查询选修了“操作系统”或“数据库”课程的学生学号、姓名和年龄 3.查询至少选修了课程号为“1”和“3”的学生学号 4.查询年龄在18~20之间(含18和20)的女生的学号、姓名和成绩 5查询选修了“数据库”课程的学生的学号、姓名和成绩 6.查询选修全部课程的学生姓名和所在的系 7.查询选修课程包括“1024”学生所学的课程的学生学号 8.查询不选修“2”号课程的学生姓名和所在的系 5、设有如图所示的关系R和S R S A B C A B C a b c b a f b a f d a d c b d 请计算(1) RÇS; (2)R-S; (3)RÈS; (4)R´S ; 6、某医院病房的计算机管理系统中需要如下信息。 科室:科室名,科室地址,科室电话 病房:病房号,床位号,科室名 医生:工作证号,姓名,职称,科室名,年龄 病人:病历号,姓名,性别,诊治,主管医生,病房号 其中,一个科室有多个病房、多位医生,一个病房只属于一个科室,一个医生只属于一个科室,但是可以负责多名病人的诊治,一名病人的主管医生只能有一位。 完成.涉及该计算机管理系统的E-R图。 7、 供应商-零件-工程项目数据库由以下4个关系模式构成。 S(SNO,SNAME,STATUS,CITY) P(PNO,PNAME,COLOR,WEIGHT,CITY) J(JNO,JNAME,CITY) SPJ(SNO,PNO,JNO,QTY) 供应商S、零件P和工程项目J分别由供应商号(SNO)、零件号(PNO)和工程项目号(JNO)唯一标识。供货关系SPJ是指由某个供应商向某个工程项目供应某些数量的某种零件。 试用SQL语言完成以下操作: 1. 找出为北京的工程项目所提供的不同的零件号。 2. 将未供货的所有工程项目从J中删除。 3. 查询提供全部零件的供应商的名称。 4. 查询这样的工程项目号:供给该工程项目的零件P1的平均供应量大于供给工程项目J1的任何一种零件的最大供应量。 5. 定义一个视图,它由所有具有这种特点的工程项目(工程项目号与所在城市名称)所最成:它们由供应商S1供货且使用零件P1. 8、下表给出的关系R为第几范式?为什么?是否存在操作异常?若存在,则将其分解为高一级范式。分解完成的高一级范式中是否可以避免分解前关系中存在的操作异常? R 工程号 材料号 数量 开工日期 完工日期 价格 P1 I1 4 9805 9902 250 P1 I2 6 9805 9902 300 P1 I3 15 9805 9902 180 P2 I1 6 9811 9912 250 P2 I4 8 9811 9912 350 9、设某商业集团关于商店销售商品的数据库中有三个基本表: 商店 SHOP(S#,SNAME,AREA,MGR_NAME) 其属性是商店编号,商店名称,区域名,经理姓名。 销售 SALE(S#,G#, QUANTITY) 其属性是商店编号,商品编号,销售数量。 商品 GOODS(G#,GNAME,PRICE) 其属性是商品编号,商品名称,单价。 1)试写出下列查询的关系代数表达式: 检索销售“冰箱”的商店的编号和商店名称。 2)试写出上面1题的SELECT语句表达形式。 3)试写出下列操作的SQL语句: 从SALE表中,把“开开商店”中销售单价高于1000元的商品的销售元组全部删除。 10、试写出下列操作的SQL语句: 统计区域名为“EAST”的所有商店销售的每一种商品的总数量和总价值。 要求显示(G#,GNAME,SUM_QUANTITY,SU) 1.设有学生选取修课程数据库: S(S#, SNAME, AGE, SEX, DEPARTMENT, ADDRESS, BIRTHPLACE) SC(S#, C#, GRADE) C(C#, CNAME, TEACHER) 用SQL语句完成下列操作: 1) 李老师所教的课程号、课程名称; Select C#,CNAME From C Where TEACHER=‘李’; 2) 年龄大于23岁的女学生的学号和姓名 Select S#,SNAME From S Where AGE>23 AND SEX=‘女’; 3) “李小波”所选修的全部课程名称; Select CNAME From S,SC Where S.S#=SC.S# AND SNAME=‘李晓波’; 4) 所有成绩都在80分以上的学生姓名及所在系; Select SNAME,DEPARTMENT From S,SC Where S.S#=SC.S# AND SC.S# not in(select S# From SC Where GRADE<80); 5) 没有选修“操作系统”课的学生的姓名; Select SNAME From S Where S# not in (Select S# From SC,C where SC.C#=C.C# AND CNAME=‘操作系统’); 6) 与“李小波”同乡的男生姓名及所在系; Select SNAME,DEPARTMENT From S Where AGE=‘男’AND BIRTHPLACE=(select BIRTHPLACE From S Where SNMAE=‘李晓波’); 7) 英语成绩比数学成绩好的学生; 8) 选修同一门课程时,女生比男生成绩好的学生名单; 9) 至少选修两门以上课程的学生姓名、性别; 10) 选修了李老师所讲课程的学生人数; 11) 没有选修李老师所讲课程的学生; 12) “操作系统”课程得最高分的学生姓名、性别、所在系; 11.假设“仓库管理”关系模型有下列五个关系模式 零件part(pno,pname,color,weight) 项目project(jno,jname,date) 供应商supplier(sno,sname,saddr) 供应 p_p(jno,pno,total) 采购 p_s(pno,sno,quantity) 1) 使用SQL DDL 语句定义上述五个基本表,并说明主键和外键。 2) 试将project,p_p,part三个基本表的自然联接定义为一个试图VIEW1,将part,p_s,supplier三个基本表的自然联接定义为一个试图VIEW2。 3) 试在上述两个试图的基础上进行数据查询: i. 查找上海的供应商所供应的零件的编号和名字 ii. 查找项目J4所用零件的供应商编号和名字 解: ⑴ create table part( Pno char(8) primary key, Pname char(8) not null, Color char(8), Weight float); Create table project( Jno char(8) primary key, Jname char(12), Date date); CREATE TABLE SUPPLIER (SNO CHAR(8),SNAME CHAR(12)NOT NULL,SADDR VARCHAR(30),PRIMARY KEY(SNO)); CREATE TABLE P_P (JNO CHAR(6),PNO CHAR(6),TOTAL INTEGER,PRIMARY KEY(JNO,PNO); FOREIGN KEY(JNO) REFERENCES PROJECT(JNO), FOREIGN KEY(PNO) REFERENCES PART(PNO)); CREATE TABLE P_S (PNO CHAR(6),SNO CHAR(8),QUANTITY INTEGER,PRIMARY KEY(PNO,SNO) FOREIGN KEY(PNO) REFERENCES PART(PNO), FOREIGN KEY(SNO) REFERENCES SUPPLIER(SNO)); ⑵ CREATE VIEW VIEWl AS SELECT A.JNO,JNAME,DATE,C.PNO,PNAME,COLOR,WEIGHT,TOTAL FROM project A,P_P B,PART C WHERE A.JNO=B.JNO AND B.PNO=C.PNO; CREATE VIEW VIEW2 AS SELECT A.PNO,PNAME,COLOR,WEIGHT,C.SNO,SNAME,SADDR,QUANTITY FROM PART A,P_S B,SUPPLIER C WHERE A.PNO=B.PNO AND B.SNO=C.SNO; ⑶① SELECT PNO,PNAME FROM VIEW2 WHERE SADDR LIKE ’上海%’; ② SELECT SNO,SNAME FROM VIEWl,VIEW2 WHERE VIEWl.PNO=VIEW2.PNO AND JNO=’J4’;
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服