数据库上机模拟题

合集下载

数据库上机练习题

数据库上机练习题

数据库上机练习题数据库上机练习题在学习数据库课程时,上机练习题是非常重要的一部分。

通过上机练习,我们可以巩固理论知识,提高实践能力,并且更好地理解数据库的概念和应用。

本文将介绍一些常见的数据库上机练习题,帮助读者更好地应对这些挑战。

一、基本查询数据库的基本查询是我们在实际应用中最常用的功能之一。

在上机练习中,我们通常需要编写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;四、数据更新除了查询,数据库还提供了数据更新的功能。

数据库模拟试题+参考答案

数据库模拟试题+参考答案

数据库模拟试题+参考答案一、单选题(共82题,每题1分,共82分)1.数据库管理系统的作用描述,最恰当的是( )A、保障数据的易操作性B、保证数据的安全C、对数据进行集中管理,保障数据的安全性、共享性和一致性D、分散管理,保障数据处理的有效性和数据共享正确答案:C答案解析:数据库管理系统的目的就是对数据实施集中管理,提供相应的数据模型,保障数据的安全性、共享性和一致性。

2.关闭Access数据库可以使用的快捷键是 ( )A、Alt+F4B、Alt+ F + XC、Alt+ F +CD、Ctrl+O正确答案:C3.在access2010数据表中,要直接显示姓名中有“李”字的记录的方法是( )A、排序B、隐藏C、筛选D、冻结正确答案:C4.使用表设计器定义表中字段时,不是必须设置的内容是()A、数据类型B、字段大小C、说明D、字段名称正确答案:C5.关于主关键字(即主键)的说法正确的是( )。

A、主关键字的数据能够重复B、主关键字中不许有重复值和空值C、一个表可以设置多个主关键字D、主关键字只能是单一的字段正确答案:B答案解析:A.作为主关键字的字段,它的数据不能重复;C.一个表可以设置一个主关键字;D.主关键字可以是多字段。

6.在access中,用户在写入数据库期间,其他用户都无法使用该数据库,说明该用户在打开数据库时选取的打开方式是()A、共享方式B、只读方式C、独占方式D、独占只读方式正确答案:C答案解析:一旦用户采用独占方式打开,则当前用户可以对数据库进行读写,其他用户无法打开数据库。

7.为加快对某字段的查找速度,应该( )。

A、使该字段数据格式一致B、防止在该字段中输入重复值C、使该字段成为必填字段D、对该字段进行索引正确答案:D8.创建Access 2010数据库时,默认的文件保存目录在()A、TempB、PicturesC、DocumentsD、Desktop正确答案:C答案解析:创建数据库时,默认的保存路径在Documents(我的文档)。

SQL数据库上机训练题

SQL数据库上机训练题

SQL数据库上机训练题题目一:选择数据以下是一个名为"employees"的表的结构:请编写SQL语句,选择出年龄大于等于30岁的员工:SELECT *FROM employeesWHERE age >= 30;题目二:更新数据以下是一个名为"products"的表的结构:请编写SQL语句,将价格高于2.00的水果产品的价格增加10%:UPDATE productsSET price = price * 1.1WHERE price > 2.00;题目三:删除数据以下是一个名为"customers"的表的结构:请编写SQL语句,删除名为"David"的顾客的记录:DELETE FROM customersWHERE name = 'David';题目四:排序数据以下是一个名为"orders"的表的结构:请编写SQL语句,按照订单日期降序排列:SELECT *FROM ordersORDER BY order_date DESC;题目五:聚合数据以下是一个名为"sales"的表的结构:请编写SQL语句,计算每个产品的总销售量和总销售额:SELECT product_id, SUM(quantity) AS total_quantity,SUM(quantity * price) AS total_salesFROM salesGROUP BY product_id;通过完成以上训练题,可以加强你对SQL查询和操作的理解,并提升你的技能水平。

加油!。

数据库上机考试试题及答案

数据库上机考试试题及答案

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.属性值都不相同语言集数据查询、数据操作、数据定义和数据控制功能于一体,语句INSERT、DELETE、UPDATA实现下列哪类功___A_____。

A. 数据查询B. 数据操纵C. 数据定义D. 数据控制Server 2000 采用的身份验证模式有( D )。

(A)仅Windows身份验证模式(B)仅SQL Server身份验证模式(C)仅混合模式(D)Windows身份验证模式和混合模式Server 2000 企业版可以安装在操作系统上。

( C )(A)Microsoft Windows 98(B)Microsoft Windows 2000 Professional(C)Microsoft Windows 2000 Server(D)Microsoft Windows XPServer是一个( C )的数据库系统。

(A)网状型(B)层次型(C)关系型(D)以上都不是语言中,删除一个视图的命令是( B )。

A. DELETEB. DROPC. CLEARD. REMOVE语言中,删除记录的命令是( A )。

A. DELETEB. DROPC. CLEARD. REMOVE14.以下触发器是当对[employee表]进行( D )操作时触发。

数据库上机题

数据库上机题

现有一个商店的数据库,记录顾客及其购物情况,由下面三个表组成:商品(商品号,商品名,单价,商品类别,供应商);顾客(顾客号,姓名,住址);购买(顾客号,商品号,购买数量);建表,在定义中要求声明:1)每个表的主外码;2)顾客的姓名和商品名不能为空值;3)单价必须大于0,购买数量必须在0到20之间;1.往表中插入数据:商品(M01,佳洁士,8.00,牙膏,宝洁;M02,高露洁,6.50,牙膏,高露洁;M03,洁诺,5.00,牙膏,联合利华;M04,舒肤佳,3.00,香皂,宝洁;M05,夏士莲,5.00,香皂,联合利华;M06,雕牌,2.50,洗衣粉,纳爱斯;M07,中华,3.50,牙膏,联合利华;M08,汰渍,3.00,洗衣粉,宝洁;M09,碧浪,4.00,洗衣粉,宝洁)顾客(C01,Dennis,海淀;C02,John,朝阳;C03,Tom,东城;C04,Jenny,东城;C05,Rick,西城;)购买(C01,M01,3;C01,M05,2;C01,M08,2;C02,M02,5;C02,M06,4;C03,M01,1;C03,M05,1;C03,M06,3;C03,M08,1;C04,M03,7;C04,M04,3;C05,M06,2;C05,M07,8;)2.用SQL语句完成下列查询:(1)检索购买了供应商"宝洁"产品的所有顾客;(2)检索买的商品包括了顾客"Dennis"所购买商品的顾客(姓名);(3)检索牙膏卖出数量最多的供应商。

(4)检索至少购买了两种商品的所有顾客(5)检索全部顾客都购买过的商品(6)将所有的牙膏商品单价增加10%。

(7)删除从未被购买的商品记录。

现要为学校建立一个数据库,设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生..现要建立关于系、学生、班级的数据库,关系模式为:学生STUDENT(学号,姓名,年龄,班号)班CLASS(班号,专业名,系名,入学年份)系DEPARTMENT(系号,系名)试用SQL语言完成以下功能:1建表,在定义中要求声明:(1)每个表的主外码.(2)每个班级的人数不能超过30人.(3)学生的年龄介于15到40岁之间.(4)学生姓名不能为空.(5)只有班里没有学生的时候,才能删除该班级.2插入如下数据CLASS(101,软件,计算机,1995;102,微电子,计算机,1996;111,无机化学,化学,1995;112,高分子化学,化学,1996;121,统计数学,数学,1995;131,现代语言,中文,1996;141,国际贸易,经济,1997;142,国际金融,经济,1996;)STUDENT(8101,张三,18,101;8102,钱四,16,121;8103,王玲,17,131;8105,李飞,19,102;8109,赵四,18,141;8110,李可,20,142;8201,张飞,18,111;8302,周瑜,16,112;8203,王亮,17,111;8305,董庆,19,102;8409,赵龙,18,101;8510,李丽,20,142)DEPARTMENT(001,数学;002,计算机;003,化学;004,中文;005,经济;)3完成以下查询功能(1)找出所有姓李的学生,并按其年龄由小到大排序.(2)列出所有开设超过两个专业的系的名字.(3)列出学生人数大于等于2的系的编号和名称.4学校又新增加了一个物理系,编号为006.5学生张三转到化学系111班,请更新相关的表.设计零售公司的数据库:售货员(员工号,姓名,住址),商品(商品号,商品名,单价),制造商(制造商名,制造商地址,电话),多个商品可以由一个售货员售出,一个商品也可以由多个人员售出,一件商品可以有多个制造商. 要求:1建表:要有主外码定义,商品价格大于0.2插入:每个表最少4条,保证查询结果不为空.3找出Mike卖出的所有商品的商品名.4找出提供商品种类最多的制造商名.5更新:将“统一冰红茶“的价格降低3%.6删除:单价低于一元的商品.有某个学生运动会比赛信息的数据库,保存了如下的表:运动员(运动员编号,运动员姓名,运动员性别,所属系号)项目(项目编号,项目名称,项目比赛地点)成绩(运动员编号,项目编号,积分)请用SQL语句完成如下功能:1.建表,注意满足如下要求:a)表名必须加自己的帐号作前缀,比如“d1*******运动员”b)定义各个表的主码外码约束c)运动员的姓名和所属系别不能为空值.d)积分要么为空值,要么为6,4,2,0,分别代表第一,二,三名和其他名次的积分,注意名次可以有并列名次,后面的排名不往前提升,例如,如果有两个并列第一,则没有第二名.2.往表中插入数据:运动员(1001,李明,男,计算机系1002,张三,男,数学系1003,李四,男,计算机系1004,王二,男,物理系1005,李娜,女,心理系1006,孙丽,女,数学系)项目(x001,男子五千米,一操场x002,男子标枪,一操场x003,男子跳远,二操场x004,女子跳高,二操场x005,女子三千米,三操场)积分(1001,x001,61002,x001,41003,x001,21004,x001,01001,x003,41002,x003,61004,x003,21005,x004,61006,x004,4)3.完成如下查询a)求出目前总积分最高的系名,及其积分.b)找出在一操场进行比赛的各项目名称及其冠军的姓名c)找出参加了张三所参加的所有项目的其他同学的姓名4.经查张三因为使用了违禁药品,其成绩都记0分,请在数据库中作出相应修改.5.经组委会协商,需要删除女子跳高比赛项目.设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生..现要建立关于系、学生、班级的数据库,关系模式为:班CLASS(班号,专业名,系名,入学年份,人数)学生STUDENT(学号,姓名,年龄,班号)系DEPARTMENT(系号,系名)试用SQL语言完成以下功能:1建表,在定义中要求声明:(1)每个表的主外码.(2)每个班级的人数不能超过30人.(3)学生的年龄介于15到40岁之间.(4)学生姓名不能为空.2插入如下数据CLASS(101,软件,计算机,1995,20;102,微电子,计算机,1996,30;111,无机化学,化学,1995,29;112,高分子化学,化学,1996,25;121,统计数学,数学,1995,20;131,现代语言,中文,1996,20;141,国际贸易,经济,1997,30;142,国际金融,经济,1996,14;)STUDENT(8101,张三,18,101;8102,钱四,16,121;8103,王玲,17,131;8105,李飞,19,102;8109,赵四,18,141;8110,李可,20,1428201,张飞,18,111;8302,周瑜,16,112;8203,王亮,17,111;8305,董庆,19,102;8409,赵龙,18,101;8510,李丽,20,142)DEPARTMENT(001,数学;002,计算机;003,化学;004,中文;005,经济;)3完成以下查询功能(1)找出所以姓李的学生.(2)列出所有开设超过两个专业的系的名字.(3)列出人数大于等于2的系的编号和名字.4学校又新增加了一个物理系,编号为006.5学生张三退学,请更新相关的表.三个表:用户(用户编号,用户名,级别)题目(题目编号,分值,题目说明,难度)历史记录(用户编号,题目编号,flag,做题时间)建表说明:1.用户名不能为空2.难度只能取值1~33.flag要么取0,要么取1,0代表做错,1代表做对4.各表的主外键表名和字段名与题目相同(是汉字就用汉字,英文就用英文),各表均用"表名_准考证号"做为考生的表名数据:1用户表:u00001,xiaoli,0u00002,xiaowang,1u00003,zhaosi,2u00004,wangwu,1u00005,lina,2 题目表:q00001,3,aljflkajfklsdjfk,1q00002,6,lajfklsdjfkjdklfklasfjfklj,2q00003,8,klajfkdjfjdklfjklasjf,2q00004,10,jfklasdjfk3历史记录表:u00001,q00001,0,2004-02-1012:00:00 u00001,q00002,1,2004-02-1212:00:00 u00001,q00003,1,2004-02-1312:30:00 u00001,q00004,1,2004-02-1513:00:00 u00002,q00002,1,2004-02-1708:30:00 u00002,q00003,1,2004-02-1614:00:00 u00003,q00001,0,2004-02-1810:30:00 u00004,q00003,0,2004-02-1513:00:00 u00004,q00004,1,2004-02-2012:30:00 u00005,q00002,0,2004-02-1914:00:00 u00005,q00003,1,2004-02-2112:00:00数据是凭记忆写的,大体差不多,个别值有出入,不影响解题查询:1.a.列出所有答对难度为3的题目的用户,要求按用户名升序排序, 用户名相同的按用户编号排序(升,降均可)b.列出每个用户答对的同一难度题目分值的平均分.(该题有二义,就看你理解是否跟阅卷老师一样了, 为北大控制及格率埋下了伏笔,唉~~~~~~~~~~~~)c.求总分最高的用户.(小心该题,答对了才有分的啊~~~)2.列出在最近时间内答错题目的前三位用户.3.如果当用户答对5个题目,并且满足下列条件: a5个题目中至少有2个题目的难度在2级以上b5个题目的总分在25分以上就将该用户的级别升高一级.现有一个学生选修课程的数据库,其中存放以下三个表:学生(学号,姓名,性别,年龄,系别)课程(课程号,课程名,任课教师)选修(学号,课程号,分数)试用SQL语言完成下列功能:1建表,在定义中要求声明:(1)每个表的主外码;(2)学生的年龄介于16到40之间;(3)学生的姓名和课程名不能为空值;( 4)选课成绩要么为空值,要么取0到100之间的整数.2往表中插入数据学生(101,张三,男,18,计算机;102,李四,男,16,数学;103,王玲,女,17,中文;105,李飞,男,19,计算机;109,赵四,女,18,历史;110,李平,男,20,化学)课程(203,操作系统,程羽;279,高等数学,王备;210,现代文学,王丹;243,有机化学,沈同;204,数据结构,张青;)选修(101,203,82;105,203,59;102,279,90;101,279,88;105,279,82;110,279,68;109,210,72;103,210,90;110,243,92;101,204,85;105,204,91;102,204,56)3用SQL语句完成下列查询:(1)列出张三同学选修的所有课程的名称及其成绩.(2)列出所有课程都及格了的同学的名字.(3)列出在选修张青老师所教授课程的学生中,成绩最高的学生姓名及其成绩. 4删除所有成绩不及格的选课记录.5将105号同学选修203号课程的成绩改为该门课程的平均成绩某公司有很多类型的货车(小型货车,双轴货车,16轮货车等),货车要有货车号,货车类型(小型货车,双轴货车,16轮货车),载重量,有很多司机,每个司机可开多种类型的货车,司机要有司机号,姓名,地址,薪水,司机运输货物时有货物名称,目的地,出发时间,返回时,要更新记录,有返回时间,驾驶时间,公司有很多技师维修货车,技师要有技师号,姓名,地址,薪水,货车维修要有维修时间,取车时间,费用.要求:1.姓名不能为空,载重量大于3吨,司机的薪水不能少于2000,技师的薪水不能少于1500,每个表至少插入4条记录,能满足以下的查询2.求开过司机Joe开过的货车的司机的ID,姓名3.求货车维修费用的平均值4.对驾驶时间超过50小时的司机增加薪水5%,没超过的加3%5.删除维总修费用超过100,000的记录某汽车保险公司数据库需要保存人员,汽车,事故的信息.人员有社会保险号,姓名, 地址;汽车有牌照,生产年月,型号;事故有日期,驾驶员,事故损失量.假定每个人可以有多辆汽车.要求:1.设计数据库,建立必要的表来保存上述信息,定义表的时候要给出需要的主外定义,要求姓名不为空.2.插入相应数据使下诉检索不为空.3.找出在1998年其车辆出过车祸的人员总数.4.找出没有出过交通事故的人员的姓名5.统计每种车型所出的交通事故的总的数量.6.删除与JohnSmith有关的事故的记录.试创建一个公司雇员数据库,雇员有姓名、地址、所在城市,公司有公司名,以及公司所在城市,公司和雇员之间有雇佣关系,每个公司可雇佣多名雇员,该关系中还包括雇员的薪水,雇员和雇员之间有一个管理关系,每一个雇员都有另外一名雇员作为他的经理,一个经理人可以管理多名雇员.要求:设计你的数据库,并往数据库中插入一些数据.1、求为第一百货工作的所有雇员的姓名以及他们居住的城市.2、求数据库中比第一百货的所有雇员的薪水都高的雇员的姓名.3、删除为第一百货工作的所有雇员的记录.4、给第一百货的所有雇员加薪,若薪水高于一万,增加3%,否则增加5%.假定需要保存“图书“,读者,借阅和‘作者’信息以及他们之间的关系.其中图书有总编号,书名,作者,出版单位,单价等信息,读者有借书证号,姓名,性别,地址,作者有姓名,单位,性别,出生年月等信息,每位读者可以接阅多本书,每本书可以由多位读者借阅,借书时有借书日期.要求:1:设计数据库,建立合适的表来包出需要的信息,定义表的时候要给出外码的定义,书名,作者, 姓名不能为空,性别只能取男或女,借书日期必须许在1980年1月1日到2050年12月31日之间.2:往每个表中至少插入4条记录,并保证后面的查询结果不为空,.3:找出借书日期在2002年12月之前的读者和书名.4:给出每个出版社出版的单价在20元以下的书的总数.5:作者‘李通’现在改为笔名‘李不通’,请在数据库内作出相应的改变.6:删除所有在本数据库中没有其写的书的作者的信息.现有一个公司的部门及雇员的数据库,由下面三个表组成:雇员(雇员号,姓名,年龄,地址,薪水)部门(部门号,部门名,部门经理)工作(雇员号,部门号,在该部门工作的年限)试用SQL语言完成下列功能:①建表,在定义中要求声明⑴每个表的主外码⑵雇员的年龄介于18到55之间⑶雇员姓名和部门名不能为空⑷薪水取1000到50000之间整数②往表中插入数据雇员(E01,tom,35,海淀,8000 E02,dennis,24,朝阳,5000 E03,john,20,海淀,4000E04,rick,41,朝阳,7000 E05,bill,45,西城,7500 E06,frank,35,海淀,6000 E07,jank,25,东城,3000 E08,mike,23,东城,3500)部门(D01,人事,E04 D02,信息,E01 D03,销售,E05 D04,财务,E06)工作(E01,D02,6 E01,D03,1 E01,D04,2 E02,D01,2 E02,D04,0 E03,D02,0 E04,D01,4 E04,D02,1 E05,D03,2 E06,D04,4 E07,D04,1 E08,D03,2)③用SQL语句完成下列查询⑴求同时在三个部门工作的雇员和姓名⑵列出各部门的职工的工资总额,并按照总额大小降序排列⑶求和其部门经理住址相同的员工的姓名及经理姓名④为财务部门的雇员加薪,5年以下加5%,5年以上加3%⑤删除部门工作年限为0的工作记录,若删除后有雇员没有任何部门工作,删除其雇员记录设学校环境如下:一个系有若干个专业,每个专业一年只招一个班,每个班有若干个学生..现要建立关于系、学生、班级的数据库,关系模式为:班CLASS(班号,专业名,系名,入学年份,人数)学生STUDENT(学号,姓名,年龄,班号)系DEPARTMENT(系号,系名)试用SQL语言完成以下功能:1建表,在定义中要求声明:(1)每个表的主外码.(2)每个班级的人数不能超过30人.(3)学生的年龄介于15到40岁之间.(4)学生姓名不能为空.2插入如下数据CLASS( 101,软件,计算机,1995,20;102,微电子,计算机,1996,30;111,无机化学,化学,1995,29;112,高分子化学,化学,1996,25;121,统计数学,数学,1995,20;131,现代语言,中文,1996,20;141,国际贸易,经济,1997,30;142,国际金融,经济,1996,14; )STUDENT(8101,张三,18,101;8102,钱四,16,121;8103,王玲,17,131;8105,李飞,19,102;8109,赵四,18,141;8110,李可,20,142;8201,张飞,18,111;8302,周瑜,16,112;8203,王亮,17,111;8305,董庆,19,102;8409,赵龙,18,101;8510,李丽,20,142)DEPARTMENT(001,数学;002,计算机; 003,化学;004,中文; 005,经济;)3完成以下查询功能(1)找出所以姓李的学生.(2)列出所有开设超过两个专业的系的名字.(3)列出人数大于等于2的系的编号和名字.4学校又新增加了一个物理系,编号为006.5学生张三退学,请更新相关的表.。

计算机三级数据库技术(上机操作)机试模拟试卷36(题后含答案及解析)

计算机三级数据库技术(上机操作)机试模拟试卷36(题后含答案及解析)

计算机三级数据库技术(上机操作)机试模拟试卷36(题后含答案及解析)全部题型 2. 程序设计题程序设计题1.已知数据文件in.dat中存有300个四位数,并已调用读函数readl)at( )把这些数存入数组a中,请编写函数jsValue( ),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,冉把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。

最后nmin( )函数调用写函数writeDat( )把数组b中的数输出到文件out.dat中。

例如:7153,7+1=5+3,则该数满足条件存人数组b中,且个数cnt=cht+1。

8129,8+11=2+9,则该数不满足条件.忽略。

【试题程序】#include<stdio.h> int at3003.br3001,cnt=0;void readDat( );void writeDat( );jsValue( ) { } main( ) { int i;readDat( );jsValue( );writeDat( );printf(“cnt=%d\n”,cnt);for(i=0;i<ent;i++) printf(“b[%d]=%d\n”.i’b[i]);} void readDat( ) { FILE*fp; int i;fp=fopen(“in.dat”,“r”); for(i=0;i<300;i++) fscanf(fp,“%d,”,&a[i]);felose(fp); } void writeDat( ){FILE*fp;int i;fp=fopen(“out.dat”,“W”);fprintf(fp,“%d\n”,cnt); for(i=0;i<cnt;i++) fprintf(fp.”%d\n”,b[i]);fclose(fp);} 正确答案:jsValue( ){ int i,j;/*定义变量*/int a1,a2,a3,a4; int temp;for(i=0;i<300;i++) {a1=a[i]%10;/*数位分解*/a2=a[i]%100/10; a3=a[i]%1000/100;a4=a[i]/1000;if(a4+a3==a2+a1) /*判断条件*/b[cnt++]=a[i];} for(i=0;i<cnt 一1;i++) /*选择法排序*/for(j=i+1;j<cnt;j++) if(b[i]<b[j]) {temp=b[i]; b[i]=brj]; b[j]=temp; }}。

数据库上机实验题目和答案

数据库上机实验题目和答案

数据库上机实验题目和答案试用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(/doc/1411529677.html,o)>=26.每个学生选修的课程门数。

解法一:select so.sno sno,/doc/1411529677.html,ount,s.sname from(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课程的学生的平均分。

全国计算机等级三级数据库上机题库100题

全国计算机等级三级数据库上机题库100题
if(aa[i]>aa[j]) *则按原4位数的大小进行升序排序*/
{
temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
}
}
for(i=0;i<10;i++) /*将排序后的前10个数存入数组bb中*/
bb[i]=aa[i];
}
7. 函数ReadDat( )的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD( ),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat( )把结果xx输出到文件OUT7.DAT中。
/*如果4位数各位上的数字均是奇数*/
{
b[cnt]=a[i]; /*将满足条件的数存入数组b中*/
cnt++; /*统计满足条件的数的个数*/
}
}
for(i=0;i<cnt-1;i++) /*将数组b中的数按从大到小的顺序排列*/
for(j=i+1;j<cnt;j++)
{
a4=a[i]/1000; /*求4位数的千位数字*/
a3=a[i]%1000/100; /*求4位数的百位数字*/
a2=a[i] %100/10; /*求4位数的十位数字*/
a1=a[i] %10; /*求4位数的个位数字*/
if(a4%2!=0 && a3%2!=0 && a2%2!=0 && a1%2!=0)
【答案】
void jsVal()
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库上机模拟题
在D盘根目录下用自己的名字加“_DB”新建立一个文件夹(如:“张三_DB”)
一.在SQL Server Management Studio中建立满足如下要求的数据库:
(1)数据库名字为:ABC;
(2)此数据库包含两个数据文件,其中主数据文件的逻辑文件名为:Data1,物理文件名为Data1_data.mdf,初始大小为3MB,存放在新建目录下,增长方式为自动增
长,每次增加1MB,最多增长到10MB。

次要数据文件的逻辑文件名为:Data2,
物理文件名为Data2_data.ndf,初始大小为2MB,同主数据文件存放在相同的位
置,不自动增长。

(3)日志文件的逻辑文件名为:log1,物理文件名为log1_log.ldf,初始大小为2MB,同主数据文件存放在相同的位置,增长方式为自动增长,每次增加15%。

二.为描述销售人员对产品的销售情况,定义了三张表:销售人员表、产品表和销售情况表,分别用于描述销售人员的基本信息、产品的基本信息和销售人员与产品之间的销售情况。

写出在“ABC”数据库中定义这三张表的语句并创建这三张表,(请将语句以文件形式保存下来,文件名为“考生名.sql”,存放在新建的目录下。

可以将下述所有的SQL语句均保存到此文件中,在文件中要注明题号),三张表的结构为:
注:括号中为表名和列名的拼音表示,建表时用拼音表示表名和列名即可。

1.销售人员表(XSRYB)包括如下字段:
职工号(ZGH):普通编码定长字符型,6位长,主关键字
姓名(XM):普通编码定长字符型,10位长,非空,姓名不允许重复。

年龄(NL):整型,取值范围为20 ~ 60,允许空
地区(DQ):普通编码可变长字符型,10位长,允许空
邮政编码(YZBM):用户自定义类型MyType,类型为普通编码定长字符型,长度
6位,允许空。

电话(DH):普通编码定长字符型,12位长,取值形式为:“(3位数字)-6位数字”, 允许空
2.产品表(CPB)包括如下字段:
产品号(CPH):普通编码定长字符型,6位长,以字母P或C开头,主关键字
产品名称(CPMC):统一编码可变长字符型,20位长,非空,
产品类别(LB):统一编码定长字符型,6位长
产地(CD):普通编码定长字符型,10位长,非空
价格(JG):整型,非空
生产日期(SCRQ):小日期时间型,允许空,默认为系统当前日期
3.销售情况表(XSQKB)包括如下字段:
职工号(ZGH):普通编码定长字符型,6位长,非空
产品号(CPH):普通编码定长字符型,6位长,非空
销售日期(XSRQ):日期时间型,非空
销售数量(XSSL):小整型,非空
其中:(职工号,产品号,销售日期)为主关键字
职工号为参照销售人员表的外部关键字,产品号为参照产品表的外部关键字。

三.运行exam.exe程序解压缩数据文件(可解压到任何地方),解压缩的密码为“ABC33”。

利用SQL Server的导入导出向导,将“销售人员表和销售情况表.xls”和“产品表.txt”文件中的数据分别导入到上述三张表中。

四.利用数据库ABC中的三张表,在查询编辑器中实现如下要求的SQL语句,注明题号。

并将这些语句与上面建表时所写的语句保存在一起(注:要求下述语句均使用一条SQL语句完成)
1.查询2010年以前单笔销售数量最少的销售记录。

2.查询由多个产地生产的相同类别的产品,列出产品名称,类别及产地。

3.查询只销售过"电冰箱"类产品的销售人员信息。

4.查询销售过"创新牌音响"的销售人员的销售记录次数及平均销售数量,要求只列出销售记录次数大于2次且平均销售数量大于2件的情况。

5.查询2001年每个月每个产品的销售总数量,列出月份、产品号和销售总数量,结果先按月份升序排序,再按销售数量降序排序。

6.查询销售次数大于平均销售次数的人员信息。

7.列出"张晓峰"没有销售过的产品名称及价格信息。

8.查询销售过所有产品的销售人员的职工号。

9.查询被卖出次数最少的前10%的产品(包括没有被买出过的产品,包括并列的情况),列出产品名称。

10.查询产品表按价格降序排序后排在第6~10位的产品信息。

11.将销售人员表中邮政编码列的类型修改为统一编码定长字符型,6位长,不能为空
12.根据产品销售数量对产品价格进行调整。

产品销量为0,不调整;产品销量小于5,产品价格下调5%;产品销量在5到10之间,产品价格下调10%;产品销量大于10,产品价格下调15%。

五.视图与存储过程
1.通过视图分步骤解决以下问题:查询每种产品的销售总额占所在类别所有产品销售总额的比例,要求保留到小数点后2位。

2.创建满足如下要求的存储过程:查询指定产品在指定日期之后(不包括该日期)被销售的次数。

其中:产品和日期为输入参数,产品名称默认为“YY牌电冰箱”,销售次数为输出参数,要求判定指定产品是否存在。

创建完毕后执行此存储过程,查询产品名称为默认值的产品在2000年1月1日之后的销售记录,并按照下图格式打印结果:
六.用游标实现按如下报表形式显示结果的T-SQL语句。

该报表统计全部销售人员的销售
总业绩及销售明细记录,要求按照总业绩降序显示,其中总业绩为所有单笔销售金额之和(销
售金额=销售数量*价格)。

有关游标的语句格式如下:
●声明游标:declare 游标名 cursor for select 语句
●打开游标:open 游标名
●关闭游标:close游标名
●提取数据:fetch next from 游标名 into……
●释放游标:deallocate 游标名
报表形式大致如下:
七.在SQL Server Management Studio中完成如下操作:
1.创建一个SQL Server身份验证的登录账户:登录名为loginUser,密码为空,授予loginUser具有创建、更改、删除和还原任何数据库的权限,默认数据库为ABC,其中对应loginUser的数据库用户名为dbUser。

2.授予dbUser有创建视图的权限,有更新销售人员表中职工号和姓名两列的权限,且dbUser有权将该权限授予其它用户。

3.创建一个数据库角色MyRole,dbUser是该角色的成员。

用最优方式进行如下安全控制:MyRole角色下所有成员有查询所有表的权限,但dbUser不能查询销售人员表中的数据。

4. 创建一个新的SQL Server身份验证的登录账户logUser2,只允许其访问数据库ABC
中“电冰箱”类别的销售情况信息。

如何实现?
八.在SQL Server Management Studio中完成如下操作:
1.将数据文件夹中的studb1.bak和studb2.bak全部恢复到SQL Server2008中,目标数据库名为StuDB。

2.对StuDB数据库进行完整备份、差异备份和事务日志备份各一次,以临时性备份的方式,将备份文件存入考试文件夹,备份文件名为studb.bak。

相关文档
最新文档