实用数据库上机作业(第5次)
数据库上机练习题
数据库上机练习题数据库上机练习题在学习数据库课程时,上机练习题是非常重要的一部分。
通过上机练习,我们可以巩固理论知识,提高实践能力,并且更好地理解数据库的概念和应用。
本文将介绍一些常见的数据库上机练习题,帮助读者更好地应对这些挑战。
一、基本查询数据库的基本查询是我们在实际应用中最常用的功能之一。
在上机练习中,我们通常需要编写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;四、数据更新除了查询,数据库还提供了数据更新的功能。
数据库上机实验4、5
实验四:一、实习目的:掌握SELECT的基本使用格式,能使用SQL Server对表作简单的查询。
二、准备:1.复习3.4节中SELECT的基本使用格式;2.复习SQL中五种集函数:AVG、SUM、MAX、MIN、COUNT;3.完成习题3第12题中各项操作的SQL语句。
三、实习内容:1.验证习题3第12题中各项操作的SQL语句。
2.验证以下语句是否正确:SELECT eno,basepay,serviceFROM salaryWHERE basepay<AVG(basepay);四、实验报告:1.1)找出所有被学生选修了的课程号:select distinct Cno 课程号from Grade2)找出01311班女生的个人信息:select * from Studentwhere Clno='01311' and Ssex='女'3)找出01311班和01312班的学生姓名性别出生年份select sname 学生姓名,ssex 性别,2016-sage 出生年份from Studentwhere Clno='01311' or Clno='01312'4)找出所有姓李的学生的个人信息select * from Studentwhere Sname like '李%'5)找出李勇所在班级的学生人数select COUNT(*) from Studentwhere Clno in(select Clno from Studentwhere Sname='李勇')6)找出课程名为操作系统的平均成绩最高分最低分select AVG(Gmark) 平均成绩,MAX(Gmark) 最高分,MIN(Gmark) 最低分from Gradewhere Cno in(select Cno from Coursewhere Cname='操作系统')7)选修了课程的学生人数;select COUNT(distinct sno) 学生人数fromGrade8)选修了操作系统的学生人数:select COUNT(distinct sno) 学生人数from Gradewhere Cno in(select Cno from Coursewhere Cname='操作系统')9)找出2000级计算机软件班的成绩为空的学生姓名:2.错误。
数据库原理及应用书后上机实验答案
数据库原理及应用——崔巍_书后上机实验程序源代码:--1CREATE DATABASE test1ON(NAME=test1_dat,FILENAME='f:\DB\data\test1dat.mdf',SIZE= 10,MAXSIZE= 50,FILEGROWTH= 5 )LOG ON(NAME=order_log,FILENAME='f:\DB\data\test1log.ldf',SIZE= 5MB,MAXSIZE= 25MB,FILEGROWTH= 5MB)--2create database test2onprimary(name=test2_dat1,filename='f:\DB\data\test2dat1.mdf'),(name=test2_dat2,filename='f:\DB\data\test2dat2.ndf'),(name=test2_dat3,filename='f:\DB\data\test2dat3.ndf')log on(name=test2_log1,filename='f:\DB\data\test2log1.ldf'),(name=test2_log2,filename='f:\DB\data\test2log2.ldf')--3create database test3onprimary(name=test3_dat1,filename='f:\DB\data\test3dat1.mdf'),(name=test3_dat2,filename='f:\DB\data\test3dat2.mdf'),filegroupg2(name=test3_dat3,filename='d:\DB\data\test3dat3.ndf'),(name=test3_dat4,filename='d:\DB\data\test3dat4.ndf'),filegroupg3(name=test3_dat5,filename='e:\DB\data\test3dat5.ndf'),(name=test3_dat6,filename='e:\DB\data\test3dat6.ndf')log on(name=test3_log,filename='f:\DB\data\test3log.ldf')--4alter database test1add file(name=test1new_dat,filename='f:\DB\data\test1newdat.ndf',size=5MB)--5alter database test1modify file(name=test1_dat,size=15MB)--6dropdatabasetest3四、实验数据、结果分析:若没有指定size,则默认为1MB,没有指定Maxsize,文件可以增长到磁盘满为止,没有指定Filegrowth,则默认为10%。
数据库上机实验题目和答案
试用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
人文
二区
不会
没有
普通话不标准,很难听清。只是看一些视频。
考试,需要教材。
不建议,还不如自己找书看。
《汉书》导读
2
人文
一区教五
点了三次
无
两个老师讲,都讲得很认真。但是其中一个普通话很不标准,比较难理解。
三次
都还不错
论文
生物恐怖与生物安全
1
数自
一区教四
无
2次
……
论文
偏低
大学化学实验
1
数自
一区
每节
每节
好
取各次实验报告平均成绩
较高
作业较多。比较有趣。
自然计算方法导论
1
数自
三区附三
不点名不签到
课堂可讨论,不强求
相当精彩,只是比较高端
自己出题自己考
较高
建议大一不要去听,听了也听不懂,还是大二大三专业知识稍微多一点了再去好了,老师教授知识也教做人,虽然有点喜欢吹牛皮
程名称
学分
类别领域
上课地点
点名情况
课堂作业情况
教师授课评价
结课考核方式
给分情况
备注
科学技术史
2
数自
三区
无
无
较好
开卷考试
较容易
90+
可能要买书,人较多
急救医学
1
数自
三区
不点名
无
老师讲的不错,各有所专
中间有操作测试,期末闭卷
较高
地下空间开发与利用
1
《数据库技术与应用》上机大作业
《数据库技术与应⽤》上机⼤作业数据库⼤作业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
实验5 SQL的数据操纵功能实验目的学会使用MS SQL SERVER 2000的查询分析器完成SQL的数据操纵功能,主要包括数据插入、删除与修改。
知识点拨:1.数据插入语法格式:2.数据修改语法格式:3.数据删除语法格式:4.SELECT … INTO…语句的使用:实验内容1.数据插入2.数据修改3.数据删除4.SELECT … INTO…语句:实验步骤1.选择数据库JX;注意:以下操作请验证结果!2.数据插入:1)向学生表加入一条记录,其学号、姓名、性别和系别分别为:(’06011’,’王文娟’,’女’,’计算机’);INSERTINTO Student (Sno,Sname,Ssex,Sdept)V ALUES('06011','王文娟','女','计算机')2)向学生表加入一条记录,其姓名、性别和系别分别为:(’王娟’,’女’,’计算机’),观察运行结果;INSERTINTO Student (Sname,Ssex,Sdept)V ALUES('王娟','女','计算机')运行结果:不能将值NULL 插入列'Sno',表'JX.dbo.Student';列不允许有空值。
INSERT 失败。
3)创建一个与学生信息表结构完全相同的基本表CP_Student,用以存储计算机和外国语系学生信息;CREATE TABLE CP_Student(Sno CHAR(5)PRIMARY KEY,Sname V ARCHAR(10)UNIQUE,Ssex CHAR(2),Sbirth SMALLDA TETIME,Sdept V ARCHAR(20),Total SMALLINT)4)将Student中计算机系和外国语系的学生信息插入到CP_Student;INSERTINTO CP_StudentSELECT*FROM StudentWHERE Sdept IN('计算机','外国语')3.数据修改:1)把教师“王芳”改为“王芳龄”;UPDATE TeacherSET Tname='王芳龄'WHERE Tno='2'2)将职称是副教授的教师工资提高2%;UPDATE TeacherSET Tpay=Tpay*1.02WHERE Tprof='副教授'3)将计算机系和外国语系学生的考试成绩分别下调4%和增加2分;UPDATE StudentSET Total=Total*0.96WHERE Sdept='计算机'UPDATE StudentSET Total=Total+2WHERE Sdept='外国语'4)把李强同学的所有分数都加1分;(可使用UPDA TE。
数据库原理及应用最全上机实验及实验答案
实验一 SQL Server 2005 的安装和环境介绍一.实验目的与要求:1.掌握SQL Server 2005 服务器的安装方法2.了解SQL Server 2005 的环境3.了解数据库及其对象二.实验准备1.了解SQL Server 2005的版本2.了解SQL Server 2005各版本对硬件和软件的需求三.实验要求1.写出SQL SERVER 2005的功能与特点, 使用方法, 应用状况的报告2.完成SQL SERVER 2005的安装、启动、登录。
四.实验内容1.安装SQL Server 2005实验一 SQL Server 2005 的安装和环境介绍●实验指导——安装SQL Server 20051.根据安装机器软硬件的要求,选择一个合适的版本,以下以开发版为例2.将 SQL Server 2005 DVD 插入 DVD 驱动器。
如果DVD驱动器的自动运行功能无法启动安装程序无法启动安装程序,请导航到 DVD 的根目录然后启动splash.hta。
3.在自动运行的对话框中,单击“运行 SQL Server 安装向导”。
4.在“最终用户许可协议”页上,阅读许可协议,再选中相应的复选框以接受许可条款和条件。
接受许可协议后即可激活“下一步”按钮。
若要继续,请单击“下一步”若要结束安装程序,请单击“取消”。
如下图:5.在“SQL Server 组件更新”页上,安装程序将安装 SQL Server 2005 的必需软件。
有关组件要求的详细信息,请单击该页底部的“帮助”按钮。
若要开始执行组件更新,请单击“安装”。
更新完成之后若要继续,请单击“完成”。
6.在 SQL Server 安装向导的“欢迎”页上,单击“下一步”以继续安装。
7.在“系统配置检查 (SCC)”页上,将扫描安装计算机,以检查是否存在可能妨碍安装程序的条件。
8.在“注册信息”页上的“姓名”和“公司”文本框中,输入相应的信息。
数据库上机实验答案5
数据库上机实验答案 5学号:姓名:日期:年月日实验目的:综合练习所学的SQL语言。
学习日期函数。
实验内容:基于提供的食堂交易记录trans表,进行查询,记录SQL语句及查询结果。
食堂交易记录表trans的数据说明如下:trans食堂交易记录(stuID,学生学号posID,刷卡机编号transTime,交易时间transValue,交易金额)1 食物销量大比拼创建一张表格posSummary,表格内容如下: pos机编号,就餐人数,刷卡次数,销售金额,平均每次刷卡金额。
以pos机编号为主键。
利用insert语句填充数据。
选择并展示posSummary中销售金额前10的pos机。
2 评选食堂忠实粉丝创建一个视图stuSummary,视图内容如下:学生ID,刷卡次数,刷卡总金额,刷卡平均金额。
基于创建的视图,分别找出刷卡次数最多、刷卡总金额最多、刷卡平均金额最多的同学。
3 学习日期函数datepart执行如下语句。
将执行结果复制到excel中,绘制散点图。
解释图的意思。
select datepart(hour,transtime)*60+datepart(minute,transtime)as minuteOfDay,count(*) as freq from trans group by datepart(hour,transtime)*60+datepart(minute,transtime) order by datepart(hour,transtime)*60+datepart(minute,transtime)其中,日期函数datepart(hour,transtime)的意思是将transtime中小时的部分取出来。
4 就餐规律研究计算某一天是星期几的方法如下:datepart(weekday,transtime),其计算结果周日为1,周一为2,周六为7。
基于题3中的方法,绘制上课日(周一到周五)学生的就餐规律和休息日(周六、周日)学生的就餐规律图。
查询上机作业(附答案)
上机作业3(单表查询)1、在图书管理数据库中创建下面选择查询对象:s1:查询读者表中全部记录,结果集按借书证号降序排序SELECT * FROM 读者ORDER BY 借书证号s2:查询所有专科生和本科生的已借书数,提取数据项:借书证号、姓名、读者类别、已借数SELECT 借书证号,姓名,读者类别,已借数FROM 读者WHERE 读者类别in("专科生","本科生")s3:查询清华大学出版社出版的藏书信息SELECT * FROM 图书WHERE 出版社="清华大学出版社"s4:查询价格高于100元的图书信息SELECT * FROM 图书WHERE 价格>100s5:查询已借空的图书信息SELECT * FROM 图书WHERE 库存量=0s6:查询ISBN号的从第2到第4字符是777的图书记录SELECT * FROM 图书WHERE ISBN like "?777*"s7:查询借出时间超过30天的读者的借书证号SELECT 借书证号FROM 读者WHERE date()-借书时间>30或:SELECT 借书证号FROM 读者WHERE datediff("d",借书时间,date())>30s8:在已借过的书中(借阅历史表)查借出时间不超过两天的书的ISBN号SELECT isbn FROM 借阅历史无WHERE借书时间-还书时间<=2或:SELECT isbn FROM 借阅历史无WHERE datediff("d",借书时间,还书时间)<=2s9:给定一个ISBN号,查询该书是否可借SELECT 库存量FROM 图书WHERE isbn=[请输入书号]SELECT iif(库存量>0, "可借","不可借") FROM 图书WHERE isbn=[请输入书号]s11给定一个借书证号,查询该读者已借的书的ISBN号和借出时间SELECT ISBN,借书时间FROM 借阅WHERE 借书证号=[请输入借书证号]2、在成绩数据库中创建下面选择查询对象:S1:查询所有课程名为"高等数学"的课程信息SELECT * FROM 课程WHERE 课程名="高等数学"S2:查询在第1学期开出的课程SELECT * FROM 课程WHERE 学期=1S3查询专业代码为"034"的专业的所有班级名称SELECT 班级名称FROM 班级WHERE 专业代码="034"S4:查询来源地中包含有“广西”的学生记录SELECT * FROM 学生WHERE 来源地LIKE "*广西*"S5:查询2005级的学生记录(学号前4位为2005)SELECT * FROM 学生WHERE 班级代码like "2005*"S6:查询年满20岁的学生SELECT * FROM 学生WHERE dateadd("yyyy",20,生日)<=date()S7:查询今天是生日的学生的姓名及所在班的班级代码SELECT 姓名,班级代码FROM 学生WHERE month(生日)=month(date()) and day(生日)=month(date())3、在工资管理数据库中创建下面选择查询对象S1:查医保小于职务工资的12%的职工的信息SELECT * FROM 职工WHERE 医保<职务工资*0.12S2:查询2006年1月份每个职工的扣款小计,提取数据项:职工号、扣款小计SELECT 职工号,医保+个税as 扣款小计FROM 月工资WHERE 年=2006 and 月=1上机作业4(多表查询)1、在图书管理数据库中创建下面的查询对象S1:任给一个借书证号,查该读者所借出的全部书的书号及书名SELECT 借阅.ISBN,书名FROM 借阅,图书WHERE 借阅.ISBN=图书.ISBN and 借阅.ISBN=[请输入书号]S2:任给一个借书证号,查该读者当前的可借书数SELECT 限借数-已借数FROM 读者类别,读者WHERE 读者类别.读者类别=读者.读者类别and 借书证号=[请输入借书证号]S3:查询所有已借数为0,但借阅表中存在借阅记录的读者的借书证号、所借书的书号和书名SELECT 读者.借书证号,借阅.ISBN,书名FROM (读者LEFT JOIN 借阅ON 读者.借书证号=借阅.借书证号)LEFT JOIN 图书ON 借阅.ISBN=图书.ISBNWHERE 已借数=0 and (借阅.借书证号is not null)S4:查询在图书表中库存量=复本量,但在借阅表中存在借出记录的图书的书号与S3雷同S5:查询所有已借出的书的书名和所借者的借书证号和姓名SELECT 读者.借书证号,姓名,书名FROM (读者INNER JOIN 借阅ON 借阅.借书证号=读者.借书证号)INNER JOIN 图书ON 借阅.ISBN=图书.ISBNS6:给定一个借书证号,查询该读者是否可借书。
数据库系统应用上机实验指导书
重庆邮电学院经济管理学院上机实验指导书系列数据库系统应用胡大权编写计算机信息管理实验中心二〇〇五年八月前言《数据库系统应用》是非计算机类专业的一门基础课,在理论教学中,多数侧重于理论讲解,轻实践操作,鉴于此,特编写本书用于上机实验指导。
选用Access作为软件平台是因为Access基本上能体现数据库的所有理论知识,而且,目前单位企业日常办公中广泛使用Access。
本书结合数据库理论教学内容以一个数据库应用系统设计和完善贯穿全书,内容精简实用,语言简练,条理清晰,操作性强。
由于编者水平和篇幅有限,虽几经修订改编,书中难免会有欠妥之处,恳请读者批评指正。
编者2008年5月目录前言 (I)目录 (II)实验一数据库设计 (1)实验二创建数据库 (5)实验三表及数据操作 (12)实验四查询设计 (21)实验五复杂查询 (26)实验六SQL语句练习 (30)实验六窗体 (36)实验七报表 (44)实验八宏 (54)实验九VBA(选做) (61)实验十数据库安全(选做) (62)实验十一综合实验 (63)实验一数据库设计实验目的1、掌握数据库设计的方法和步骤实验内容1、分析超市管理系统数据库;2、进行概念结构设计,并画出E-R图;3、进行逻辑结构设计,将E-R图转换为关系模型;4、设计各关系中的属性实验步骤1 需求分析数据库需求分析是整个设计过程的基础,在分析阶段,设计者通过调查、询问等方法了解业务流程、用户的实际要求,与用户达成共识;了解用户能提供哪些数据,要实现哪些功能,并以数据流图、数据字典描述出来,这需要用户密切配合合作。
本实验假设性分析超市管理系统的主要功能为:根据收银台终端传送来的销售数据和库存数据进行分析以掌握销售情况、库存情况,为管理者提供决策依据。
如图表 1 高层业务流程图超市管理系统图表 1 高层业务流程图2 概念结构设计。
超市管理系统主要是对柜台的销售数据和库存商品分析、统计,以掌握销售情况,为管理者提供决策依据。
数据库管理的上机操作练习
题目
1.首先创建一个数据库,数据库的名字是以:“你的姓名+学号”组成。
2.在你创建的数据库下,创建五张表格,表格名字分别命名为:图书信息表,读者信息表,借阅信息表,图书类别表,基本信息表。
这5张表的字段名以及字段的设置为:
期
(2)为出版社设置“查阅列”,出版社一共就三家:分别是:北京大学出版社,清华大学出版社,武汉大学出版社。
(3)类别代码默认为:ANCAITUSHU
(2)联系电话设置掩码,要求:区号占4位,最后一位是可以不输,前三位必须输,后面是8位,最后一位可以不输,前7位必须输。
(3)设置工作单位的有效性规则:工作单位不能是“安徽财经大学”
(4)设置记录(表)有效性规则:要求如果输入男性,那么必须要求读者的家庭地址必须是“安徽省”,如果输入的女性,那么要求读者的办证日期必须在2008
年以后,2011年以前之间的日期里。
(5)将“读者姓名”设为“有索引”,有无重复请你做出选择。
(6)读者年龄在20岁——35之间。
有效性文本是:“你输入的年龄必须是18——35之间,谢谢!”
筑,家电”,要求书籍类别不能输入,要求选择输入。
先建立一个表,在表中输入书籍类别,然后通过查阅列的查阅向导来实现选择输入。
(可参考书德63页)(2)在书籍类别的字段后插入一个新字段“书籍所在的书库”。
3.为这5张表创建关系。
他们的关系是:
图书类别表:图书信息表=1:N
图书信息表:借阅信息表=1:N
读者信息表:借阅信息表=1:N
4.创建一张表,表的名字是“学生表”,字段有:姓名,学号,班级。
要求将该表设为隐藏。
8个数据库的上机实验作业题
实验作业要求:这是数据库的上机实验作业题,请大家任选其中的两个数据库,完成以下任务:(1)绘制E-R图(2)写出所有关系模式(即表)(3)写出创建所有表的SQL语句(包括外键参考语句)注意事项:在作业中要明确标出是哪两个数据库。
数据库设计实例一学生选课数据库某学院有基本实体集:系、教师、学生和课程。
它们各有属性:系:系编号、系名,位置课程:课程号,课程名称,开课学期学生:学生学号,学生姓名、性别、地址教师:员工号,教师姓名,办公室实体间有联系:每个系有一位系主任,有多位教师;一个教师仅在一个系任;每个系开设多门不同课程;每门课程各由一位教师授课;一个学生可以在不同的系选修多门课程。
存在联系有:1对1 :系与系主任(系主任是教师)1对多:系与教师、系与课程,教师与课程多对多:学生与课程数据库设计实例二虚拟主机业务管理有实体:职工(职工号、姓名、性别、出生年月、工作类别、职称、密码、备注)主机(主机序号、操作系统、生产厂商、状态、空间数量、备注)用户单位(用户单位名称、联系人姓名、联系电话)实体之间的关系:职工(销售员)与主机的管理关系是一对多的关系一个销售员可销售多台主机,一台主机只能由售员销售。
职工(运行维护员)与主机的维护关系是多对多关系,一个运行维护员可维护多台主机,一台主机能多个运行维护员维护。
职工(管理员)与主机是一对多关系,一个管理员管理多台主机,一台主机只能由一个管理员管理,主机与用户单位是多对多的,一台主机可分配给多个用户单位,一个用户单位可租用多台主机。
每次租用由一位销售员经手数据库设计实例三再就业信息管理有实体:职工(编号、姓名、性别、出生年月、工作类别、职称、工作年限、专业、学历)企业(企业编号、企业名称、企业性质、联系人姓名、联系电话)岗位(岗位编号、岗位名称、学历要求、职称要求、工种、工作年限)实体之间的关系职工与岗位之间的申请关系是多对多的关系,一个职工可申请多个就职岗位,同样一个岗位能被许多职工申请。
数据库上机实验题(七、八、九)
上机实验题7相关知识:第14章。
目的:通过本实验,掌握使用函数和存储过程的设计和使用方法。
实验内容:编写满足如下各功能的程序:(1)在Library数据库中创建一个标量值函数Sum(n),求1+2+…+n之和。
并用相关数据进行测试。
(2)在Library数据库中创建一个内联表值函数nbook,返回指定系的学号、姓名、班号、所借图书名和借书日期。
并用相关数据进行测试。
(3)在Library数据库中创建一个多语句表值函数pbook,返回系名和该系所有学生所借图书的平均价格。
并用相关数据进行测试。
(4)设计一个存储过程,查询每种图书品种的数目。
并用相关数据进行测试。
(5)设计一个存储过程,采用模糊查询方式查找借阅指定书名的学生,输出学号、姓名、班号和书名。
并用相关数据进行测试。
设计过程:(1)对应的参考程序如下:USE LibraryGOIF EXISTS(SELECT * FROM sysobjectsWHERE name='Sum' AND type='FN') --如果存在这样的函数则删除之 DROP FUNCTION SumGOCREATE FUNCTION Sum(@n int) --输入参数RETURNS intASBEGINDECLARE @s int,@i intSET @s=0SET @i=1WHILE @i<=@nBEGINSET @s=@s+@iSET @i=@i+1ENDRETURN(@s)ENDGOPRINT '1+2+...+60='+CAST(dbo.Sum(60) AS char(10))GO(2)对应的参考程序如下:USE LibraryGOIF EXISTS(SELECT * FROM sysobjects --如果存在这样的函数则删除之WHERE name='nbook' AND (type='IF' OR type ='TF'))DROP FUNCTION nbookGOCREATE FUNCTION nbook(@dname char(16))--建立函数nbookRETURNS TABLE --返回表,没有指定表结构,这是内联表值函数的特征ASRETURN(SELECT s.学号,s.姓名,s.班号,b.图书名,bor.借书日期FROM student s,depart sc,borrow bor,book bWHERE s.班号=sc.班号 AND s.学号=bor.学号 AND b.图书编号=bor.图书编号 AND sc.系名=@dname)GOSELECT *FROM nbook('计算机系')ORDER BY 学号GO(3)对应的参考程序如下:USE LibraryGOIF EXISTS(SELECT * FROM sysobjects --如果存在这样的函数则删除之WHERE name='pbook' AND (type='IF' OR type ='TF'))DROP FUNCTION pbookGOCREATE FUNCTION pbook() --建立函数pbookRETURNS @st TABLE(系名 char(16),平均价格 decimal(4,1))ASBEGININSERT @st --向@st中插入满足条件的记录SELECT sc.系名 AS '系名',AVG(b.定价) AS '平均价格'FROM depart sc,student s,book b,borrow borWHERE s.班号=sc.班号 AND s.学号=bor.学号 AND b.图书编号=bor.图书编号GROUP BY sc.系名RETURNENDGOSELECT * FROM pbook()GO(4)对应的参考程序如下:USE LibraryGO--若存在存储过程proc1,则删除之IF EXISTS(SELECT * FROM sysobjects WHERE name='proc1'AND type='P')DROP PROCEDURE proc1GO--创建存储过程proc1CREATE PROCEDURE proc1ASSELECT 图书名 AS '书名',COUNT(*) AS '数目'FROM bookGROUP BY 图书名GOEXEC proc1(5)对应的参考程序如下:USE LibraryGO--若存在存储过程proc2,则删除之IF EXISTS(SELECT * FROM sysobjects WHERE name='proc2' AND type='P')DROP PROCEDURE proc2GO--创建存储过程proc2CREATE PROCEDURE proc2(@bn char(16))ASDECLARE @pt char(16)SET @pt='%'+RTRIM(@bn)+'%'SELECT s.学号,s.姓名,s.班号,b.图书名FROM student s,book b,borrow borWHERE s.学号=bor.学号 AND b.图书编号=bor.图书编号AND b.图书名 LIKE @ptORDER BY s.班号GOEXEC proc2 '数'上机实验题8相关知识:第15章。
数据库上机习题及答案
数据库上机习题及答案 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.写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。
数据库原理上机作业实验4-5
实践是检验真理的唯一标准
五、思考题:
什么情况下需要使用关系的别名?别名的作用范围是什么?
答:在简化书写和子查询的情况下。作用范围:区分先后查询的同一关系区。
上机实验五——SELECT语句高级格式和完整格式的使用
一、实习目的:
掌握SELECT语句的嵌套使用方法,能使用SQL Server2000对表作复杂查询。
1union命令只会选取不同的值2unionall命令和union命令几乎是等效的unionall命令会列出所有的值当既能用连接词查询又能用嵌套查询时应该选择哪种查询较好
学号:15905125 姓名:吴鑫达 班级:计算机一班 上机时间:2016/5/13
数据库版本:MS SQL 2008 R2
上机实验四——SELECT语句基本格式的使用
截图:
④找出所有姓李的学生的个人信息;
语句:Select*
FromStudent
WhereSnamelike'李%';
截图:
⑤找出学生李勇所在班级的学生人数;
语句:selectCOUNT(*)as'学生人数'
fromStudent
whereClnoin(
selectClno
fromStudent
whereSname='李勇'
whereInyear='2000'ANDSpeciality='计算机软件');
截图:
2.试一下以下语句是否正确:
SELECT eno,basepay,service
FROM salary
WHERE basepay<AVG(basepay)
第五次上机--数据库应用
5.用户及权限的管理●实验目的:掌握创建用户的方法,理解用户的管理方式。
掌握直接赋权的方法,理解权限的使用方式。
●实验内容:(1)、创建用户,用户名为自己的学号,默认表空间为tb2_16k,临时表空间为temp,在表空间tb2_16k上的配额为10M,在tb2_2k表空间上的配额为20M。
1.Create tablespace tb2_16kDatafile 'e:\ora\tb16441231.dbf'Size 100mAutoextend on next 2m maxsize 200m2.Create tablespace tb2_2kDatafile 'e:\ora\tb441231.dbf'Size 100mAutoextend on next 2m maxsize 200m3.Create user d131441231 identified by d441231Default tablespace tb2_16kTemporary tablespace tempQuota 10M on tb2_16kQuota 20M on tb2_2k;(2)、给第1题中的用户赋权,使得此用户可以创建表、查询所有用户(包括SYS)的表的内容,但此权限不可以转让;此用户还可以删除别的用户的表结构,可以登录,这两个权限可传递给别的用户。
1.Grant create any table, select any tableTo d131441231;2.Grant alter any table, create sessionTo d131441231With admin option;(3)、给第1题的用户赋权,在表scott.emp表上有插入记录的权限,可以修改scott.emp表记录中ename字段的信息,但此权限不可以转让;此用户还可以更新scott.dept表中记录的权限,此权限可以传递给别的用户。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实用数据库上机作业
建立二张数据表,一张是员工信息表(Employee),一张是部门信息表(Department)。
Employee包括:员工编号(EmployeeId, int、员工姓名(EmployeeName, varchar(20))、员工性别(EmployeeSex, nchar(1))、员工年龄(EmployeeAge, smallint)雇佣时间(HireDate, smalldatetime)、基本工资(BaseWage, money)部门编号(DepartmentId, char(3)等
Department包括:部门编号(DepartmentId, char(3)、部门名称(DepartmentName, varchar(20))、负责人(Principal, varchar(20))等
注:以上表中字段名最好使用英文或拼音。
一.建立存储过程并写出调用过程
●无参数存储过程
创建一个存储过程,用于返回员工信息表中所有男员工的平均工资
●有参数存储过程
创建一个存储过程,根据传入的性别,返回员工的姓名和基本工资
●有输出参数存储过程
创建一个存储过程,传入年龄的上限和下限,返回该年龄段的员工的平
均工资并利用输出参数返回。
(测试调用情况)。