(完整版)上海大学数据库上机作业上机练习4作业
数据库上机练习题
数据库上机练习题数据库上机练习题在学习数据库课程时,上机练习题是非常重要的一部分。
通过上机练习,我们可以巩固理论知识,提高实践能力,并且更好地理解数据库的概念和应用。
本文将介绍一些常见的数据库上机练习题,帮助读者更好地应对这些挑战。
一、基本查询数据库的基本查询是我们在实际应用中最常用的功能之一。
在上机练习中,我们通常需要编写SQL语句来实现一些简单的查询操作。
比如,查询某个表中的所有记录、按条件筛选记录、排序等等。
举个例子,假设我们有一个学生表,包含学生的学号、姓名、性别和年龄等字段。
我们可以通过以下SQL语句查询所有学生的信息:SELECT * FROM students;如果我们只想查询女生的信息,可以使用以下语句:SELECT * FROM students WHERE gender = '女';二、表的连接在实际应用中,我们经常需要从多个表中获取数据,并进行关联和处理。
上机练习中,表的连接是一个常见的考点。
通过表的连接,我们可以根据某个字段将两个或多个表关联起来,从而获取更丰富的信息。
举个例子,假设我们有一个学生表和一个课程表,学生表中包含学生的学号和姓名,课程表中包含课程的编号和名称。
我们可以使用以下SQL语句查询每个学生所选的课程:SELECT , FROM studentsINNER JOIN coursesON students.student_id = courses.student_id;三、子查询子查询是数据库中非常有用的一种技术,它可以将一个查询的结果作为另一个查询的输入。
在上机练习中,我们经常需要使用子查询来解决一些复杂的问题。
举个例子,假设我们有一个订单表和一个产品表,订单表中包含订单的编号和产品的编号,产品表中包含产品的编号和价格。
我们可以使用以下SQL语句查询每个订单的总金额:SELECT order_id,(SELECT SUM(price) FROM products WHERE products.product_id =orders.product_id) AS total_priceFROM orders;四、数据更新除了查询,数据库还提供了数据更新的功能。
上海大学数据库选修上机练习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%为“一般”。
c上机作业4答案(循环).doc
C第4次上机练习—、编程题1、编程输出1〜200之间所有能被12整除的整数。
—|AII global members 二][# include < s t d i o. h > vo i d ma i n (){i n t i ;For (i = l; i < = 2 0 0; i++){i f ( i%l2==0)pr i n t f (n%d ”,i); } p r i n t f (”\n M);2、从键盘输入n和k的值,求r?的值(要求不调用库函数pow())。
#include <s t d i o. h> vo i d ma i n (){i n t i;doub1e n,k,p=l;scanf (n%lf%lf n,&n, &k); for (i = l; i <=k; i++) (p=p*n;}pr i n t f (n% 1 f \n ”,p|);3、任意输入一个正整数,将它逆序打印出来。
如:输入12345,则输出54321,输入234,则输出432。
#i n c 1 LI d e < s t d i o. h>vo i d ma i n ()<i n t x;printf (n PLease i npu t x:"); scanf (n%d n, &x);do{printf x%l0);x/ = l 0;} wh i 1 e (x ! = 0);}4、下面的公式可以用来计算圆周率PI的近似值:JzlaP 1/8=1 / (1*3) +1/ (5*7) +1/ (9*11) +…… 请编程序计算公式的 前15项,看PI 的近似值是多少。
方法一:”include <或如禺>+, 逊 mainO”诞i ;"float bi=O,P ;v敷ii=l;i<=60;i+=4)”2p=1.0 氐*(i+2));”NBXi 威TPI 母&3如",pi*8);“ }* include逊 mainO”{”圾顼 =l;i<=15;i++)”n=4*i-3;” p=l 』心i*(n+幼屮pnntfC'PI=%.&3 如",pi*8);v5、求Sn=a+aa+aaa+aa...aa(n 个a),其中a, n 由键盘输入。
数据库上机实验(有答案)
数据库上机实验内容及要求(第二部分)1.建立工厂管理数据库工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:(1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话;(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种;(3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产;(4)一个车间制造多种零件,一种零件也可能为多个车间制造。
零件有零件号、重量和价格;(5)一种产品可由多种零件组成,一种零件也可以装配出多种产品;(6)产品和零件均存入仓库;(7)厂内有多个仓库,仓库有仓库号、仓库主任姓名和电话。
根据以上需求分析结果,按照下述要求,设计并建立工厂管理数据库。
◆分析实体及联系,设计E-R图。
◆将E-R图转换成关系模式,并规范化到3NF。
◆在Microsoft SQL Server2000中基于“企业管理器”建立数据库及相关对象(主码,外码,索引,约束等)。
◆测试数据入库2.基于“查询分析器”,完成并保存下述题目的SQL脚本(1)建立“工种”是“钳工”的所有职工详细信息的视图;create view View_工人_钳工asselect*from职工表where工种='钳工'with check option(2)建立“车间号”是“CJ01”的钳工详细信息的视图;create view View_钳工_CJ01asselect*from View_工人_钳工where车间号='CJ01'(3)建立使用了“零件号”是“LJ0002”的所有产品详细信息的视图;create view View_产品_零件LJ0002asselect产品表.产品号,价格,车间号,仓库号from装配表,产品表where装配表.产品号=产品表.产品号and零件号='LJ0002'(4)对零件表按照“零件号”建立唯一索引;create unique index Index_U_零件号on零件表(零件号)(5)对职工表按照“性别”建立聚簇索引;create clustered index Index_C_性别on职工表(性别)(6)查询使用了“零件号”是“LJ0002”的产品的生产车间号;select车间号from装配表,产品表where装配表.产品号=产品表.产品号and零件号='LJ0002'(7)查询“职工号”是“ZG0001”的职工所在车间的“车间主任姓名”和“联系电话”;select车间主任姓名,联系电话from职工表,车间表where职工表.车间号=车间表.车间号and职工号='ZG0001'(8)查询使用了“零件号”是“LJ0002”的所有产品的生产车间的“车间主任姓名”和“联系电话”;(连接查询、嵌套查询实现)select车间主任姓名,联系电话from产品表,装配表,车间表where产品表.产品号=装配表.产品号and产品表.车间号=车间表.车间号and装配表.零件号='LJ0002'select车间主任姓名,联系电话from车间表where车间号in(select车间号from产品表where产品号in(select产品号from装配表where零件号='LJ0002'))(9)查询使用了“零件号”是“LJ0002”的所有产品的“产品号”和“零件数量”,且查询结果按照“零件数量”降序排列;select产品号,零件数量from装配表where零件号='LJ0002'order by零件数量desc(10)查询使用了“零件号”是“LJ0002”的产品数;select count(*)as产品数from装配表where装配表.零件号='LJ0002'(11)查询“LJ0002”号零件装配产品的使用总量;select sum(零件数量)as使用总数from装配表where零件号='LJ0002'(12)查询使用了3种以上零件的产品号;select产品号from装配表group by产品号having count(*)>=3【注意】:下机时保存数据库文件(.mdf和.ldf)及SQL脚本文件到U盘。
数据库应用上机练习题目
1、教学目的:(1)熟悉并掌握ACCESS数据库管理系统的应用;(2)加深对所学的关系型数据库基本理论的理解。
2、教学内容(1)熟悉教材中表3.1-3.6所列明的教学管理系统的数据关系的情况,对其中的某些不合理之处做出修改。
(2)按照表3.9-3.11所使用的格式,写出其余的三个表的表结构,并以表格的方式输入到一个Word文档之中。
(3)使用数据库管理系统ACCESS建立一空数据库,以自己的学号为其命名,并按照要求(2)中所确定的表结构,在空的数据库中建立各个数据表(特别注意,由于在以后的教学环节中该数据库文件仍将多次用到,请注意保存)。
(4)将表3.1-3.6中的数据输入到对应的数据表中,注意,省略号部分所代表的内容可以暂不考虑。
(5)为已经建立好的各个数据表建立主键。
(6)建立学生信息表、课程信息表和学生成绩表三个表之间的关系。
(7)将数据库文件和(2)中所要求建立的Word文件以其发送到指导教师的信箱,作为本次上机课考核的依据。
1、教学目的:(1)熟悉在在ACCESS数据库管理系统应用SQL结构化查询语言的方法;(2)熟练掌握SQL结构化查询语言中的命令,并能运用其实现对数据库(表)、记录的相关操作。
2、教学内容(1)使用CREATE命令在上次上级课程中所建立的数据库中建立表3.1-3.6中所示的数据表。
数据表中的字段的特征(类型、宽度等)为上次作业中WORD文档中所确定的结果(特别提示,表的名字不要重复)。
(2)将步骤(1)中所建立的各个数据表使用SQL命令删除。
(3)练习使用SQL结构化查询语言中的查询命令。
①查询所有教师的基本信息。
②查询“计算机系”全体教师的信息。
③查询“顾国为”老师的上课时间。
④查询全部核心课程的名称。
⑤查询“计算机文化”基础课程的平均成绩。
⑥查询学号为“970001”的同学的所选的课程的名称。
⑦查询选课两门以上的同学的学号。
⑧查询1978年12月31日之前出生的同学的信息。
数据库上机实验题目和答案
试用SQL的查询语句表达下列查询:1.检索王丽同学所学课程的课程号和课程名。
select Cno ,Cname from c where Cno in(select cno from sc where sno in (select sno from s where sname='王丽' ))2.检索年龄大于23岁的男学生的学号和姓名。
select sno,sname from swhere sex='男' and age>233.检索‘c01’课程中一门课程的女学生姓名select sname from swhere sex='女' and sno in(select sno from sc where cno='c01')4.检索s01同学不学的课程的课程号。
select cno from cwhere cno not in (select cno from sc where sno ='s01')5.检索至少选修两门课程的学生学号。
select sc.sno from s,scwhere s.sno=sc.snogroup by sc.snohaving count(o)>=26.每个学生选修的课程门数。
解法一:select so.sno sno,ount,s.snamefrom(select sc.sno sno,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno ) so,swhere s.sno=so.sno解法二:select sc.sno sno,s.sname,count(sc.sno) ccountfrom sc,swhere s.sno=sc.snogroup by sc.sno,sname7.求选修C4课程的学生的平均分。
《数据库技术与应用》上机大作业
《数据库技术与应⽤》上机⼤作业数据库⼤作业1、查询XS表中的所有列。
use XSCJselect *from XS;2、查询XS表中计算机专业同学的学号、姓名和总学分。
use XSCJselect 学号,姓名,总学分from XSwhere 专业名= '计算机';3、查询XS表中计算机专业同学的学号、姓名和总学分,结果中各列的标题分别指定为number、name和mark。
use XSCJselect 学号as number , 姓名as name , 总学分as markfrom XSwhere 专业名= '计算机';4、查询XS表中通信⼯程专业总学分⼤于等于42的学⽣情况。
use XSCJselect *from XSwhere 专业名= '通信⼯程' and 总学分>= 42;5、查询XS表中姓“王”且单名的学⽣情况。
use XSCJselect *from XSwhere 姓名like '王_';6、查询XS表中不在1979年出⽣的学⽣情况。
use XSCJselect *from XSwhere 出⽣时间not between '1979-01-01' and '1979-12-31';7、查询选修了课程号为101的学⽣情况。
use XSCJselect *from XSwhere 学号in ( select 学号from XS_KCwhere 课程号= '101');8、查询未选修离散数学的学⽣情况。
use XSCJselect *from XSwhere 学号not in ( select 学号from XS_KC where 课程号in ( select 课程号from KC where 课程名= '离散数学'));9、查询⽐所有计算机系的学⽣年龄都⼤的学⽣情况。
上海大学数据库上机作业上机练习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课程的学生的姓名。
数据库大作业(全·参考答案)
《数据库原理与应用》综合设计任务书前言《数据库原理与应用》课程的重点知识模块包括:1)数据库设计、2)用SQL实现建库、建表、查询、更新、和创建视图、3)存储过程和触发器设计。
针对这三个应用能力,用一个案例作为背景,布置三次大作业。
在校大学生都能理解“图书管理系统”的应用场合和业务流程。
因此,以图书管理系统作为案例来布置作业,可以降低业务分析难度,让学生将主要精力放在知识消化与技术应用上。
本文档包括四个部分。
第一部分描述系统的需求,第二部分提出E-R模型设计和关系模型设计的任务;第三部分提出在SQL Server中,用SQL语句来建库、建表、查询、更新数据、创建视图的任务;第四部分,根据应用需求、安全需求和数据完整性要求,提出设计存储过程和触发器的任务。
每个任务之前,都给出了完成任务所需要掌握的关键知识点,学生可以在对这些知识点进行复习的基础上完成任务,每个任务是一次大作业。
第一部分案例的需求描述本部分描述“图书管理系统”的需求,学生通过阅读本部分内容,了解系统的功能要求、运行环境,对系统所需的数据有总体认识,作为三次作业的基础。
1.2 需求分析1)功能需求图1-1:功能需求示意图教师信息管理:用于教师基本资料的增删改查。
图书信息管理:用于图书基本信息的增删改查,分类统计图书册数和价值。
借书登记:记录借书时间、所借图书、借书人、办理人。
还书登记:记录还书时间、所还图书、还书人、办理人。
催还:查询借阅逾期的借书信息,给借书人发电子邮件,给借书人的部门打电话。
2)运行环境要求图1-2:运行环境拓扑图系统采用C/S模式,有两台PC和一台服务器,联成一个局域网。
PC上安装图书管理软件的客户端,服务器上安装DBMS,服务器也可由两台PC中的一台来代替。
第二部分作业1——E-R模型与关系模型设计(满分8分)本部分的任务是:在需求分析的基础上,进行E-R图设计,然后将E-R模型转换为关系模型。
任务:1)根据需求描述,绘制E-R图。
数据库上机习题及答案
数据库上机习题及答案 Revised by Liu Jing on January 12, 2021数据库及应用复习题一、设计题有一个[学生课程]数据库,数据库中包括三个表:学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。
课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。
用SQL语言实现下列功能:1.建立学生表Student,其中学号属性不能为空,并且其值是唯一的。
2.向Student表增加“入学时间(Scome)”列,其数据类型为日期型。
3.查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
4.查询学习1号课程的学生最高分数、平均成绩。
5.查询与“李洋”在同一个系学习的学生。
6.将计算机系全体学生的成绩置零。
7.删除学号为05019的学生记录。
8.删除计算机系所有学生的成绩记录。
1.CREATETABLE Student(Sno CHAR(5) NOT NULL UNIQUE,Sname CHAR(20),Ssex CHAR(2),Sage INT,Sdept CHAR(15))2.ALTER TABLE Student ADD Scome DATETIME 3.SELECT Sno, GradeFROM SGWHERE Cno='3'ORDER BY Grade DESC4.SELECT MAX(Grade), AVG(Grade)FROM SCWHERE Cno='1'5.SELECT Sno, Sname, SdeptFROM StudentWHERE Sdept IN(SELECT Sdept FROM StudentWHERE Sname='李洋')6. UPDATE SGSET Grade=0WHERE Sno in( SELECT Sno FROM StudentWHERE Sdept = '计算机系')7.DELETE FROM StudentWHERE Sno='05019'8. DELETE FROM SGWHERE Sno in( SELECT Sno FROM StudentWHERE Sdept = '计算机系')二、设计题现有关系数据库如下:数据库名:教师数据库教师表(编号 char(6),姓名,性别,民族,职称,身份证号)课程表(课号 char(6),名称)任课表(ID,教师编号,课号,课时数)用SQL语言实现下列功能的sql语句代码:1. 创建上述三表的建库、建表代码(14分);要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID)2. 将下列课程信息添加到课程表的代码(6分)课号课程名称100001 SQL Server数据库100002 数据结构100003 VB程序设计修改课号为100003的课程名称:Visual Basic程序设计删除课号为100003的课程信息3. 写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;(4分)4. 写出创建[某门课任课教师]内嵌表值函数以及检索的代码;(6分)检索:所有代'SQL Server数据库'这门课程的老师姓名;5. 写出创建[统计课时数]:输出最大课时数、最低课时数、平均课时的存储过程以及执行代码;(6分)6.写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。
(完整版)上海大学数据库上机作业上机练习2作业(1)
上大学数据库上机作业《数据库系统与应用》上机习题*************************************************************************************************第二部分、SQL查询━━单表查询二、使用购进凭证数据库。
(由老师提供复制,内含“商品信息表”和“购进凭证表”)⒈只显示购进凭证表中凭证号、单价、数量;并输出一个计算字段“金额”,计算金额的公式是:单价×数量。
(注:不是增加字段)USE 购进凭证SELECT 凭证号,单价,数量,(单价*数量)AS '金额'FROM 购进凭证表⒉加入筛选条件:只输出“饼干”大类商品。
USE 购进凭证SELECT 商品编号,品名,大类编号,大类名FROM 商品信息表WHERE 大类名='饼干'⒊除了“饼干”,再同时输出“酒类”商品;再同时输出“饮料”、“糖果”商品。
USE 购进凭证SELECT *FROM 商品信息表WHERE 大类名in('饼干','酒类','饮料','糖果')ORDER BY 大类编号ASC⒋按大类名排序、同一大类的单价从大到小排序。
USE 购进凭证SELECT 凭证号,商品编号,单价,数量,大类名,部门名称FROM 购进凭证表ORDER BY 大类名,单价DESC⒌清除原筛选条件,重设条件:只输出单价不在10至30元之间的酒类商品。
USE 购进凭证SELECT 凭证号,商品编号,单价,,量,大类名,部门名称FROM 购进凭证表WHERE 大类名='酒类', 单价not between 10 and 30⒍统计所有商品的总数量、总金额。
USE 购进凭证SELECT SUM(数量)AS'总数量',SUM(单价*数量)AS 总金额FROM 购进凭证表⒎统计饼干大类的总数量、总金额。
第四次上机实验参考答案.doc
第四次上机实验参考答案•第1题:使用Microsoft Access建立一个数据库,命名为“用户”,该数据库包含一张“用户信息”表,结构如表4-1所示:表4-1用户信息表字段名称数据类型字段大小主键用户号数字整型YES用户名文本10所在地文本50街区文本50然后在用户信息表中输入如图4-1所示的5条记录。
图4-1运行界面实验步骤:1、建立数据库使用Access建立“用户”数据库,并创建“用户信息”表,然后在用户信息表中输入如图4-1所示的5条记录。
【创建过程略】。
2、设计用户界面建立一个Windows应用程序,在窗体上添加数据源控件BindingSource 1,实现和“用户”数据库的连接(连接步骤参见教材P240-243例10-3,注意将连接对象设置为“用户”数据库和“用户信息”表);添加DataGridViewl控件,将其与数据源BindingSourcel连接(连接步骤参见教材P243-244例10-4),实现对数据库信息的浏览。
程序界面如图4-2所示。
3、编程给退出按钮编程,可退出应用程序的运行。
【略】V bindingSourcel 通用户DataSet 匚丫用户信息BindingSource '图)用户信息TableAdapter图4-2程序界面设计•第2题:完成教材P245中的“4.编程题”,使用创建一个用户登录界面程序。
要求首先用Access 建立一个用户数据库users,并建立表:userinfo(username,password,address,email), 并输入记录(admin,123,信息系,123@)。
然后设计一个用户登录界面,当用户输入相关信息单击“登录”按钮时,从userinfo表中查找是否有该用户记录,如果有就显示“登录成功”;否则显示“用户名或密码错误”。
用户登录界面如下图所示。
【编程提示】:在Forml_Load事件中编写连接数据库、访问数据库表的代码;在“登录”按钮的单击事件中核对用户登录信息,并在窗体上用标签显示登录成功或失败的信息;在“重置”按钮的单击事件中清空本文框和标签中的显示信息,同时允许重新输入用户名和密码;在“退出”按钮的单击事件中关闭数据库连接,并退出应用程序。
数据库与软件工程上机实验答案
数据库与软件工程上机实验答案第一篇:数据库与软件工程上机实验答案《数据库与软件工程》上机实验答案实验三 SQL语言的DDL3.CREATE TABLE aa(Bb1 VARCHAR(30),Bb2 INT,Bb3 DECIMAL(6,2))4. ALTER TABLE aa ADD Bb4 varchar(20)5.DROP TABLE AA6. CREATE VIEWReaderView(借阅者)ASSELECT DISTINCT 读者编号FROM 借阅7. Drop ViewReaderView。
8.CREATE INDEX INDEX1 ON 读者(姓名 ASC,单位 ASC)CREATE INDEX INDEX3 ON 借阅(借阅日期 DESC)9. DROP INDEX 读者.INDEX1CREATE INDEX INDEX1 ON 读者(姓名 ASC)实验四 SQL语言的DML初步1. CREATE DEFAULT ZEROVALUE AS 0sp_bindefault ZEROVALUE, '图书.借出否'CREATE DEFAULT CURTIME AS getdate()sp_bindefault CURTIME, '借阅.借阅日期'2. CREATE RULE gender_ruleAS@value in('男','女')EXEC sp_bindrule 'gender_rule', '读者.性别'CREATE RULE lenddate_ruleAS@value > '2004-1-1'EXEC sp_bindrule 'lenddate_rule', '借阅.归还日期'3.用INSERT语句对“图书”表插入6条记录INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0001','计算机类','清华出版社','严蔚敏','数据结构', 20.11)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0002','计算机类','清华出版社','苗雪兰','数据库技术及应用',29.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0003','计算机类','清华出版社','李建中','软件工程',48.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价) VALUES('0004','计算机类','电子工业出版社','汤惟','WEB技术',32.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0005','自动化类','机械工业出版社','胡寿松','自动控制原理',52.00)INSERT INTO 图书(书号,类别,出版社,作者,书名,定价)VALUES('0006','自动化类','机械工业出版社','郑大钟','线性控制理论',32.00)用INSERT语句对“读者”表插入4条记录INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10001','张三','东华大学','男','67792312')INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10002','李四','东华大学','女','67792312')INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10003','王五','东华大学','男','67792312')INSERT INTO 读者(读者编号,姓名,单位,性别,电话)VALUES('10004','李明','东华大学','女','67792312')用INSERT语句对“借阅”表插入7条记录INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0001','10001','2006-04-19 09:58:03','2006-05-19 8:38:23')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0006','10002','2006-07-01 15:28:12','2006-07-18 9:14:02')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0002','10002','2006-07-01 15:28:30','2006-07-17 19:10:32')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0002','10003','2006-07-03 15:28:30','2006-08-09 15:28:30')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0004','10002','2007-05-01 11:28:24','2007-08-01 8:09:04')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0005','10002','2007-11-01 10:43:12','2007-12-01 14:09:56')INSERT INTO 借阅(书号,读者编号,借阅日期,归还日期)VALUES('0003','10004','2007-12-01 16:06:02','2007-12-29 13:17:09')4. UPDATE 借阅SET 借阅日期='2006-08-03 15:28:30'WHERE 读者编号='10003' AND借阅日期 BETWEEN '2006-07-03' AND '2006-07-04' AND 书号='0002'5. DELETE FROM 借阅WHERE 借阅日期<'2006-06-01'1. SELECT 书号,书名 as 名称,定价 as 价格 FROM 图书WHERE 类别='自动化类'2.方法1:SELECT * FROM 图书WHERE 类别='计算机类'UNIONSELECT * FROM 图书WHERE 出版社='电子工业出版社'方法2:SELECT * FROM 图书WHERE 类别='计算机类' OR 出版社='电子工业出版社'3. SELECT * INTO 计算机图书表 FROM 图书WHERE 类别='计算机类'4. SELECT DISTINCT 读者.* FROM 读者,借阅WHERE 读者.读者编号=借阅.读者编号5. SELECT 读者.读者编号,姓名,单位,图书.书号,书名,借阅日期FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号6. SELECT 图书.书号,书名,类别,借阅日期 FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND 姓名='张三'ORDER BY 借阅日期 DESC7. SELECT 读者.读者编号,姓名,书名,DATEDIFF(day,借阅日期,归还日期)as 借阅时间FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND DATEDIFF(day,借阅日期,归还日期)>20order by 借阅时间8. SELECT * FROM 读者WHERE NOT EXISTS(SELECT * FROM 图书WHERE 类别='自动化类' and NOT EXISTS(SELECT * FROM 借阅WHERE 读者编号=读者.读者编号 and 书号=图书.书号))1.SELECT 类别,COUNT(*)AS 数量, AVG(定价)AS平均价格,SUM(定价)AS 总价FROM 图书GROUP BY 类别ORDER BY 类别2. SELECT YEAR(借阅日期)as 年份,书号,COUNT(*)AS 借阅次数FROM 借阅GROUP BY YEAR(借阅日期),书号ORDER BY 借阅次数 DESC3. SELECT 读者.读者编号,COUNT(书号)AS 借阅次数 FROM 读者LEFT JOIN(SELECT * FROM 借阅 WHERE 借阅日期 BETWEEN '2006-7-1' AND '2007-10-1')AON 读者.读者编号=A.读者编号GROUP BY 读者.读者编号4. SELECT 读者编号,COUNT(*)AS 次数 FROM 借阅,图书WHERE 借阅.书号=图书.书号 AND 书名='数据库技术及应用'GROUP BY 读者编号ORDER BY 次数 DESC5.方法1:SELECT MAX(次数)AS 最多,MIN(次数)AS 最少,AVG(次数*1.0)AS 平均FROM(SELECT 图书.书号,COUNT(*)AS 次数 FROM 图书,借阅WHERE 图书.书号=借阅.书号 AND 类别='计算机类'GROUP BY 图书.书号)A方法2:SELECT 图书.书号,COUNT(*)*1.0 AS 次数 FROM 图书,借阅WHERE 图书.书号=借阅.书号 AND 类别='计算机类'GROUP BY 图书.书号COMPUTEMAX(COUNT(*)*1.0),MIN(COUNT(*)*1.0),AVG(COUNT(*)*1.0)6. SELECT 类别 FROM 图书GROUP BY 类别HAVING MAX(定价)>=ALL(SELECT 2*AVG(定价)FROM 图书GROUP BY 类别)7. SELECT 书号,书名,定价,出版社 FROM 图书WHERE 类别='计算机类'ORDER BY 出版社 DESCCOMPUTE COUNT(书号)BY 出版社COMPUTE COUNT(书号)实验七存储过程、触发器和数据库恢复1.(1)CREATE PROCEDURE 借阅情况@Readerno VARCHAR(8)ASSELECT 读者.读者编号,姓名,图书.书号,书名,借阅日期, 借出否AS 归还否FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND 读者.读者编号=@ReadernoEXEC 借阅情况‘10004’(2)CREATE PROCEDURE 借出情况@Bookno VARCHAR(10)ASSELECT 书名,姓名,借阅日期,归还日期FROM 读者,借阅,图书WHERE 读者.读者编号=借阅.读者编号AND 图书.书号=借阅.书号AND 图书.书号=@BooknoEXEC 借出情况 '0004'2.CREATE TRIGGER lendbookinsert ON 借阅FOR INSERTASIF(SELECT 借出否 FROM 图书 WHERE 书号 IN(SELECT 书号 FROM INSERTED))=1BEGINPRINT '该书已经借出'ROLLBACK TRANSACTIONENDELSEBEGINUPDATE 图书SET 借出否=1WHERE 书号 IN(SELECT 书号 FROM INSERTED)END第二篇:数据库上机实验(二)数据库上机实验内容及要求(第二部分)1.建立工厂管理数据库工厂(包括厂名和厂长名)需要建立一个管理数据库存储以下信息:(1)一个厂内有多个车间,每个车间有车间号、车间主任姓名、地址和联系电话;(2)一个车间有多个工人,每个工人有职工号、姓名、年龄、性别和工种;(3)一个车间生产多种产品,产品有产品号和价格;每种产品只能由一个车间生产;(4)一个车间制造多种零件,一种零件也可能为多个车间制造。
上海大学数据库上机作业上机练习4作业(最新整理)
上大学数据库上机作业《数据库系统与应用》上机习题*************************************************************************************************第四部分、SQL查询━━嵌套和组合统计查询要求掌握:利用SQL查询语言表达嵌套查询语句以及数据查询中的统计计算和组合操作。
1、做书上第九章余下的例题,并完成书上练习题9中第11、12、13、14题11.if exists(SELECT*FROM sys.objects WHERE name=student)12.二、利用图书_读者数据库1. 求机械工业出版社出版的各类图书的平均价。
USE图书读者SELECT类别,AVG(定价)AS平均价FROM图书WHERE出版社='机械工业出版社'GROUP BY类别2. 求各类图书的最高价、最低价、图书的数量。
USE图书读者SELECT类别,MAX(定价)AS最高价,MIN(定价)AS最低价,COUNT(*)AS数量FROM图书GROUP BY类别3. 查找图书类别,要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的1.5倍。
USE图书读者SELECT类别FROM图书WHERE定价=ALL(SELECT MAX(定价)FROM图书WHERE定价<=ALL(SELECT AVG(定价)*1.5FROM图书))4.计算机类和机械工业出版社出版的图书。
USE图书读者SELECT*FROM图书WHERE出版社='机械工业出版社'AND类别='计算机'5.查询所有读者借阅过的书,要求按读者姓名、书名来排序。
USE图书读者SELECT读者.编号,借阅.读者编号,姓名,书名FROM图书,读者,借阅WHERE读者.编号=借阅.读者编号AND借阅.书号=图书.书号ORDER BY姓名6. 查询所有在2008.11.15日以后被借阅过的图书名及借阅者。
数据库上机实验部分题目及答案
上机实验部分题目及答案一、实验目的1、基本表的定义、修改和删除2、视图的建立、删除和查询3、约束的命名、删除和重定义二、实验结果存放创建表homework8(result ),将每题的题目序号和SQL语句写到此表。
三、实验内容现有图书管理数据库的一个关系模式:book(总编号,分类号,书名,作者,出版单位,单价)1.利用SQL语句创建book的表结构,其中总编号为主码,书名的类型为char(50),并给主码的约束命名(主码约束命名参照第五章内容)。
2.利用SQL在book这个表中分别插入以下所给元组:34、为“数据库导论”设置“出版日期”的值为2009年6月5日,为“计算机基础”设置“出版日期”的值为2008年3月4日。
5、删除总编号为445503的元组。
6、删除列“出版日期”。
7、将列“书名”的类型改为char(100),其中修改列类型的语句为:alter table <表名>[modify 列名数据类型]8、删除book的主码约束(参照第五章)9、将表book中的总编码设置为主码(参照87页内容)。
11.建立表book1,其表结构与内容参照第2题。
12. 为表book1建立科学出版社所出图书的视图science13、删除表book1,其中删除表的格式为:drop table <表名>[restrict|cascade constraint] 其中restrict与cascade参数的含义参照87页14、为表book建立高等教育出版社所出图书的视图education15、查询视图education中的所有内容16、删除视图educationdrop table homework8drop table bookcreate table homework8(ti smallint,res char(400))create table book(总编码char(8) ,分类号char(7),书名char(50),作者char(30),出版单位char(200),单价char(8),constraint total primary key(总编码) )insertinto homework8(ti,res)values (1,'create table book(总编码char(8) ,分类号char(7),书名char(50),作者char(30),出版单位char(200),单价char(8),constraint total primary key(总编码) )')22222222insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('445501','TP3/12','数据库导论','王强','科学出版社','17.90')insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('445502','TP3/12','数据库导论','王强','科学出版社','17.90')insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('445503','TP3/12','数据库导论','王强','科学出版社','17.90')insertinto book(总编码,分类号,书名,作者,出版单位,单价)values ('332211','TP5/10','计算机基础','李伟','高等教育出版社','18.00')3333333alter table bookadd 出版日期char(20)alter table bookadd 页数char(5)444444444444444444444444444444444444444update bookset 出版日期='2009年6月5日'where 书名='数据库导论'update bookset 出版日期='2008年3月4日'where 书名='计算机基础'55555555555555555555555555555555555555 deletefrom bookwhere 总编号='445503'66666666666666666666666666666666666666 alter table bookdrop column 出版日期777777777777777777777777777777777777777 alter table bookmodify 书名char(100)8888888888888888888888888888888888888 alter table bookdrop constraint total9999999999999999999999999999999999999 alter table bookadd primary key (总编码)11 11 11 11 11 11 11 11 11 11 create table book1(总编码char(8) ,分类号char(7),书名char(50),作者char(30),出版单位char(200),单价char(8),constraint total primary key(总编码))12 12 12 12 12 12 12 12 CREATE VIEW scienceASSELECT 总编码,分类号,书名,作者,出版单位,单价FROM book1WHERE 出版单位='科学出版社'13DROP TABLE book114CREATE VIEW educationASSELECT 总编码,分类号,书名,作者,出版单位,单价FROM bookWHERE 出版单位='高等教育出版社'15SELECT *FROM education16DROP VIEW education。
数据库上机考试试题及答案
1下列说法中正确的是:( D )A 、 SQL 中局部变量可以不声明就使用B 、 SQL 中全局变量必须先声明再使用C 、 SQL 中所有变量都必须先声明后使用D 、 SQL 中只有局部变量先声明后使用;全局变量是由系统提供的用户不能自己建立。
2.哪个关键字用于测试跟随的子查询中的行是否存在( B )。
A.MOV B.EXISTSC.UNION D.HAVING3 .下列哪些语句用于创建存储过程( A )?A、CREATE PROCEDUREB、CREATE TABLEC、DROP PROCEDURED、其他5.在SQL中,SELECT语句的“SELECT DISTINCT”表示查询结果中 ( C )。
A.属性名都不相同B.去掉了重复的列C.行都不相同D.属性值都不相同6.SQL 语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATA实现下列哪类功___A_____。
A. 数据查询B. 数据操纵C. 数据定义D. 数据控制7.SQL Server 2000 采用的身份验证模式有( D )。
(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式10.SQL Server 2000 企业版可以安装在操作系统上。
( C )(A)Microsoft Windows 98(B)Microsoft Windows 2000 Professional(C)Microsoft Windows 2000 Server(D)Microsoft Windows XP11.SQL Server是一个( C )的数据库系统。
(A)网状型(B)层次型(C)关系型(D)以上都不是12.SQL语言中,删除一个视图的命令是( B )。
A. DELETEB. DROPC. CLEARD. REMOVE13.SQL语言中,删除记录的命令是( A )。
数据库应用技术上机练习
2010级网络技术4班3月5日《数据库应用技术》上机练习1.使用查询分析器在数据库Stu中完成如下建表语句的练习:建表练习(复习上次完成的两张表,没完成的同学继续完成):①StudentInfo(学生信息表),该表包括如下字段:StudentID(学生编号),Int类型(自动编号),主键,不允许为空StudentNumber(学号),Char类型(长度为10),不允许为空Name(姓名),VarChar类型(长度为10),不允许为空Sex(性别),Bit类型,不允许为空Race(民族),VarChar类型(长度为6),可为空Address(家庭住址),VarChar类型(长度为30),可为空Telephone(电话号码),Char类型(长度为11),不允许为空Role(政治面貌),VarChar类型(长度为6),可为空Postalcode(邮政编码),Char类型(长度为6),可为空ClassName(班级名称),varchar类型(长度为30),不允许为空Remark(备注),Text类型,可为空Photo(照片),Image类型,可为空②ScoreInfo(成绩信息表),该表包括如下字段:ScoreID(成绩编号),Int类型(自动编号),主键,不允许为空Semester(学期),Char类型(长度为1),不允许为空StudentNumber(学生学号),Char类型(长度为10),不允许为空CourseName(开课名称),varchar类型(长度为30),不允许为空Score(成绩),Decimal类型(长度为5,小数点后保留2位),可为空2.查询分析器实现数据表的增、删、改操作(1)对表增加单条数据练习:①对学生信息表插入以下数据:②对成绩信息表插入以下数据:(2)对表增加多条语句练习:①将学生信息表中的姓名、性别、地址、电话、邮编、备注等信息添加到另外一张表TongXunLu(通讯录表)中。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上大学数据库上机作业《数据库系统与应用》上机习题*************************************************************************************************第四部分、SQL查询━━嵌套和组合统计查询要求掌握:利用SQL查询语言表达嵌套查询语句以及数据查询中的统计计算和组合操作。
一、做书上第九章余下的例题,并完成书上练习题9中第11、12、13、14题11.if exists(SELECT*FROM sys.objects WHERE name=student)12.二、利用图书_读者数据库1. 求机械工业出版社出版的各类图书的平均价。
USE图书读者SELECT类别,A VG(定价)AS平均价FROM图书WHERE出版社='机械工业出版社'GROUP BY类别2.求各类图书的最高价、最低价、图书的数量。
USE图书读者SELECT类别,MAX(定价)AS最高价,MIN(定价)AS最低价,COUNT(*)AS数量FROM图书GROUP BY类别3.查找图书类别,要求类别中最高的图书定价不低于全部按类别分组的图书平均定价的1.5倍。
USE图书读者SELECT类别FROM图书WHERE定价=ALL(SELECT MAX(定价)FROM图书WHERE定价<=ALL(SELECT A VG(定价)*1.5FROM图书))4.计算机类和机械工业出版社出版的图书。
USE图书读者SELECT*FROM图书WHERE出版社='机械工业出版社'AND类别='计算机'5.查询所有读者借阅过的书,要求按读者姓名、书名来排序。
USE图书读者SELECT读者.编号,借阅.读者编号,姓名,书名FROM图书,读者,借阅WHERE读者.编号=借阅.读者编号AND借阅.书号=图书.书号ORDER BY姓名6. 查询所有在2008.11.15日以后被借阅过的图书名及借阅者。
USE图书读者SELECT读者.编号,借阅.读者编号,书名,姓名,借阅日期FROM图书,读者,借阅WHERE读者.编号=借阅.读者编号AND借阅.书号=图书.书号AND借阅日期>'2008-11-15'ORDER BY姓名三、利用上次上机的学生_课程数据库1. 查询每个学生的情况以及他所选修的课程。
USE学生课程SELECT学生.学号,姓名,选课.课程号,课程名,单位FROM学生,选课,课程WHERE学生.学号=选课.学号AND选课.课程号=课程.课程号ORDER BY学号2.求学生的学号、姓名、选修的课程名及成绩。
USE学生课程SELECT学生.学号,姓名,选课.课程号,课程名,成绩FROM学生,选课,课程WHERE学生.学号=选课.学号AND选课.课程号=课程.课程号ORDER BY学号3.求选修C1课程且成绩为90分以上的学生学号、姓名及成绩。
USE学生课程SELECT学生.学号,姓名,选课.课程号,课程名,成绩FROM学生,选课,课程WHERE学生.学号=选课.学号AND选课.课程号=课程.课程号AND选课.课程号=’C1’ AND成绩>90 ORDER BY学生.学号4. 查询每门课程的间接先行课(就是先行课的先行课)。
USE学生课程SELECT选课.课程号,课程名,先行课FROM选课,课程WHERE选课.课程号=课程.课程号四、完成书上P158页上机实验题41.显示所有职工的年龄,并按职工号递增排序。
USE factorySELECT职工号,DATEDIFF(YY,GETDATE(),出生日期)AS年龄FROM workerORDER BY职工号2.求出各部门的党员人数。
USE factorySELECT部门号,SUM(cast(党员否as bigint))AS党员人数FROM workerWHERE党员否='True'GROUP BY部门号3.显示所有职工的姓名和2004年1月份的工资数。
USE factorySELECT姓名,工资FROM salaryWHERE日期='2004-01-04'4.显示所有职工的职工号、姓名和平均工资。
USE factorySELECT职工号,姓名,A VG(工资)AS平均工资FROM salaryGROUP BY职工号,姓名5.显示所有职工的职工号、姓名、部门名和2004年2月份的工资,并按部门名顺序排序。
USE factorySELECT salary.职工号,salary.姓名,部门名,工资FROM salary,depart,workerWHERE worker.部门号=depart.部门号AND日期='2004-02-03'AND worker.职工号=salary.职工号ORDER BY部门名6.显示个部门名和该部门的所有职工平均工资。
USE factorySELECT depart.部门名,A VG(工资)AS平均工资FROM salary,depart,workerWHERE worker.部门号=depart.部门号AND worker.职工号=salary.职工号GROUP BY depart.部门名7.显示所有平均工资高于1200的部门名和对应的平均工资。
USE factorySELECT depart.部门名,A VG(工资)AS平均工资FROM salary,depart,workerWHERE worker.部门号=depart.部门号AND worker.职工号=salary.职工号GROUP BY depart.部门名HA VING A VG(工资)>12008.显示所有职工的职工号、姓名和部门类型,其中财务部和人事部属管理部门,市场部属市场部门。
USE factorySELECT worker.职工号,worker.姓名,CASE rtrim(部门名)WHEN'财务处'THEN'管理部门'WHEN'人事处'THEN'管理部门'WHEN'市场部'THEN'市场部门'ELSE'其他部门'END AS部门类型FROM worker inner join depart On worker.部门号=depart.部门号9.若存在职工号为10的职工,则显示其工作部门名称,否则显示相应的提示信息。
USE factoryGODECLARE@no int,@dep char(10)SET@no=10IF EXISTS(SELECT*FROM worker WHERE职工号=@no)BEGINSELECT@dep=depart.部门名FROM worker,departWHERE worker.职工号=@no AND worker.部门号=depart.部门号PRINT'职工号为'+CAST(@no AS CHAR(2))+'的职工在'+CAST(@dep AS char(6))+'工作'ENDELSEqwPRINT'不存在该员工的记录'GO第二种:USE factoryDECLARE@cno intSET@cno=10IF EXISTI (SELECT * FROM worker WHERE 职工号=@cno)SELECT 部门名FROM depart WHERE 部门号IN(SELECT 部门号FROM worker WHERE 职工号=@cno)ELSESELECT ‘没有该工号’10.求出男女职工的平均工资,若男职工平均工资高于女职工平均工资50%,怎显示“南‘男职工比女职工的工资高多了’,若男职工平均工资高于女职工平均工资比率在1.5-0.8之间,则显示男职工平均工资高于女职工平均工资差不多“”的信息,否则“女职工平均工资高于男职工平均工资”USE factoryGODECLARE@avg1float,@avg2float,@ratio float--计算男职工平均工资SELECT@avg1=A VG(工资)FROM worker,salaryWHERE worker.职工号=salary.职工号AND worker.性别='男'--计算女职工平均工资SELECT@avg2=A VG(工资)FROM worker,salaryWHERE worker.职工号=salary.职工号AND worker.性别='女'SET@ratio=@avg1/@avg2IF@ratio>1.5PRINT'男职工比女职工的工资高多了'ELSEIF@ratio>=0.8PRINT'男职工跟女职工的工资差不多'ELSEPRINT'女职工比男职工的工资高多了'GO。