实用数据库上机作业(第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:给定一个借书证号,查询该读者是否可借书。
- 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))等
注:以上表中字段名最好使用英文或拼音。
一.建立存储过程并写出调用过程
●无参数存储过程
创建一个存储过程,用于返回员工信息表中所有男员工的平均工资
●有参数存储过程
创建一个存储过程,根据传入的性别,返回员工的姓名和基本工资
●有输出参数存储过程
创建一个存储过程,传入年龄的上限和下限,返回该年龄段的员工的平
均工资并利用输出参数返回。
(测试调用情况)。