数据库系统概论,第五版,教程sql代码

合集下载

数据库系统概论第五版课后习题答案王珊版

数据库系统概论第五版课后习题答案王珊版

数据库系统概论第五版课后习题答案王珊版数据库系统概论是计算机科学与技术专业的一门重要课程,也是信息管理与信息系统专业的必修课程。

本课程的主要内容包括数据库系统的基本概念、数据库系统的体系结构、数据库设计与数据模型、关系数据库理论与应用、数据库编程与应用开发、数据库安全与完整性、数据仓库与数据挖掘等内容。

通过学习本课程,可以使学生掌握数据库系统的基本理论和技术,具备数据库设计、管理和应用开发的能力。

本文是针对数据库系统概论第五版课后习题答案王珊版的一篇解答文章。

本文将围绕课后习题的内容展开讨论,对每一个习题进行详细的解答和分析,希望能够帮助学生更好地掌握数据库系统概论的知识。

第一章数据库系统概述。

1.1 什么是数据库系统?数据库系统是由数据库和数据库管理系统(DBMS)组成的。

数据库是按照数据模型组织和存储的数据集合,而数据库管理系统是用来管理数据库的软件系统。

数据库系统的主要功能包括数据定义、数据操纵、数据控制和数据查询。

1.2 数据库系统的优点是什么?数据库系统具有数据共享、数据独立性、数据一致性、数据完整性、数据安全性和数据易维护等优点。

1.3 什么是数据模型?数据模型是用来描述数据、数据关系、数据语义和一致性约束的概念工具。

常用的数据模型包括层次模型、网络模型、关系模型和面向对象模型等。

1.4 数据模型的三级结构是什么?数据模型的三级结构包括外部模式、概念模式和内部模式。

外部模式是用户看到的数据视图,概念模式是数据库的全局逻辑结构,内部模式是数据库的存储结构和物理结构。

第二章关系数据库。

2.1 什么是关系数据库?关系数据库是以关系模型为基础的数据库。

在关系数据库中,数据以表的形式存储,每个表包含若干行和若干列,行表示记录,列表示字段。

2.2 什么是关系代数?关系代数是一种用来操作关系数据库的形式化语言。

它包括一组操作符,如选择、投影、连接、除法等,可以对关系进行操作。

2.3 什么是关系完整性约束?关系完整性约束是指在关系数据库中对数据进行约束的规则。

数据库系统概论第五版资料

数据库系统概论第五版资料

1. 并发控制的主要方法是封锁机制。

2. 标准SQL授权语句中允许权限传播的短语为grant。

3. 函数依赖可能造成的数据异常有数据冗余、删除异常、插入异常、和修改异常四种4. 关系数据库的完整性约束包括域完整性、实体完整性和参照完整性、用户自定义的完整性。

5.分E-R图之间的冲突主要有属性冲突、命名冲突、结构冲突三种6.数据库系统的逻辑模型按照计算机的观点对数据建模,主要包括层次模型、网状模型和关系模型、面向对象模型、对象关系模型等7. 一个关系的候选码中的属性被称为主属性、其它属性被称为非主属性8. 最经常使用的概念模型是E-R9. 在关系模型中,关系操作包括查询、插入、删除和修改等10. 嵌入式SQL语句中为了和主语言语句进行区分,在SQL语句前加前缀EXEC SQL,以分号结束。

11.数据库角色实际上是一组与数据库操作相关的各种权限。

12.DBMS的全称是数据库管理系统。

13. 数据库系统的三级模式结构是指数据库系统是由外模式、内模式和模式三级构成。

14. 传统的集合操作包括并、交、差、和笛卡尔积。

15. SQL语言具有两种使用方式,分别称为交互式SQL和嵌入式SQL。

16. 在SQL语言中,为了数据库的安全性,设置了对数据的存取进行控制的语句,对用户授权使用grant语句,收回所授的权限使用revoke语句。

17. 数据库设计的几个步骤是需求分析、概念结构设计、逻辑结构设计、物理设计、系统实施、系统运行和维护。

18.关系模型是目前最常用也是最重要的一种数据模型。

采用该模型作为数据的组织方式的数据库系统称为关系数据库系统。

19. SQL语言集数据操纵、数据定义和数据控制功能于一体,充分体现了关系数据语言的特点和优点。

20.三级模式之间的两层映像保证了数据库系统中的数据能够具有较高的逻辑独立性和物理独立性。

21.事务必须具备4个特性:原子性、一致性、隔离性和持久性。

22. 数据完整性可分为:实体完整性、参照完整性和用户自定义完整性。

12章-数据库管理系统-数据库系统概论(第五版)

12章-数据库管理系统-数据库系统概论(第五版)

进程间总的通信开销上升
操作系统的负担增大,空间、时间效率不高
DBMS必须设立并维护若干后台进程,增加了进程切换
要访问的数据不在内存时会造成性能问题
临界区问题(Critical Section)
❖ 适用情况
用户数不庞大(非OLTP应用):Oracle 7之前版本, Ingres,
Informix早期版本
12.2.1 N方案:DBMS与应用程序相融合的方案
❖ 优点
没有进程切换开销 实现比较简单
❖ 缺点
内存的需求量比较大:多DBMS副本 代码冗余使系统性能下降
❖ 适用情况
用户数少的小型DBMS
An Introduction to Database System
12.2 DBMS进程结构和多线索机制
An Introduction to Database System
12.2.2 2N方案:一个DBMS进程对应一个用户进程
❖ 解决N方案中DBMS代码段在内存中不能被共享
应用程序与DBMS副本分开 2N方案
❖ 一用户一进程(Shadow进程)
N个用户进程---N个DBMS进程(共2N个进程)
An Introduction to Database System
12.2.1 N方案:DBMS与应用程序相融合的方案 12.2.2 2N方案:一个DBMS进程对应一个用户进程 12.2.3 N+1方案:一个DBMS进程对应所有用户进程 12.2.4 N+M方案:M个DBMS进程对应N个用户进程 12.2.5 多线索(Multi_Threaded) DBMS的概念
12.2.3 N+1方案:一个DBMS进程对应所有用户进程
❖ 优点

数据库系统概论第五版PDF

数据库系统概论第五版PDF

数据库系统概论第五版PDF简介《数据库系统概论第五版PDF》是一本介绍数据库系统的入门教材,旨在帮助读者理解数据库系统的基本概念、原理和应用。

本书由柯里斯·李(Morris R. Li)和布鲁斯·斯图尔特(Bruce G. Lindsay)合著,是数据库领域的经典教材之一。

内容概述本书共分为八个章节,每章介绍了数据库系统的不同方面。

下面是各章节的简要概述。

第一章:引论该章节介绍了数据库的基本概念和发展历程。

通过对数据库系统的定义和优势的解释,给读者提供了对数据库系统的初步了解。

第二章:关系数据模型该章节介绍了关系数据模型,包括关系模型的构成要素、关系数据库设计和关系代数。

通过对关系数据模型的详细介绍,读者可以理解关系数据库的基本原理和数据组织方式。

第三章:SQL语言该章节介绍了SQL语言,包括SQL的基本语法、数据的查询和修改操作。

通过对SQL语言的学习和实践,读者可以掌握数据库操作的基本技巧。

第四章:数据库设计该章节介绍了数据库设计的基本原理和方法。

包括数据模型的设计、关系模式的规范化和数据库的物理组织方式。

通过对数据库设计的学习,读者可以理解如何设计一个高效稳定的数据库系统。

第五章:数据库编程该章节介绍了数据库编程的基本概念和技术。

包括存储过程、触发器和函数的编写,以及数据库事务的管理。

通过对数据库编程的学习,读者可以掌握如何编写高效的数据库应用程序。

第六章:关系数据库标准化及数据完整性该章节介绍了关系数据库的标准化和数据完整性保证。

包括关系数据模式的规范化、实体完整性和参照完整性的实现。

通过对数据库标准化和数据完整性的学习,读者可以设计出符合标准和完整性要求的数据库系统。

第七章:物理数据库设计和调优该章节介绍了物理数据库设计和调优的基本原理和方法。

包括数据库索引的设计、查询优化和数据存储方式的选择。

通过对物理数据库设计和调优的学习,读者可以设计出高效的数据库系统和查询方案。

《数据库系统概论》(王珊)第五版课后习题答案

《数据库系统概论》(王珊)第五版课后习题答案

第二章关系数据库1 .试述关系模型的三个组成部分。

答:关系模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。

2 .试述关系数据语言的特点和分类。

答:关系数据语言可以分为三类:关系代数语言。

关系演算语言:元组关系演算语言和域关系演算语言。

SQL:具有关系代数和关系演算双重特点的语言。

这些关系数据语言的共同特点是,语言具有完备的表达能力,是非过程化的集合操作语言,功能强,能够嵌入高级语言中使用。

3 (略)4 .5 . 述关系模型的完整性规则。

在参照完整性中,为什么外部码属性的值也可以为空?什么情况下才可以为空?答:实体完整性规则是指若属性 A 是基本关系R 的主属性,则属性 A 不能取空值。

若属性(或属性组)F 是基本关系R 的外码,它与基本关系S 的主码Ks 相对应( 基本关系R 和S 不一定是不同的关系),则对于R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值);或者等于S 中某个元组的主码值。

即属性 F 本身不是主属性,则可以取空值,否则不能取空值。

6.设有一个SPJ 数据库,包括S,P,J,SPJ 四个关系模式:1)求供应工程J1 零件的供应商号码SNO:πSno(σJno=‘J1’(SPJ))2)求供应工程J1 零件P1 的供应商号码SNO:πSno(σJno=‘J1’∧Pno=‘P1‘(SPJ))3)求供应工程J1 零件为红色的供应商号码SNO :πSno(πSno,,Pno(σJno=‘J1‘ (SPJ))∞πPno(σCOLOR= ’红‘(P)))4)求没有使用天津供应商生产的红色零件的工程号JNO :πJno(SPJ)- πJNO(σcity=‘天津’∧Color= ‘红‘(S∞ SPJ∞ P)5)求至少用了供应商S1 所供应的全部零件的工程号JNO:πJno,Pno(SPJ)÷πPno(σSno=‘S1‘(SPJ)7.试述等值连接与自然连接的区别和联系。

数据库系统概论(王珊第五版)实验4答案

数据库系统概论(王珊第五版)实验4答案

数据库系统概论(王珊第五版)实验4答案实验4答案T-SQL 语句实现如下:1.使用T-SQL 语句向course和SC表中插入如下记录:INSERT INTO course VALUES('01','数据库','05',4)3.修改数据表信息1)修改student表,将将CS系姓名为“李咏”的学生姓名修改为“李勇”;update studentset sname='李咏'where Sdept='CS'and sname='李勇'2)将学号为“*********”的学生信息重新设置为“王丹丹、女、20、MA”;update studentset sname='王丹丹',ssex='女',sage=20,sdept='MA'where sno='200515010'3)修改course表,将“数据处理”的学分改为3学分;UPDATE Course SET Ccredit= 3where cname='数据处理'4)修改CS表,将选修课程“1”的同学成绩加5分;UPDATE sc SET Grade=Grade+5where Cno='01'5)删除数据表student中无专业的学生记录;Delete from studentwhere sdept is NULL6)删除数据表course中学分低于1学分的课程信息;Delete from coursewhere ccredit<14.使用T-SQL 语句查看数据表信息1)查看数据表Student所有记录Select*from student2)查看数据表Student中字段sno、sname的所有记录Select sno,sname from student3)按照“院系、学号、姓名、性别、年龄”的顺序显示学生信息表中前10个同学记录,要求在结果集中列标题按照上述内容显示;select top 10 sdept as院系,sno as学号,sname as姓名,ssex as 性别, sage as年龄from student4)按照“院系,学号,姓名,年龄”的顺序显示院系不明的所有学生记录;select sdept as院系,sno as学号,sname as姓名,sage as年龄from studentwhere sdept IS NULL5)显示学号最后一位为1或者2或者3的学生的学号、姓名、性别年龄及院系;select sno,sname,ssex,sage,sdept from studentwhere sno like'%[123]'6)显示没有先行课的课程号及课程名;select cno,cnamefrom coursewhere cpno IS NULL7)查询所有院系不是CS、IS的男同学信息。

数据库系统概论,第五版,教程sql代码

数据库系统概论,第五版,教程sql代码

1.0create trigger sc_tafter update of grade on screferencignoldrow as oldtuplenewrow as newtuplefor each rowwhen(newtuple.grade>=1。

0*oldtuple.grade)insert into sc_u(sno,cno,oldgrade,newgrade)values(oldtuple。

sno,o,oldtuple.grade,newtuple。

grade) /* 触发器 */2.0begin transaction读取账户甲的金额belance;balance=balance—amount;if(balance<0)then{打印'金额不足,不能转账’;rollback;}else{读账户乙的余额BALANCE1;balance1=balance1+amount;写回balance1;commit;}3。

0create database student;use studentcreate table stu(Sno char(11)Primary key,Sname char(20)unique,Ssex char(2),Sage SMALLINT,Sdept char(20))create table course(Cno char(4)PRIMARY KEY,Cname char(40)NOT NULL,Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY(Cpno)references course(Cno))create table sc(Sno char(11),Cno char(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)references stu(Sno),FOREIGN KEY(Cno)references course(Cno) )select*from course;4。

数据库系统概论第五版课后习题答案

数据库系统概论第五版课后习题答案

第1章绪论1 .试述数据、数据库、数据库系统、数据库管理系统的概念。

答:( l )数据( Data ) :描述事物的符号记录称为数据。

数据的种类有数字、文字、图形、图像、声音、正文等。

数据与其语义是不可分的。

解析在现代计算机系统中数据的概念是广义的。

早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。

现代计算机能存储和处理的对象十分广泛,表示这些对象的数据也越来越复杂。

数据与其语义是不可分的。

500 这个数字可以表示一件物品的价格是 500 元,也可以表示一个学术会议参加的人数有 500 人,还可以表示一袋奶粉重 500 克。

( 2 )数据库( DataBase ,简称 DB ) :数据库是长期储存在计算机内的、有组织的、可共享的数据集合。

数据库中的数据按一定的数据模型组织、描述和储存,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。

( 3 )数据库系统( DataBas 。

Sytem ,简称 DBS ) :数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员构成。

解析数据库系统和数据库是两个概念。

数据库系统是一个人一机系统,数据库是数据库系统的一个组成部分。

但是在日常工作中人们常常把数据库系统简称为数据库。

希望读者能够从人们讲话或文章的上下文中区分“数据库系统”和“数据库”,不要引起混淆。

( 4 )数据库管理系统( DataBase Management sytem ,简称 DBMs ) :数据库管理系统是位于用户与操作系统之间的一层数据管理软件,用于科学地组织和存储数据、高效地获取和维护数据。

DBMS 的主要功能包括数据定义功能、数据操纵功能、数据库的运行管理功能、数据库的建立和维护功能。

解析 DBMS 是一个大型的复杂的软件系统,是计算机中的基础软件。

目前,专门研制 DBMS 的厂商及其研制的 DBMS 产品很多。

12章-数据库管理系统-数据库系统概论(第五版)

12章-数据库管理系统-数据库系统概论(第五版)

第12章数据库管理系统本章进一步阐述数据库管理系统的基本功能、系统结构及主要实现技术。

本章不是针对数据库管理系统的设计人员写的,而是面向数据库管理员和数据库应用系统开发人员的,目的是使他们从宏观和总体的角度掌握数据库管理系统的基本概念和基本原理,以便更好地使用和维护数据库管理系统。

12.1数据库管理系统的基本功能数据库管理系统已经发展成为继操作系统之后最复杂的系统软件。

前面已讲过,数据库管理系统主要是实现对共享数据有效的组织、存储、管理和存取。

围绕数据,数据库管理系统应具有如下基本功能。

1.数据库定义和创建创建数据库主要是用数据定义语言定义和创建数据库模式、外模式、内模式等数据库对象。

在关系数据库中就是建立数据库(或模式)、表、视图、索引等,还有创建用户、安全保密定义(如用户口令、级别、角色、存取权限)、数据库的完整性定义。

这些定义存储在数据字典(亦称为系统日录)中,是数据库管理系统运行的基本依据。

2.数据组织、存储和管理数据库管理系统要分类组织、存储和管理各种数据,包括数据字典、用户数据、存取路径等。

要确定以何种文件结构和存取方式在存储器上组织这些数据,以及如何实现数据之间的联系。

数据组织和存储的基本目标是提高存储空间利用率和方便存取,提供多种存取方法(如索引查找、hash查找、顺序查找等)以提高存取效率。

3.数据存取数据库管理系统提供用户对数据的操作功能,实现对数据库数据的检索、插入、修改和删除。

一个好的关系数据库管理系统应该提供功能强且易学易用的数据操纵语言、方便的操作方式和较高的数据存取效率。

数据操纵语言有两类:宿主型语言和自立(独立)型语言。

4.数据库事务管理和运行管理这是指数据库管理系统的运行控制和管理功能,包括多用户环境下的事务管理功能和安全性、完整性控制功能;数据库恢复、并发控制和死锁检测(或死锁防止)、安全性检查和存取控制、完整性检查和执行、运行日志的组织管理等。

这些功能保证了数据库系统的正常运行,保证了事务的ACID特性。

数据库系统概论_03d关系数据库标准语言SQL数据控制讲义.

数据库系统概论_03d关系数据库标准语言SQL数据控制讲义.

传播权限
执行例5后,U5不仅拥有了对表SC的INSERT权限, 还可以传播此权限: GRANT INSERT ON TABLE SC TO U6 WITH GRANT OPTION; 同样,U6还可以将此权限授予U7: GRANT INSERT ON TABLE SC TO U7; 但U7不能再传播此权限。 U5--> U6--> U7
作正确执行,保持数据库的一致性。

SQL语言并发控制能力: 提供事务、事务开始、事务结束、提交等概念
3. 恢复

恢复: 当发生各种类型的故障导致数据库
处于不一致状态时,将数据库恢复到一 致状态的功能。 SQL语言恢复功能: 提供事务回滚、重做等概念 (UNDO、REDO)

4. 安全性

安全性:保护数据库,防止不合法的使 用所造成的数据泄露和破坏。
GRANT SELECT ON TABLE Student TO U1;
例题(续)
例2 把对Student表和Course表的全部权限 授予用户U2和U3
GRANT ALL PRIVILIGES ON TABLE Student, Course TO U2, U3;
例4
例题(续)
例3 把对表SC的查询权限授予所有用户
系统将收回直接或间接从U5处获得的对SC
表的INSERT权限: -->U5--> U6--> U7 收回U5、U6、U7获得的对SC表的INSERT
权限的级联回收
权限:
<--U5<-- U6<-- U7
小结:SQL灵活的授权机制

DBA拥有对数据库中所有对象的所有权限,并可以根据 应用的需要将不同的权限授予不同的用户。

演示文稿数据库系统概论第五版

演示文稿数据库系统概论第五版
[<表名2>.]<列名3>
❖ 连接字段:连接谓词中的列名称
连接条件中的各连接字段类型必须是可比的,但名字不 必相同
第4页,共81页。
连接查询(续)
1.等值与非等值连接查询 2.自身连接 3.外连接 4.多表连接
第5页,共81页。
1. 等值与非等值连接查询
❖ 等值连接:连接运算符为=
[例 3.49] 查询每个学生及其选修课程的情况
Sdept CS CS CS CS CS MA IS
Cno 1 2 3 2 3
NULL NULL
Grade 92 85 88 90 80
NULL NULL
第21页,共81页。
连接查询(续)
1.等值与非等值连接查询
2.自身连接 3.外连接
4.多表连接
第22页,共81页。
4. 多表连接
❖ 多表连接:两个以上的表进行连接
连接条件的元组,找到后就将表1中的第一个元组与该 元组拼接起来,形成结果表中一个元组。当遇到表2中 第一条大于表1连接字段值的元组时,对表2的查询不再 继续
第9页,共81页。
连接操作的执行过程(续)
(2)排序合并法(续)
找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查 找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼
此查询为不相关子查询。
第32页,共81页。
带有IN谓词的子查询(续)
用自身连接完成[例 3.55]查询要求
SELECT S1.Sno, S1.Sname,S1.Sdept FROM Student S1,Student S2 WHERE S1.Sdept = S2.Sdept AND
S2.Sname = '刘晨';

《数据库系统概论》第5版原版授课-第9章

《数据库系统概论》第5版原版授课-第9章

关系查询处理和查询优化(续)
本章内容:
关系数据库管理系统的查询处理步骤 查询优化的概念 基本方法和技术
查询优化分类 :
代数优化:指关系代数表达式的优化 物理优化:指存取路径和底层操作算法的选择
An Introduction to Database System
9.1 关系数据库系统的查询处理
数据库系统概论
An Introduction to Database System
第九章 关系查询处理 和查询优化
郑州大学软件学院
An Introduction to Database System
第三篇
系统篇
讨论数据库管理系统中查询处理和事务管理的基 本概念和基础知识 第 9章 关系查询处理和查询优化 第10章 数据库恢复技术 第11章 并发控制 第12章 数据库管理系统
FROM Student
WHERE <条件表达式>
考虑<条件表达式>的几种情况:
C1:无条件; C2:Sno='201215121'; C3:Sage>20; C4:Sdept='CS' AND Sage>20;
An Introduction to Database System
选择操作的实现(续)
选择操作的实现(续)
[例9.1-C3] SELECT *
FROM Student
WHERE
算法:

Sage>20
假设Sage 上有B+树索引
使用B+树索引找到Sage=20的索引项,以此为入口点在 B+树的顺序集上得到Sage>20的所有元组指针 通过这些元组指针到student表中检索到所有年龄大于 20的学生。

数据库系统概论(王珊第五版)第十讲

数据库系统概论(王珊第五版)第十讲
On (student.sno = sc.sno)
Select student.sno,sname,cno,grade From student right join sc On (student.sno = sc.sno)
精品课件
4. 多表连接
❖ 多表连接:两个以上的表进行连接
[例3.54]查询每个学生的学号、姓名、选修的课程名及成 绩
精品课件
练习: 1、查询选修课程号为2的学生姓名; 2、查询没有选修课程的学生的基本情况; 3、查询至少有一个成绩在80分以上的学生的基本情况; 4、查询没有选修“数据库”课程的学生的基本情况。
精品课件
1、查询选修课程号为2的学生姓名;
SELECT sname FROM Student,sc WHERE Student.Sno = SC.Sno and o=‘2’
SELECT Sname FROM Student WHERE Sno IN
(SELECT Sno FROM SC WHERE Cno= '2')
步骤:先找出2号课程对应的学号,再通过学号找学生姓名。
精品课件
2、查询没有选修课程的学生的基本情况;
SELECT * FROM Student WHERE Sno not in
精品课件
1.内部连接
❖内部连接INNER JOIN 内部连接是使用比较运算符比较要连接列中的值的 连接,下面通过实例说明其使用。 例:从student和sc表中查询每个学生的各门选修课 成绩信息,要求返回的结果中包含学生的学号、姓 名、性别、选修课程序号及成绩。
Select a.sno,sname,ssex,cno,grade From student a inner join sc b On a.sno=b.sno

数据库系统概论:第4章 关系数据库标准语言——SQL语言1

数据库系统概论:第4章 关系数据库标准语言——SQL语言1
26
4)删除完整性约束
例:删除“Height”属性列上的CHECK约束。 ALTER TABLE Student DROP
CONSTRAINT Chk1;
27
5)删除属性列
例:删除Student表中新增加的“Height”属性列。 ALTER TABLE Student DROP COLUMN Height;
2
2、SQL语言应用情况
(1) Oracle、Sybase、Informix、Ingres、 DB2、SQL Server、Rdb等大型数据库管理系统 实现了SQL语言; (2) Dbase、Foxpro、Acess等PC机数据库管理 系统部分实现了SQL语言; (3)可以在HTML(Hypertext Markup Language, 超文本标记语言)中嵌入SQL语句,通过WWW访 问数据库; (4)在VC、VB、Delphi、PB也可嵌入SQL语句。
/*外键约束*/ Credit NUMBER);
21
例3:建立一个学生选课表SC,所有约束条件均为表
级完整性约束。
CREATE TABLE SC
( Sno CHAR(8),
Cno CHAR(8),
Grade NUMBER,
PRIMARY KEY(Sno,Cno),
/*主键约束*/
FOREIGN KEY(Sno) REFERENCES Student(Sno)
25
3)增加完整性约束
例:给Student表中“Height”属性列增加一 个CHECK约束,要求学生的身高要超过140厘 米才行。 ALTER TABLE Student ADD CONSTRAINT Chk1 CHECK(Height>140);

课题数据库系统概论第五版教案1

课题数据库系统概论第五版教案1

数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业) 授课时间:
数据库系统课程教案(计算机专业) 授课时间:
数据库系统课程教案(计算机专业) 授课时间:
数据库系统课程教案(计算机专业) 授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业) 授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)
授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:
数据库系统课程教案(计算机专业)授课时间:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

create trigger sc_tafter update of grade on screferencignoldrow as oldtuplenewrow as newtuplefor each rowwhen(newtuple.grade>=1.0*oldtuple.grade)insert into sc_u(sno,cno,oldgrade,newgrade)values(oldtuple.sno,o,oldtuple.grade,newtuple.grade) /* 触发器 */2.0begin transaction读取账户甲的金额belance;balance=balance-amount;if(balance<0)then{打印'金额不足,不能转账';rollback;}else{读账户乙的余额BALANCE1;balance1=balance1+amount;写回balance1;commit;}3.0create database student;use studentcreate table stu(Sno char(11)Primary key,Sname char(20)unique,Ssex char(2),Sage SMALLINT,Sdept char(20))create table course(Cno char(4)PRIMARY KEY,Cname char(40)NOT NULL,Cpno CHAR(4),Ccredit SMALLINT,FOREIGN KEY(Cpno)references course(Cno))create table sc(Sno char(11),Cno char(4),Grade SMALLINT,PRIMARY KEY(Sno,Cno),FOREIGN KEY(Sno)references stu(Sno),FOREIGN KEY(Cno)references course(Cno))select*from course;4.0/*6.0 建立下面二个关系模式 */create database work;use workcreate table worker(Wno char(10),Wname char(3),age smallint,job char(3),Wmoney SMALLINT,Wpub char(5),primary key(Wno),foreign key(Wpub)references club(Wpub), check(age<60));create table club(Wpub char(5)primary key,Cname char(3)not null,masseger char(2),phone char(10)unique);/* 8.0 */create table female(fid int primary key,fname char(3)not null,fage int,phone char(10)not null);create table male(mid int,mname char(3),mage smallint,phone char(10),primary key(mid));select COUNT(fid)from female;select COUNT(mid)from male;create assertion fmcheck(50>=(select COUNT(fid)from female)+(select COUNT(mid)from male)));5.0create database homewark;use homewarkcreate table s(sno char(5)primary key,sname char(30),status smallint,city char(20));select*from s;create table p(pno char(5)primary key,pname char(10),color char(2),weight smallint);select*from p;create table j(jno char(2)primary key,jname chAR(15),city char(10));select*from j;create table spj(sno char(2),pno char(2),jno char(2),qty smallint,primary key(sno,pno,jno));select*from spj;select distinct snofrom spjwhere jno='j1';select snofrom spjwhere pno='p1'and jno='j1';select snofrom spj,pwhere spj.pno=p.pnoand jno='j1'and color='红'; select distinct snofrom spjwhere pno='p1'and pno in(select pnofrom pwhere color='红');select jnofrom spj,s,pwhere spj.pno=p.pnoand spj.sno=s.snoand color='红'and city!='天津';select jnofrom spjwhere pno in(select pno from pwhere color='红')and sno in(select snofrom swhere city!='天津'); select jnofrom spjwhere sno='s1';select pname,qtyfrom p,spjwhere spj.pno=p.pnoand spj.jno='j2';select distinct p.pnofrom s,spj,pwhere s.sno=spj.snoand spj.pno=p.pnoand city='上海';create view pro1asselect sno,pno,qtyfrom spj,jwhere spj.jno=j.jnoand jname='三建';select distinct pno,qty from pro1;select*from pro1where pno='p1';6.0select sname,snofrom stu;select*from stuorder by Sdept,Sage desc; select COUNT(distinct sno) from sc;select COUNT(*)from stu;select cno,COUNT(sno)from scgroup by Cno;select stu.*,sc.*from stu,scwhere stu.sno=sc.sno; select snamefrom stuwhere Sno in(select Snofrom scwhere Cno='2');select sname,sagefrom stuwhere Sage<any(select Sagefrom stuwhere Sdept='cs')and Sdept<>'cs';select sno,sname,sdeptfrom stuwhere not exists(select*from scwhere Sno=stu.Sno and Cno='1');insertinto stu(Sno,Sname,Ssex,Sdept,sage)values('201215126','张程','男','cs','18'); select*from stu;insertinto sc(Sno,Cno)values('201215125','1');select*from sc;UPDATE stuset Sage=22where Sno='201215121';select*from stu;update stuset Sage=Sage+1;select*from stu;deletefrom stuwhere Sno='201215126';select*from stu;create view is_stuasselect sno,sname,sagefrom stuwhere Sdept='is';select*from is_stu;create view is_s1(sno,sname,grade) asselect stu.Sno,sname,gradefrom stu,scwhere Sdept='is'andstu.Sno=sc.Sno ando='1';select*from is_s1;7.0create table s(sno char(5)primary key,sname char(30),status smallint,city char(20));select*from s;create table p(pno char(5)primary key,pname char(10),color char(2),weight smallint);select*from p;create table j(jno char(2)primary key,jname chAR(15),city char(10));select*from j;drop table spj;create table spj(sno char(2),pno char(2),jno char(2),qty smallint,primary key(sno,pno,jno));select*from spj;8.0select*from stu;--1.0select snamefrom stu s1where exists(select*from stu s2where s2.Sdept=s1.Sdept ands2.Sname='刘晨');--2.0select*from stuwhere Sdept='cs'union select*from stuwhere Sage<=19;--3.0select*from stuwhere Sdept='cs'intersect select*from stuwhere Sage<=19;--4.0insert into stu(Sno,Sname,Ssex,Sdept,Sage) values('201215128','陈丹','男','is',18); select*from stu--5.0insert into sc(Sno,Cno)values('201215128','1');select*from sc;--6.0update stuset Sage=22where Sno='201215121';select*from stu;--7.0update stuset Sage=Sage+5;select*from stu;--8.0select*from stuwhere Sname is null or Ssex is nullor Sage is null or Sdept is null;--9.0create view df(sno,sname,grade)asselect stu.Sno,sname,gradefrom stu,scwhere Sdept='is'andstu.Sno=sc.Sno ando='1';select*from df;--10.0drop view df;create view df(sno,sname,grade)asselect stu.Sno,sname,gradefrom stu,scwhere Sdept='is'andstu.Sno=sc.Sno ando='1';select*from df;--11.0create view bt_s(sno,gave)asselect sno,AVG(grade)from scgroup by Sno;select sno,gavefrom bt_s;--12.0grant selecton table stuto u1;--13.0create table sss(sno char(9),cno char(4),grade smallint,primary key(sno,cno),foreign key(sno)references stu(sno)on delete cascadeon update cascade,foreign key(cno)references course(cno) on delete no actionon update cascade);--14.0create table stud(sno char(9),sname char(8)not null,ssex char(2),sage smallint,primary key(sno),check(ssex='女'or sname not like'ms.%') );15.0create view succeedselect Gradefrom sc;。

相关文档
最新文档