数据库习题 程序设计.doc_第1页
数据库习题 程序设计.doc_第2页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1分(2)中国古代算题:鸡翁1值钱5,鸡婆1值钱3,鸡雏3值钱1。今百钱欲买百鸡,问鸡翁、鸡婆、鸡雏各买几何?请将每组结果都写入表文件:mj.dbf(鸡翁 N(2),鸡婆 N(2), 鸡雏 N(3))中,最后用SQL查询观看结果。CLEAR SET safety OFF _Screen.FontSize=20CREATE CURSOR mj(鸡翁 n(2),鸡婆 n(2),鸡雏 n(3)FOR i=0 TO 20 &买公鸡的可能性 FOR j=0 TO 33 &买母鸡的可能性 k= 100-i-j &买小鸡的可能性 m=5*i+3*j+k/3 &买鸡要画的钱数 IF m=100 &钱数为100,即为一种可能 INSERT INTO mj VALUES ( i,j,k) ENDIF ENDFORENDFORSELECT * FROM mjRETURN运行结果: (3)假设有下面两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号),其中职工号为主码; 部门(部门号,名称,经理名,电话),其中部门号为主码用SQL语言定义这两个关系模式要求在模式中完成以下完整性约束条件的定义: 1)定义每个模式的主码。 2)定义参照完整性。3)定义职工年龄不得超过60岁。CREATE TABLE职工(职工号 CHAR(5)PRIMARY KEY, 姓名CHAR(8)NOT NULL, 年龄SMALLINT 职务CHAR(10), 工资DECIMAL(7,2), 部门号CHAR(5)。 CONSTRAINT CI CHECK(年龄 60) CONSTRAIN C2 FOREIGN KEY(部门号) REFEENCES部门(部门号); CREAT TABLE部门(部门号CHAR(5)PRIMARY KEY 名称CHAR(l) 经理名 CHAR(8) 电话 CHAR(8) CONSTRAINT C3 FOREIGN KEY(经理名) REFERECES职工(姓名);四、程序设计题(3小题,共3分)1分(1)为表单:dl.scx编写一个准进入系统的“确定”按钮的Click事件的代码,“确定”按钮的名字为:Comman1。程序代码名称:Command.Click假设:1)在表单的Load事件中,已编写了如下代码: Public c,kl C=0 &输入进入系统的密码次数计数器 KL=”VFPQWKS” &系统进入密码2)表单中含有一个用来输入密码的文本框:text1,它的PassWordChar属性已被设置为“*”,它的Value初值为:“”。3)表单中含有一个用来显示用户输入的密码是否正确的标签框:label1。它的FontSize=24,ForeColor=RGB(255,0,0),宽度、高度属性足够显示要输出的内容,Caption=“”。4)表单中含有一个命令按钮,它的名字Name为Command1,它的标题Caption为“确定”。5)其它各种需要的控件齐全。要求,1)运行本表单时,可在文本框Text1中最多可输入三次密码,三次之内(含第三次)如输入正确,则在label1中显示“欢迎您使用学生学籍管理系统!”,显示2秒钟之后转去执行另一个表单程序:xsglxt.scx;如输入不正确,则显示“您输入的口令不对,请重新输入!”,2秒钟后显示自动消失,转到Text1种重新输入密码。2)如果连输三次密码都错误,则应在Label1 中显示“您是一个非法用户”,换行后继续显示“不能进入本学生学籍管理系统!”,2秒钟后即返回VFP窗口。3)每次输入密码前应先将Text1以前的内容清空,并为之设置焦点。*Command1.clickc=c+1 if thisform.text1.value=kl thisform.label1.caption=欢迎您使用学生学籍管理系统!Inkey(2) DO FORM xsxjglxtelseif c3 thisform.label1.caption=您输入的口令不对,请重新输入! inkey(2) thisform.label1.caption= thisform.text1.value= thisform.text1.setfocus else thisform.label1.caption=您是一个非法用户+CHR(13);+不能进入本学生学籍管理系统! inkey(2) thisform.release endif endif 1分(3)设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为: 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课), 选课(学号,课程号,成绩)。 用 Transact-SQL完成下列操作。l)建立学生选课库。CREATE DATABASE学生选课库ON PRIMARY(NANE=学生选课库,FILENAMEC:msSQLdata学生选课mdf,SIZE=4MB,MAXSIZE6MB,FILEROWHT=2MB)GO2)建立学生、课程和选课表。CREAT TABLE学生(学号 CHAR10)PRIMARY KEY CLUSTERED,姓名CHAR(8),性别 CHAR(2),年龄SMALLINT所在系VARCHAR(50)GOCREAT TABLE课程(课程号CHAR(10)PRIMARY KEY CLUSTERED,课程名VARCHAR(50),先行课VARCHAR(50)GOCREATE TABLE选课(学号 CHAR(10),课程号VARCHAR(50),成绩SMALLINT,CONSTRAINT C1 PRIMARY KEY(学号,课程号),CONSTRAINT C2 FOREIGN KEY(学号)REFRENCES学生(学号),CONSTRAINT FOREIGN KEY(课程号)REFERENCES课程(课程号)GO3)建立各表以主码为索引项的索引。CREATE INDEX student_ind ON学生(学号)GOREATEI巨class_ind ON课程(课程号)GOCREATE INDEX select_ind ON选课(学号,课程号)GO4)建立学生性别只能为“男”或“女”的规则,性别为“男”的缺省,并将它们绑定在学生表上。CREAT RULE value_rule AS VALUE IN(男,女)GOCREAT DEFAULE性别缺省AS男GOEXEC sp_bindrule value_rule,学生性别GOEXEC Sp_binddefault 性别缺省,学生性别GO5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。CREATE TRIGGER sc_insert ON选课FOR INSERTAS IF(SELECT COLJNT(*)FROM 学生,inserted,课程WHERE学生学号=inserted学号AND课程课程号=inserted课程号)=0ROLLBACK TRANSACTIONGOCREATE TRIGGER sc_updat6 ON选课FOR UPDATEAS IF(SELECT COUNT(*)FROM 学生,updated,课程WHERE学生学号=updated学号 AND课程课程号=updated课程号)=0ROLLBACK TRANSACTIONGO6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。CREATE TRIGGER delete_all ON 学生FOR DELETEAS DELETEFROM选课WHERE选课学号=deleted学号GO7)查询各系及学生数,最后来出共有多少系和多少学生。SELECT所在系,COUNT(学号)FROM学生GROUP BY学生所在系COMPUTE COUNT(DISTINCT(所在系)COMPUTE COUNT学号)BY所在系GO8)将学生表和选课表进行内连接、左外连接和右外连接。SELECT*FROM学生INNER JOIN课程GOSELECT*FROM学生LEFT OUTER JOIN课程GOSELECT*FROM学生RIGHT OUTER JOIN课程GO9)列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为好;当平均成绩在7085分之间,学习情况为较好;当平均成绩在6070分之间,学习成绩为一般;平均成绩在60分以下的为学习情况较差。SELECT选课学号,学生姓名,学习情况=CASEWHEN AVG(成绩)85 THEN好WHEN AVG(成绩)=75 AND AVG(成绩)90名称=数据库原理(学生学习课程)3.检索不学课程号为“C135”课程的学生信息,包括学号,姓名和专业;学号,姓名,专业(学生)-学号,姓名,专业(课程号=C135(学生学习)4.检索没有任何一门课程成绩不及格的所有学生的信息,包括学号、姓名和专业;学号,姓名,专业(学生)-学号,姓名,专业(分数n4)m、n为主程序中首次使用的私有内存变量。*comb.prgCLEAR STORE 0 TO m,n5,10 say 请输入m的值: get m picture “99”6,10 say 请输入n的值: get n picture “99”READIF mn then t=m m=n n=tENDIF*开始求组合IF m=n then C= 1else c=jch(m)/jch(n)/jch(m-n)ENDIF 8,5 say STR(m,2)+对+STR(n,2) +取组合的结果是:+ STR(c,4)return *主程序结束,过程jch定义如下FUNCTION jch(x) p=1 FOR i=1 TO x p=p*i ENDFOR RETURN pendfunc 1分(3)今有两个关系模式: 职工(职工号,姓名,年龄,职务,工资,部门号); 部门(部门号,名称,经理名,地址,电话)。 请田SQL 的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。 1)用户王明对两个表有SELECT权力。GRANT SELECT ON职工,部门 TO王明 WITH GRANT OPTION;2)用户李勇对两个表有INSERT和DELETE权力。GRANT INSERT, DELETE ON职工, 部门 TO李勇 WITH GRANT OPTION;3)用户刘星对职工表有SELECT权利,对工资字段具有更新权力。GRANT SELECT,UPDATE(工资)ON职工 TO刘星 WITH GRANT OPTION;4)用户张新具有修改这两个表的结构的权力。GRANT ALTE TABLE TO张新 WITH GRANT OPTION5)用户周平具有对两个表的所有权力(读

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论