《数据库技术与应用》复习样题
在C盘根目录上创建文件夹DataBase;将“研究生管理-备份-20161009.BAK”复制到C盘根目录下;然后通过界面操作将该备份文件还原为“研究生管理”数据库
粘贴SQL命令时,应使用“选择性粘贴-文本”
编写SQL命令:
1. 创建数据库stud1:有两个数据文件,分别保存在C盘根目录下\ABC和D盘根目录下\123,物理文件名分别为s1.mdf和s2.ndf,逻辑文件名分别为s1_data和s2_data,大小分别为10MB和20MB,最大尺寸为100MB很200MB,增长方式分别为5%和5MB;要求日志文件的逻辑名为s_log,保存在D盘根目录\123上,文件名s_log.ldf,5MB,最多为25MB,按每次25%速率增加。
create database stud1
on
( name=s1_data,
filename='c:\ABC\s1.mdf',
size=10,
maxsize=100,
filegRowth=5%
),
(name=s2_data,
filename='e:\123\s2.ndf',
size=20,
maxsize=200,
filegrowth=5
)
log on
(name=s_log,
filename='e:\123\s_log.ldf',
size=5,
maxsize=25,
filegrowth=25%
)
2. 用SQL命令在“研究生管理”数据库中创建下面的数据表,该表以“学生信息”为表名保存。SQL代码:
学号
姓名
出生日期
性别
语文
数学
char(7)
nvarchar(3)
datetime
nchar(1)
int
int
use 研究生管理
go
create table 学生信息
(学号 char(7),
姓名 nvarchar(3),
出生日期 datetime,
性别 nchar(1),
语文 int,
数学 int
)
3. 用SQL命令为学生信息表输入3条记录,数据见下表。SQL代码:
学号
姓名
出生日期
性别
语文
数学
2012001
董明
1992-06-13
男
78
91
2012002
欧阳文
1991-12-25
女
87
89
2012003
马自达
1993-01-04
男
68
93
insert into 学生信息(学号,姓名,出生日期,性别,语文,数学)
values('2012001','董明','1992-06-13','男',78,91)
go
insert into 学生信息(学号,姓名,出生日期,性别,语文,数学)
values('2012002','欧阳文','1991-12-15','女',87,89)
go
insert into 学生信息(学号,姓名,出生日期,性别,语文,数学)
values('2012003','马自达','1993-01-04','男',68,93)
4. 创建默认值对象sex_defa,取值“女”,并将其分别绑定到研究生表的性别字段、导师表的性别字段,并验证其作用。SQL代码:
create default sex_defa as'女'
go
exec sp_bindefault'sex_defa','研究生.性别'
go
exec sp_bindefault'sex_defa','导师.性别'
5. 在“研究生管理”数据库中创建“学生”表,字段包括学号、姓名、性别和年龄,要求同时建立check约束(无名),使性别限定于“男”或“女”,而年龄的范围限制在18~22岁(约束名age_check),并验证其作用。SQL代码:
create table 学生
(学号 char(7),
姓名 nvarchar(3),
性别 nchar(1) check(性别='男'or 性别='女'),
年龄 int constraint age_check check(年龄>=18 and 年龄<=22)
)
6. 用SQL代码创建规则对象sex_rule(限定“男”或“女”),绑定到研究生表的性别字段;创建规则对象age_rule(限定数值30~60),绑定到导师表的年龄字段上,并验证其作用。SQL代码:
create rule sex_rule as @a='男' or @a='女'
go
exec sp_bindrule'sex_rule','研究生.性别'
go
exec sp_bindrule'sex_rule','导师.性别'
go
create rule age_rule as @a>=30 and @a<=60
go
exec sp_bindrule'age_rule','导师.年龄'
7. 将“研究生管理”数据库中研究生表的“学号”字段定义为主键。SQL代码:
alter table 研究生
add primary key(学号)
8. 用SQL代码将导师表的“导师编号”字段定义为主键,约束名th_pk;将研究生表的“导师编号”定义为外键,参照表为导师表,约束名为st_fk。完成后在研究生表中输入数据进行约束验证。SQL代码:
alter table 导师
add constraint th_pk primary key(导师编号)
go
alter table 研究生
add constraint st_pk foreign key(导师编号) references 导师(导师编号)
9. 输出导师表中每位导师的所有信息。SQL命令:
select * from 导师
10. 显示所有研究生的学号、姓名、性别和入学分数。SQL命令:
select 学号,姓名,性别,入学分数 from 研究生
11. 显示研究生所学的全部研究方向,不能重复。SQL命令:
select distinct 研究方向 from 研究生
12. 输出每位导师的姓名、年龄及其出生年份。出生年份的计算方法是用今年年份减去年龄。SQL命令:
select 姓名,年龄,2016-年龄 as 出生年份 from 导师
13. 输出入学分数在300~400之间的女研究生全部信息(用Between完成)。SQL命令:
select * from 研究生
where 入学分数 between 300 and 400 and 性别='女'
14. 输出研究生表中入学分数最高的三位学生的情况。
select top 3 * from 研究生
order by 入学分数 desc
15. 输出研究生的人数、入学平均分。SQL代码:
select COUNT (*) as 人数,AVG(入学分数) as 入学平均分 from 研究生
16. 统计不同性别导师的平均年龄。SQL代码:
select AVG(年龄) as 平均年龄,性别 from 导师
group by(性别)
17. 输出每门课程的最高分和最低分。SQL代码:
select 课程.课程名,max(成绩) as 最高分,MIN(成绩)as 最低分
from 课程 inner join 成绩 on 成绩.课程号=课程.课程号
group by 课程.课程名
18. 统计各个研究方向的研究生的人数、入学分数最高分。SQL代码:
select COUNT(*)as 人数,MAX(入学分数)as 入学分数最高分,研究方向
from 研究生
group by(研究方向)
19. 输出汇总表,内容为相关导师姓名、性别、职称及其所带研究生姓名、性别、入学分数和研究方向。SQL代码:
select 导师.姓名,导师.性别,职称,研究生.姓名,研究生.性别,入学分数,研究方向
from 研究生 inner join 导师 on 导师.导师编号=研究生.导师编号
20. 输出研究生马腾跃所学全部课程的名称和成绩。SQL代码:
select 课程.课程名,成绩.成绩
from 课程 inner join 成绩 on 成绩.课程号=课程.课程号
where 学号=(select 学号 from 研究生
where 姓名='马德里')
21. 输出高于入学分数平均分的研究生姓名、入学分数。SQL命令:
select 姓名,入学分数
from 研究生
where 入学分数> (select AVG(入学分数) from 研究生 )
22. 将研究生马德里和马德望的研究方向修改为“考古学”。SQL代码:
update 研究生 set 研究方向='考古学'
where 姓名 in('马德里','马德望')
23. 为鼓励报考考古学研究方向,凡报考考古学研究方向者入学分数可加分20。SQL代码:
update 研究生 set 入学分数=入学分数+20
where 研究方向='考古学'
24. 将马腾跃所带研究生的入学分数增加10分。SQL代码:
update 研究生 set 入学分数=入学分数+10
where 导师编号=(select 导师编号 from 导师 where 姓名='马腾跃')
25. 创建视图“录取”,内容为被录取研究生的情况,包括入学分数达到300分(历史专业放宽到230分)考生的姓名、性别、入学分数和研究方向。SQL代码:
create view 录取
as
select 姓名,性别,入学分数,研究方向 from 研究生
where 入学分数>=300 or 入学分数>=230and 研究方向='历史'
26. 创建视图t_s,包括全体导师的姓名、性别、职称,以及全体研究生的姓名、性别、入学分数、研究方向,并能反映出师生关系。SQL代码:
create view t_s
as
select 导师.姓名 as 导师姓名,导师.性别 as 导师性别,职称,研究生.姓名 as 研究生姓名,研究生.性别 as 研究生性别,研究方向,入学分数
from 导师 inner join 研究生 on 研究生.导师编号=导师.导师编号
ADO.NET技术访问数据库
1. 打开“ADO_NET(空)”文件夹,双击ADO_NET.sln,打开应用程序项目,应用Form1_Load事件在3个文本框中显示第一位研究生的学号、姓名、入学分数,并用两个单选按钮显示其性别。
第1题 第2、3题
2.
添加一个复选框,标题为“已录取”。假定以300为录取分数线,入学分数达到或超过300分则选定复选框,否则不选;复选框不允许鼠标单击选定。
3. 添加命令按钮,标题为“下一位”,单击后可通过文本框、单选按钮、复选框显示下一位研究生的情况;到达最后的研究生后,再次单击该按钮则显示第一位研究生。
4. 添加“男生最高分”按钮,单击后用MessageBox消息框输出男研究生中入学分数最高者的姓名及其入学分数。
继续阅读
本文档为【_SQL复习完全体】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。