数据库的部分题,触发器

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

(1)什么是基本表?什么是视图?试述二者的区别与联系。

基本表就是在数据库中的关系表,内部有多个元组,有数据;视图就是给我们看的表,它可以是多个基本表通过一些操作呈现给我们的。它的当中没有数据,它的改变不能引起关系的改变,但是它也是一个表。不实际存储数据。

(2)简述SQL标准数据库语言的特点。

第一,语言简单易学易用;第二,两种使用方法,统一的语法结构(联机交互使用方式和嵌入某种高级程序);第三,高度过程化(我们只需要指出要干什么,而不用说明如何干);第四,一体化,SQL语言可以实现数据库生命期中的全部活动。

(4)简述数据库视图操作的优点。

1.视图对于数据库的重构造提供了一定程度的逻辑独立性。

2.简化了用户观点。(视图由多个表连接形成,但是用户不会看见连接过程,只是一个简单的表格。)

3.使用户不同的的方式看待同一个数据。(不同用户的不同要求使得同一个基本表的不同的属性得到显示)

4.对机密数据提供了自动的安全保护功能。(使得用户不能更改基本表。)

(6)建立表1到3的三个数据表,科研课题表KYKT,科研情况表KYQK和科研人员表KYRY,然后完成以下个题。

按要求写出SQL查询语句

查询课题经费大于100万元的课题编号及名称。

XXselect KYID,KTNAME

from KYKT

where KYKT.KTJK > 100;

查询同时参加编号为101和105课题的科研人员编号。

select A1.RYID

from KYQK as A1,KYQK as A2

where A1.RYID=A2.RYID and

A1.KTID='101' and A2.KTID='105';

查询科研情况表中的所有科研人员的编号。

select distinct RYID

from KYQK ;

检索69号科研人员的信息。

select*

from KYQK,KYRY

where KYQK.RYID= KYRY.RYID and

KYQK.RYID = '69';

检索105号课题的平均工作量。

select A VG(GZL)

from KYQK

where KTID='105';

检索工作量在200~400日的课题编号、人员编号及工作量,并按照工作量降序排序。在科研人员中追加一个科研人员(53,DAIHONG,DOCTOR,MAIL,TIANJIN)。

select KTID,RYID,GZL

from KYQK

where GZL>=200 and GZL<=400

order by GZL desc;

删除52号科研人员的所有科研课题。

delete from [KYQK]

where KYQK.RYID='52';

修改203号课题的课题经费为120万元。

update KYKT set KTJK= '120'

where KYID='203';

把67号科研人员的工作量减少10%。

update KYQK set GZL = GZL*0.9

where RYID=67;

设教学数据库中有三个关系:

学生关系S(SNO,SNAME,AGE,SEX)

学习关系SC(SNO,CNO,GRADE)

课程关系C(CNO,CNAME,TEACHER)

检索学习课程号为C2的学生学号和成绩。

ПSNO,GRADE(δ O=C2)

检索选修课程名为MATHS的学生学号与姓名。

ПSNO,SNAME δ[ρR(S.SNO=SC.SNO).CNO=O].CNO=MATHS

检索选修课程名为C2或C4的学生学号。

ПSNOδO=C2ПSNOδO=C4

检索至少选修课程号是C2和C4的学生学号。

ПSNOρR(O=C2).SNO=ρR(O=C4).SNO

检索不学C2课的学生姓名和年龄。

ПSNAME,AGE(δρ(S.SNO=SC.SNO).CNO<>C2))

检索学习全部课程的学生姓名。

ПSNAMEρR(S.SNO=SC.SNO)÷C

检索所学课程包含S3所学课程的学生学号。

ПSNOρR(δ(SC.SNO=S.SNO)).CNO=S3

关于数据库的触发器和存储过程的实例。

某新闻系统如下,当作者发布一条新闻是可以给自己积分增加十分,新闻浏览一次增加一分拍砖一次减少五分,点赞一次增加三分。

第一步建立三个表,news,zzxx,zzjf 建立如下

第一步建立三个表,news,zzxx,zzjf 建立如下

Create table news( liushuihao int primary key, --流水号

Lx varchar(10), --类型

fbsj datetime, --发布时间

biaoti varchar(40), --新闻标题

neirong varchar(4000), --新闻内容

zz char(30), --作者

Liulan int , --浏览量

Zgh char(10)) --职工号

Create table zzjf(zgh char(10) primary key, --职工号

Jf int, --积分

Dz int, --点赞

Pz int, --拍砖

Fbcs int, --发布次数

Liulan int, --浏览量

)

Create table zzxx(zgh int primay key, --职工号

Passwrod varchar(20), --密码

Zz char(30), --作者

Jf int , --积分

Zcsj datetime ) --注册时间

第一个触发器

create trigger trigger_zzjf on zzjf --该触发器更新zzxx中的jf属性

after update

相关文档
最新文档