上海大学数据库上机作业数据库第二次上机第九单元程序
上海大学数据库选修上机练习5

《数据库系统与应用》上机习题*************************************************************************************************第五部分、SQL高级应用要求掌握:熟练掌握T-SQL语言,了解异常处理的相关语句,学会用游标方式对数据库进行操作。
一、做书上第十章的例题二、写出书上198页练习题10中第7、8、9、11题的结果,并上机验证。
完成第12、13、14题7、数据库中没有stud表8、9、重复插入ID的值11、12、编写一个程序,采用游标的方式输出所有课程的平均分use schoolgoset nocount ondeclare @s_cj int,@s_name char(8)declare c_cursor cursor forselect score、课程号,AVG(score、分数)from scoregroup by score、课程号order by score、课程号open c_cursorfetch next from c_cursor into @s_cj,@s_namewhile@@FETCH_STATUS=0beginprint CAST(@s_cj as char(8))+@s_namefetch next from c_cursor into @s_cj,@s_nameendclose c_cursordeallocate c_cursorgo13、编写一个程序,使用游标的方式输出所有学号,课程号,成绩等级use schooldeclare @s_xh int,@c_name char(8),@s_cj float,@dj char(1) declare c_cursor cursor forselect student、学号,score、课程号,score、分数from score,studentwhere score、学号=student、学号group by student、学号,score、课程号,score、分数order by student、学号beginset @dj=CASEwhen @s_cj>=90 then'A'when @s_cj>=80 then'B'when @s_cj>=70 then'C'when @s_cj>=60 then'D'else'E'endopen cfetch next from c_cursor into @s_xh,@c_name,@s_cjprint'学号课程号等级'print'---------------------------'while@@FETCH_STATUS=0beginprint @s_xh+' '+@c_name+' '+@s_cjfetch next from c_cursor into @s_xh,@c_name,@s_cjendclose c_cursordeallocate c_cursor14、编写一个程序,输出各班各课程的平均分use schoolgoset nocount ondeclare @s_cj int,@s_name char(8),@s_bj char(8)declare c_cursor cursor forselect student、班级,score、课程号,AVG(score、分数)from score,studentgroup by score、课程号,student、班级order by score、课程号,student、班级open c_cursorfetch next from c_cursor into @s_cj,@s_name,@s_bjprint'学号班级成绩'print'-------------------'while@@FETCH_STATUS=0beginprint CAST(@s_cj as char(8))+@s_name+@s_bjfetch next from c_cursor into @s_cj,@s_name,@s_bjendclose c_cursordeallocate c_cursorgo三、完成书上394页上机实验题3(1)对各出版社的图书比例情况进行分析,即图书比例高于50%为“很高”,图书比例高于30%为“'较高”,图书比例高于10%为“一般”。
计算机三级数据库上机题库

计算机三级数据库上机题库1.调用函数rwdata(),从IN.dat文件中读取10组数据(m和k值),并嵌套调用primenum函数分别得出array[]数组。
请编写函数primenum(int m,int k,int array[]),该函数的功能是:将紧靠m的k个素数存入数组array 并在屏幕上显示。
最后把结果输出到文件OUT.dat中。
例如,若输入3 9,则应输出5 7 11 13 17 19 23 29 31。
注意:部分程序已经给出。
请勿改动主函数main()和输出数据函数rwdata()的内容。
#include <conio.h>#include <stdio.h>void rwdata();void primenum(int m, int k, int array[]){}main(){ int m, n, array[1000];printf("\nPlease enter two integers:");scanf("%d%d", &m, &n);primenum(m, n, array);for (m=0; m<n; m++)printf("%d ", array[m]);printf("\n");rwdata();}void rwdata(){ int m, n, array[1000], i;FILE *readfile, *writefile;readfile = fopen("in.dat", "r");writefile = fopen("out.dat", "w");for (i=0; i<10; i++){ fscanf(readfile, "%d %d", &m, &n);primenum(m, n, array);for (m=0; m<n; m++)fprintf(writefile, "%d ", array[m]);fprintf(writefile, "\n");}fclose(readfile);fclose(writefile);}【知识点播】素数的定义:如果一个数的正因子只有1和这个数本身,那么这个数就是素数。
2021年大型数据库技术与应用上机资料

《大型数据库应用技术》上机2(1)S QL*Plus使用(如何启动、登录到DB、创立一种表);写出实验过程。
“cmd”→(启动)“sqlplus/nolog”→(登录到DB)“connect sys/manager123 as sysdba”)→(创立一种表)SQL> create table a2 (a_name varchar2(30),3 a_phone number(11),4 a_birthday date);(2)模糊查询(%、_)应用;写出实验过程(选取SH模式下sales 表)。
一方面进入SH模式下:(1)sys以实验室身份登录;(2)执行:SQL>alter user sh identified by sh account unlock;(3)Connect sh/sh;转换到sh模式下或用sql develop连接到sh模式下。
(查询)SQL> select AMOUNT_SOLD2 from sales3 where AMOUNT_SOLD like '1001%';(3)学生选课业务连接查询应用;写出实验过程(创立2个表、连接查询语句应用)。
创立两个表:插入三条记录:内连接:(4)运用创立序列及其应用;写出实验过程(创立一种表及序列,往表中插入数据,其中id列使用序列)。
运用第(3)题表student,再创立一种序列seq:向表中插入记录:查询成果显示:(5)g roup by及having子句应用;写出实验过程(针对SH模式中有关表)。
查看Eelctronics类中每个子类平均销售额:查看Eelctronics类中平均销售额不不大于300子产品组:。
上海大学数据库上机作业上机练习5作业

上大学数据库上机作业《数据库系统与应用》上机习题*************************************************************************************************第五部分、SQL高级应用一、做书上第十章的例题二、利用上次上机的学生_课程数据库1. 求选修了高等数学的学生学号和姓名。
USE学生课程SELECT学生.学号,姓名,选课.课程号FROM学生,选课,课程WHERE学生.学号=选课.学号AND课程.课程号=选课.课程号AND课程名='高等数学'2.求C1课程的成绩高于张三的学生学号和成绩。
USE学生课程SELECT x.学号,x.成绩FROM选课x,选课yWHERE x.课程号='C1'AND x.成绩>y.成绩AND y.学号='S4'AND y.课程号='C1'ORDER BY x.学号DESC第二种:USE学生课程SELECT学号,成绩FROM选课WHERE课程号='C1'AND成绩>(SELECT成绩FROM选课,学生WHERE课程号='C1'AND姓名='张三'AND选课.学号=学生.学号)3.求其他系中比自动化学院某一学生年龄小的学生。
USE学生课程SELECT学号,姓名,年龄,单位FROM学生WHERE年龄<(SELECT MAX(年龄)FROM学生WHERE单位='自动化学院')AND单位!='自动化学院'ORDER BY学号DESC4.求其他系中比自动化学院学生年龄都小的学生。
USE学生课程SELECT学号,姓名,年龄,单位FROM学生WHERE年龄<(SELECT MIN(年龄)FROM学生WHERE单位='自动化学院')AND单位!='自动化学院'ORDER BY学号DESC5.求选修了C2课程的学生的姓名。
数据库操作和程序填空题

一、上机操作题(40分):请下载“学生信息.bak”文件。
在企业管理器中建立一个数据库“学生信息”,并用刚才的文件恢复数据库“学生信息”。
在D盘建立一个以自己学号+姓名的文件夹。
还原时特别注意:(1)若是先创建数据库再还原的,一定要选中图中所示的“在现有数据库上强制还原”;(2)注意修改图中红线框中的路径,例如图中所示的“F:\数据库原理及应用\”目录即为下载后“学生信息.bak”文件所在目录,这应根据你将其放在什么路径而定本。
《数据库原理及应用》上机操作1、从网上下载指定的数据库备份文件,还原到考生所用的系统中,数据库名为“学生信息”。
2、在数据库“学生信息”中,新建一名为“个人信息”表,表结构如下:个人信息(编码char(10) NOT NULL姓名char(8) NOT NULL性别char(2) NOT NULL生日datetime身份证号char(18)家庭住址varchar(50))3、将“个人信息”表“编码”列设置为主键。
4、为“个人信息”表“身份证号”列建立唯一索引,索引名为“IX_个人信息_身份证号”。
5、将“个人信息”表“性别”列的默认值设为“男”,并增加约束,该列只能输入“男”或“女”,约束名为“CK_个人信息_性别”。
6、创建一名为“学生总评成绩”的视图,显示学号、姓名、课程名称、总评成绩。
(此题已经修改了,现在只需学生,成绩,课程三个表了)以上5道题可参考上机实验或教材或课件,完全可通过SQL企业管理器图形界面完成操作。
7、将课程表中至今没有学生选学的课程记录行删除。
delete from 课程where 课程代码not in (select 课程代码from 成绩)8、将“学生”表所有名字只有两个字的学生信息复制到表“两字学生”中,再将表“两字学生”的姓名中间加入一全角的空格,例如姓名“张三”则更改为“张三”。
select * into 两字学生from 学生where len(姓名)=2update 两字学生set 姓名=substring(姓名,1,1)+'' +substring(姓名,2,1)9、将网上下载的Excel文件“电子注册信息.xls”与学生信息数据库中的“学生”表信息进行对比,以学号为基准,找出姓名不一致的学生,并将这些信息存到表“学生注册信息对比”中,该表包括:学号、学生表姓名、电子注册姓名。
计算机二级VF上机题库及答案

计算机二级VF上机题库及答案1. 建立菜单QUERYMENU。
该菜单只有"查询"和"退出"两个主菜单项(条形菜单), 其中单击菜单项"退出"时,返回到VFP系统菜单(相应命令写在命令框中,不要写在过程中)。
2. 将COURSE表的"开课系部"字段名改为"开课单位",其余不变。
3. 从数据库SCOREMANAGER中移去表TEMP2.DBF(不是删除)。
4. 将SCORE1表中记录按学号从低到高排序,在学号相同的情况下再按成绩从高到低排序,排序结果存入表NEWORDER。
此题主要考核点:菜单的建立、字段改名、数据库表的逻辑删除、表的排序及查询去向等知识点此题解题思路:第1题:此题的主要考核点是菜单的建立。
新建菜单可按以下步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。
在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。
也可用CREATE MENU命令直接调出菜单设计器。
在菜单名称中填入"查询"、"退出","退出"结果为命令"SET SYSMENU TO DEFAULT"。
第2题:此题的主要考核点是字段的改名。
翻开COURSE表表设计器,将光标移动到"开课系部"字段格中,将其改为"开课单位"。
第3题:此题的主要考核点是数据库表的逻辑删除。
翻开考生文件夹下的" SCOREMANAGER "数据库,在" SCOREMANAGER "数据库设计器中,选中"TEMP2"表,点击主菜单"数据库"下的"移去",在弹出的对话框中点击"移去"按钮,在随后弹出的对话框中点击"是"按钮,至此便完成了"从数据库"SCOREMANAGER"中移去表TEMP2(不是删除)"的操作。
上海大学大数据库2原理研讨+作业地个人解答

第1周(第五章:函数依赖、推理规则、闭包)二、研讨课:1. 假设员工关系EMP(员工号,,部门,部门,部门负责人,家庭住址,家庭成员,成员关系)如下表所示。
如果一个部门可以有多名员工,一个员工可以有多个家庭成员,那么关系EMP属于数据冗余问题;为了解决这一问题,应该将员工关系EMP分解为(员工号,,部门,家庭地址,家庭成员,成员关系)(部门,部门负责人,部门) ,画出ER图(上学期学过了,很简单,懒得画),主外键(主键:员工号,外键:部门)(主2. 判断F={A->BC,B->A,AD->E}和G={A->BC,B->A,BD->E}是等价的因为B->A,所以BD->AD,因为AD->E,所以BD->E,所以。
3. 设关系模式R具有n个属性,在模式R上可能成立的函数依赖有(1)个?其中平凡的FD有(2)个?非平凡的FD有(3)个?以上3点都需说明为什么三、作业:1. 设函数依赖集 F={AB->E,AC->G,AD->BG,B->C,C->D},试证AC->G是冗余的。
AD->BG,C->D,所以AC->BG,所以AC->G,所以冗余2.课本Page124:习题5.3(1)X->ø永远满足。
(2)ø->Y,则属性Y对于各元组的值相同。
(3)ø->ø为平凡的函数依赖,永远满足。
3. 课本Page124:习题5.8证明:(反证法)假设存在A→B那么 A→AB,关系模式R的候选码即为A,不是全码∴假设不存在,R不满足A→B同理:R不满足 B→A第2周(第五章:、关键码、最小函数依赖集)二、研讨课:2.设有函数依赖集:F={AB->C,C->A,BC->D,ACD->B,D->EG,BE->C,CG->BD,CE->AG},计算其等价的最小依赖集。
2023年月计算机等级考试二级上机题汇编

9月全国计算机等级考试二级VF上机题汇编第1题、一、基本操作(四小题, 共30分)1.请在考生文献夹下建立一种数据库KS1。
2.将考生文献夹下旳自由表xsda.dbf和QKDY4.DBF加入到新建旳数据库KS1中。
3.为表xsda建立主索引, 索引名为primarykey, 索引体现式为考生编号4.为表QKDY4建立候选索引, 索引名为candi_key, 索引体现式为邮发代号为表QKDY4建立一般索引, 索引名为regularkey, 索引体现式为订阅期数第2题、一、基本操作(4小题, 共30分)1.请在考生文献夹下建立一种项目KS3。
2.将考生文献夹下旳数据库cust_m加入到项目KS3中。
3.为表cust建立主索引, 索引名、索引体现式均为客户编号。
为表order1建立一般索引, 索引名、索引体现式均为客户编号。
4.表cust和表order1必要旳索引已建立, 为两表建立永久性旳联络。
第3题、一、基本操作(4小题, 共30分)1.请在考生文献夹下建立一种数据库KS4。
2.将考生文献夹下旳自由表STUD.COUR、SCOR加入到数据库KS4中。
3.为STUD表建立主索引, 索引名和索引体现式均为学号为COUR表建立主索引, 索引名和索引体现式均为课程编号为SCOR表建立两个一般索引, 其中一种索引名和索引体现式均为学号;另一种索引名和索引体现式均为课程编号4.在以上建立旳各个索引旳基础上为三个表建立联络。
第4题、一、基本操作题(4小题, 共30分)1.请在考生文献夹下建立一种项目WY。
2.将考生文献夹下旳数据库KS4加入到新建旳项目WY中去。
3.运用视图设计器在数据库中建立视图NEW_VIEW, 视图包括GJHY表旳所有字段(次序同GJHY中旳字段)和所有记录。
4.从表HJQK中查询“奖级”为一等旳学生旳所有信息(HJQK表旳所有字段), 并按分数旳降序存入存入新表NEW1中。
第5题、一、基本操作题(4小题, 共30分)1、打开数据库PROD_M及数据库设计器, 其中旳两个表旳必要旳索引已经建立, 为这两个表建立永久性联络2.设置CATEGORY表中“种类名称”字段旳默认值为: “饮料”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上大学数据库上机作业9.1建立数据库CREATEDATABASE TEST9.2创建test1数据库CREATEDATABASE TEST1ON (NAME=测试数据,FILENAME='F:\SQL作业练习\测试数据.MDF',SIZE=10MB,MAXSIZE=50MB,FILEGROWTH=5MB)LOG ON (NAME=测试数据日志,FILENAME='F:\SQL作业练习\测试数据日志.LDF'SIZE=10MB,MAXSIZE=20MB,FILEGROWTH=5MB)9.3使用和删除数据库DROP DATABASE TEST19.4表的创建USE TESTCREATETABLE clients(cid INT,cname CHAR(8),address CHAR(50))9.5列属性参数USE TESTCREATETABLE book(bid INT notnull primarykey,bname char(8)notnull,authorid char(10))9.6与其他表建立联系USE TESTCREATETABLE authors(authorid int NOTNULL PRIMARYKEY,authorname char(20),addresschar(30))CREATETABLE book(bid INT notnull primarykey,bname char(8)notnull,authorid intFOREIGNKEYREFERENCES authors(authorid) )9.7 由其他表来创建新表USE schoolSELECT sno,sname,sclass INTO student1FROM student9.8修改表结构USE schoolALTER TABLE student1 ADD snation char(10)9.9删除关联和表USE schoolDROP TABLE student19.10 INSERT语句USE schoolINSERT INTO student VALUES ('200','曾雷','女','1978-02-03','05001') (备注:插入条件要用单引号)9.11 UPDATE语句USE schoolUPDATE studentSET ssex='男'WHERE SNO='200'9.12 DELETE删除语句USE schoolDELETE studentWHERE sno='200'9.13 投影查询USE schoolSELECT sname,ssex,sclass from student9.14如果要去掉重复的显示行,可以在列名前加上DISTINCTUSE schoolSELECT DISTINCT depart FROM teacher9.15查询student表的所有记录USE schoolSELECT sno AS '学号',sname AS '姓名',ssex AS '性别',sbirthday AS '生日',sclass '班号' FROM student9.16选择查询(查询score表中成绩在60-80之间的所有记录)USE schoolSELECT *FROM scoreWHERE degree BETWEEN 60 AND 809.17排序查询(以class降序显示student表的所有记录)USE schoolSELECT *FROM studentORDER BY sclass DESC9.18给出功能以cno升序,degree为降序显示score表的所有记录USE schoolSELECT *FROM scoreORDER BY cno,degree DESC9.19查询95031班的学生人数USE schoolSELECT COUNT(*)AS '95031班人数'FROM student WHERE sclass='95031'9.20查询“选修至少一门课程的人数”USE schoolSELECT COUNT(DISTINCT sno)AS '选修至少一门课程的人数' FROM score9.21查询score表中的各门课程的最高分USE schoolSELECT cno AS '课程号',MAX (degree)AS '最高分'FROM scoreGROUP BY cno9.22查询score表中至少5名学生选修的并以3开头的课程号的平均分数USE schoolSELECT cno,AVG(degree)AS'平均分'FROM scoreWHERE cno LIKE'3%'GROUPBY cnoHAVING COUNT(*)>59.23查询最低分大于70、最高分小于90的sno列USE schoolSELECT sno FROM scoreGROUP BY snoHAVING MIN(degree)>70 and MAX(degree)<909.24等值连接,表之间通过“等于”关系连接起来查询所有学生的sname,cno和degree列USE schoolSELECT student .sname,o,score.degreeFROM student,scoreWHERE student.sno=score.sno9.25查询95033班所选课程的平均分USE schoolSELECT y .cno,avg(y.degree)AS '平均分'FROM student x,score yWHERE x.sno=y.sno and x.sclass='95033' GROUP BY o9.26在school表中建立一个grade表USE schoolCREATE TABLE grade(low int ,upp int, rank char(1)) INSERT INTO grade VALUES(90,100,'A')INSERT INTO grade VALUES(80,89,'B')INSERT INTO grade VALUES(70,79,'C')INSERT INTO grade VALUES(60,69,'D')INSERT INTO grade VALUES(0,59,'E')9.27查询所有学生的sno,cno和rank列USE schoolSELECT sno,cno,rank FROM score,grade WHERE degree BETWEEN low AND upp ORDER BY rank9.28子查询查询和学号为105的学生同年出生的所有学生的sno,sname,和sbrithday列USE schoolSELECT sno,sname,sbirthday FROM studentWHERE year(sbirthday)=(SELECT year(sbirthday)FROM studentWHERE sno='105')9.29查询张旭老师任课的学生的成绩USE schoolSELECT cno,sno,degree FROM scoreWHERE cno=(SELECT o FROM course x,teacher y WHERE x.tno=y.tno and y.tname='张旭')ORDER BY degree DESC9.30查询选修某课程的学生人数多于5人的教师名称USE schoolSELECT tname FROM teacherWHERE tno IN(SELECT x.tno FROM course x,score y WHERE o=oGROUP BY x.tnoHAVING COUNT (x.tno)>5)9.31查询所有女学生和女教师的tname,tsex,和sbirthday USE schoolSELECT tname AS '姓名',tsex AS '性别',tbirthday AS '出生日期' FROM teacher WHERE tsex='女'UNIONSELECT sname,ssex,sbirthdayFROM student WHERE ssex='女'9.32查询成绩比该课程平均分地的学生成绩表USE schoolSELECT sno,cno,degree FROM score aWHERE degree <( SELECT AVG (degree)FROM score b WHERE o=o)9.33查询所有教师的tname和departUSE schoolSELECT tname,departFROM teacher a WHERE EXISTS (SELECT *FROM course b WHERE a.tno=b.tno)9.34查询所有未讲课的老师的tname和depart USE schoolSELECT tname,departFROM teacher a WHERE NOT EXISTS (SELECT *FROM course b WHERE a.tno=b.tno)9.35查询所有未参加考试的学生成绩记录USE schoolSELECT* FROM scoreWHERE degree IS NULL9.36查询所有学生的成绩,并将空值作为0处理USE schoolSELECT sno AS '学号',cno AS'课程号', ISNULL(degree,0) AS '分数'FROM score。