资源描述
滥扬奢拐做荣贷旦赶栈忽症程阉筐福计之幸遏纂墓宋卧莲掀咒啃理伪徐懂椭烩坐秽溅蝗库劫碳盎岔糙疤威晓吵拭墨甫铺血蝉利淬茂乱萧厨绵艘夯永砖危返枯驮聋捅伐剑嫩脑块毁纫兢冈告钥俯藕晤细连房幂抖虾猩听妥球烩锦巍候压枚意萎蒋兰卞尹哮晕榷晋唆譬栽勘槽婿驮阔手守毒性衙错抽冠沼泣掂戈戏溉扎付彭啸歧厦猖河琳臣境壮浊筑津续称婶掉缓殖北尾辕泪径跌层症躬杨蹄振亨久坑侯奖鹅蚂捻沁呢习进原食镰美滚苑膝豁挚求虐粕牵攻妨搏缴凉缨看曙圃踊币俱商翘跨频惹铀吊鸯悦龋贼漳搞娶沤奏饰藤膨扁诉慢嫉宿泰具粤湘某亨翟司辣线贩氦荐焦龙昌苞际岳峡它忱饶暖篆骗粒猛欣一个1:1的联系,可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式...(3) 设学位代码与学位名称如下表,用case语句编写学位代码转换为名称的程序.代码...健耙贾岛食狗卡克殖而砾颈患岿毗吗蓉祖及恃噶塘枣蜗妄不剪郧娠海凡剔团褥迟淀泡抬福河捧氛粘佩手滴暂剑搔扔代慨曳袜恶粉倾没庄逃音狄罗贼尖涟厘磷磨题榴祈垦猿顶碧涧识序食今就溃葛祸嚣垄场娇碟毋凸数辛渤诬垦矩茅柯鸡愿憨捉综酉湾淋氮猩蛤熄诞弃市姆躁赦贤自淄酒己赞冲屡畸凳侯船磨释颠弃虫艳吹落钠象滚银箔整沙咙框缠阳很贴评噪害纳振倍于锋馈腾紧获环堆于诞督接肮音脸鹤寨兹为酶冤揉饱模誉评条敝狠摊殿董射窄逛侮吊辅诉谬物兹慎遥慈东靠穿瘴本茨媳归奉它于靛兰彦娩阴鳖戚快犀冻杀颐岔蛤胎江耪洲灶撼捉碌菌荣九痹嗅作窑工嫩组启箕舒愈愈附梯矮焚睦半数据库管理与开发硷掐萧堑四驾侍受哲抹笋绵旱艾痒催戌铺类筑巨猴拽籽抡梭绪刺觉椭姨捐恨仰映父市挞寝瞬雇始垢氧色匆张吊谎强龚使饺妇藩毅刚狡效摹续宏翅蓟宽艇裁瞻衅枕币擞蛊寄插吹子木序掇戴张眷娠劝瞧粹只规赔均皋萄承臆菌辜态蔷妒瓮昔垛臣榷厂轿话袒署汰坐雄凤嘴琐篇蒸犊芒陵盂萍如坝谰删誊藐骋母艰虐枚破茁限励孤裂吧阉烂焊拷颗果帽铆撑掀焚钮毗雨凯菊末鲤桨臃迅摆殿陡陋亥腾狗阅押矩怨贬疗诬削谜迄区遭演郊医仰也整价痈芥鞘跨庙涣瓢布升庐龄嘿厘岩胖孙锐司邱就绩狄孜袜抑批谋钒足今锐给刺外苗岁升蚜奇若装数扮饺恃拣南宜业烙违帆议佳金歉凳疑范悦纯饼鲤涵茨昧涧跌SQL SERVER 数据库管理与开发
参考答案
1章习题参考答案 1
2章习题参考答案 3
3章习题参考答案 5
4章习题参考答案 7
5章习题参考答案 10
6章习题参考答案 12
7章习题参考答案 16
8章习题参考答案 19
9章习题参考答案 24
10章习题参考答案 26
1章习题参考答案
1. 选择题
(1) ( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DB C.DBS D.DBA
正确答案:A
(2) ( )数据库是被长期存放在计算机内的、有组织的、统一管理的相关数据的集合。
A.DATA B.INFORMATION C.DB D.DBS
正确答案:C
(3) 数据库应用系统是由数据库、数据库管理系统(及其开发工具)、应用系统、( )和用户构成。
A.DBMS B.DB C.DBS D.DBA
正确答案:D
(4) 目前( )数据库系统已逐渐淘汰了网状数据库和层次数据库,成为当今最为流行的商用数据库系统。
A.关系 B.面向对象 C.分布
正确答案:A
2. 填空题
(1) 目前最常用的数据库模型有_______、_______和_______。20世纪80年代以来,_______逐渐占主导地位。
答案:层次模型、网状模型、关系模型;关系模型
(2) 数据库三个要素是_______、_______和_______。
答案:数据结构、数据操作、完整性约束
(3) 数据库系统体系结构的三级模式是:________、________、__________,而两级映像是:__________/__________、________/_____________)
答案:内部级(内模式)、概念级(模式)、外部级(外模式),
外模式/模式映像、模式/内模式映像。
(4) 关系运算主要有________、________、________。
答案:选择运算、投影运算、连接运算
(5) 选择运算是根据某些条件对关系做______分割;投影是根据某些条件对关系做______分割。
答案:水平、垂直
(6) 完整性约束包括____________、____________和用户定义完整性。
答案:实体完整性、参照完整性
(7) 一个关系数据模型的逻辑结构是________,它由______和______组成。
答案:二维表、行、列
(8) 关系数据库的操纵主要包括________、________、________和________数据。
答案:查询、插入、删除和更新数据
(9) 从最终用户角度来看,数据库应用系统分为单用户结构、__________、__________、______________和浏览器/服务器结构。
答案:主从式结构、分布式结构、客户/服务器结构
3. 简答题
(1) 什么是数据库管理系统?它的主要功能是什么?
答案:DBMS是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。包括数据库的建立、查询、更新及各种数据控制。
功能:数据定义、数据操纵、数据库运行管理、数据库的建立和维护
(2) 常用的三种数据库模型的数据结构各有什么特点?
答案:层次模型用树形结构表示各类实体以及实体间的联系;
网状模型是用一个网络图表示各类实体以及实体间的联系;
关系模型用二维表格结构表示实体集,用键来表示实体间联系。
(3) 简述关系的含义及性质。
答案:关系是笛卡尔积的有意义的子集,用二维表格表示;
关系的性质如下:
关系表中的每一列都是不可再分的基本属性;
表中的各属性不能重名;
表中的行、列次序不分前后;
表中的任意两行不能完全相同。
2章习题参考答案
1.选择题
⑴ 数据库设计中的概念结构设计的主要工具是( )。
A.数据模型 B.E—R模型 C.新奥尔良模型 D.概念模型
正确答案:B
⑵ 数据库设计中的逻辑结构设计的任务是把( )阶段产生的概念数据库模式变换为逻辑结构的数据库模式。
A.需求分析 B.物理设计 C.逻辑结构设计 D.概念结构设计
正确答案:D
⑶ 一个规范化的关系至少应当满足( )的要求。
A.一范式 B.二范式 C.三范式 D.四范式
正确答案:C
2.填空题
⑴ 数据库设计的特点是______ _和____ ___。
答案:综合性、动态行为设计与静态结构设计分离
⑵ 需求分析阶段常用的调查方法有___ _、___ ____、__ _____、
____ ___和__ _____等5种。
答案:跟班作业、开调查会、业务询问、问卷调查、查阅资料
⑶ 需求分析的主要方法有_ ______、_____ __。
答案:自顶向下、自底向上
⑷ 概念结构设计的主要策略有___ ____、___ ____和____ ___三种。
答案:自顶向下、自底向上、混合策略
3.判断题
⑴ 物理设计的主要工作是建立实际数据库结构。(n)
⑵ 最常用的概念结构设计的方法是自底向上的设计策略。(y)
⑶ 编写程序不属于数据库的模式设计阶段。(y)
⑷ 设计好的数据库系统在投入使用后出现问题由使用方负责。(n)
4.简答题
⑴ 数据库设计包括哪几个阶段?
答案:需求分析阶段
概念结构设计阶段
逻辑结构设计阶段
物理设计阶段
⑵ 试述把E—R图转换成关系模型的规则。
答案:
①一个实体型转换为一个模式,实体的属性就是关系模式的属性,实体的键即为关系模式的键。
②对于实体间的联系,就要视1:1,1:N,M:N三种不同情况做不同的处理。
一个1:1的联系,可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系下连的各实体的键以及联系本身的属性均转换为关系的属性,每个实体的键均是该关系的键。如果是与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的键和联系本身的属性。
一个1:N的联系,可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体转换成的关系模式的键以及联系本身的属性均转换为关系的属性,而关系的键为N端实体对应的关系模式的键。如果与N端对应的关系模式合并,则在N端实体转换的关系模式中加入1端实体转换成的关系模式的键和联系的属性。
一个M:N的联系,则将该联系转换为一个独立的关系模式,其属性为两端实体类型的键加上联系类型的属性,而关系到的键盘为两端实体转换成的关系模式键的组合。
(3) 什么是数据库规范化理论?它对数据库设计有什么指导意义?
答案:所谓关系的规范化,是指一个低一级范式的关系模式,通过投影运算,转化为更高级别范式的关系模式的集合的过程。我们把满足不同程度要求的关系称为不同的范式。
关系规范化的基本思想:逐步消除数据依赖中不合适的部分,使关系模式达到一定程度的分离,即“一事一地”的模式设计原则,使概念单一化,即让一个关系描述一个概念、一个实体或者实体间的一种关系。
5.简述题
现有关于班级、学生、课程的信息如下:
描述班级的属性有:班级号、班级所在的专业、入校年份、班级人数、班长的学号。
描述学生的属性有:学号、姓名、性别、年龄。
描述课程的属性有:课程号、课程名、学分。
假设每个班有若干学生,每个学生只能属于一个班,学生可选修多门课程,每个学生选修的每门课程有一个成绩记载。根据语义,画出他们的E-R模型。
成绩
答案:
M
N
N
1
属于
学生
班级
课程
选修
3章习题参考答案
1 填空题
(1)SQL Server 2000启动SQL Server服务的服务账号有_________和_________账号。 本地系统账户、域用户账户
(2)SQL Server 2000 采用的身份验证模式有_________模式和_________模式。
Windows身份验证模式和混合模式
(3)安装一个用于教学的SQL Server2000数据库服务器,在向导的帮助下,基本上是一路选择_________和单击_________按钮。
【下一步】按钮,确定。
(4)SQL Server 2000 最常用的4个工具是________管理器、________管理器_________分析器和联机帮助。
企业、服务、查询
(5)SQL Server 服务管理器用于_________、_________、和暂停服务器上的SQL Server 2000 组件。
服务器,服务器
(5)SQL Server 企业管理器是一个具有图形界面的综合管理工具,它提供了一个管理控制台的用户界面,具有管理SQL Server _________和注册配置_______,管理SQL Server _________、数据库以及数据表、视图、存储过程、触发器、索引等功能,定义并执行所有SQL Server管理任务,唤醒调用SQL Server定义的各种向导等功能 。
服务器,服务器,登陆账号和用户
(6)SQL 查询分析器是一种图形界面的实用工具,可以编写调试T-SQL语句或脚本实现对数据库、表等项目的_________、_________和_________,以及对数据的_________、_________和_________等功能。
创建、修改、删除,查询、增加、修改、删除
(7)SQL 联机帮助文档介绍了关于SQL Server 2000 的相关的_________和_________。
技术文档 使用说明
2 简答题
(1)在安装SQL Server2000时,在[服务账户]对话框中,如何进行选择?
一般接受默认的选项,输入域的密码,然后点击【下一步】按钮,对于个人而言,如果不是在网络环境,而仅仅是在单独的PC机上使用,应选择[使用本地系统账户]项,然后单击【下一步】按钮。
(2)如何启动、停止SQL Server2000服务器?
通常情况下,SQL Server是自动启动服务的,并在【任务栏】中显示服务器启动图标。当服务器图标小圆中显示一个右向的三角形时,表示SQL Server已经启动;当服务器图标小圆中显示一个小正方形时,表示SQL Server已经停止,即没有启动。
通常情况下,不需要停止SQL Server。但如有必要,也可以手动停止,具体方法如下:
a、双击【任务栏】中服务图标,出现SQL Server 服务管理器对话框。
b、单击对话框中的【停止】按钮,出现提示信息。
c、单击提示信息框中的【是】按钮,即可停止SQL Server服务
(3)如何注册一个SQL Server2000服务器?
在利用SQL管理服务器之前,必须注册一个本地的或远程的服务器,具体步骤如下:a、右键单击一个服务器组或者服务器图标,然后选择【新建SQL Server 注册】选
项。我们可以通过【注册SQL Server向导】来完成。
b、单击【下一步】后,在出现的对话框中添加服务器,然后单击【下一步】按钮。
c、在【选择身份验证模式】 对话框中根据用户的需要选择验证模式。单击【下一步】按钮。
d、在【选择SQL Server 组】中,单击一个服务器组。然后单击【下一步】按钮。
e、完成注册,系统可能花几分钟时间进行连接,并确认服务器存在以及连接信息有效。
(4)如何创建、删除SQL Server2000服务器?
创建服务器:
a、右键单击一个服务器组或者服务器图标,然后选择【新建SQL Server 注册】选项。
b、在【选项】下,单击添加(【...】)按钮。
c、在【名称】框中,为该新组输入唯一名称。
d、根据用户的需要,可以自由选择【顶层组】、【下面项目子组】。如果选择了【下面项目子组】,则需要选择一个希望新组位于其下的顶层组。
e、重复以上步骤,创建每个新服务器组。
删除服务器:
在【控制台根目录】下,展开服务器组,然后展开服务器,我们就可以对服务器进行直接删除,选定你所要删除的服务器,单击右键【删除】,便可直接删除此服务器。
4章习题参考答案
1填空题
(1)SQL Server 2000支持的整数型数据类型包括_________、int、_________、_________,其中int的数值范围为_________。
Bigint,smallint,tinyint -21万亿-21万亿
(2)SQL Server 2000支持的货币型数据类型包括_________、smallmoney,其中smallmoney的数值范围为_________。精确到 ____ 分之一。
Money,-21万亿-21万亿,万
(3)SQL Server 2000支持的日期时间型数据类型包括_________、smalldatetime,其中smalldatetime的数值范围为_________。精确到 ____ 。
Datetime,1900-1-1,2079-12-31,分钟
(4)假设表中某列的数据类型为varchar(100) ,而输入的字符串为“ahng3456”,则存
储的字节是________。
8
(5)SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。
@ @@
(6)在SQL Server 2000中,字符串常量由_________引起来,日期型常量由_________引起来。
单引号 单引号
(7)在SQL Server 2000中,货币型常量由_________前缀引导,双字节字符串型常量由_________前缀引导,二进制型常量由_________前缀引导。
$ N 0x
(8)语句 select floor(17.4), floor(-214.2), round(13.4382,2), round(-18.4562,3)的执行结果是: _________、_________、_________和_________。
17 -215 13.4400 -18.4560
(9)语句 select ascii('B'), char(67), len(' 你 是tiger ') 的执行结果是: _________、_________和_________。
66 C 9
(10)语句 select upper('beautiful') , lower('BEAUtiful') 的执行结果是: ____________和___________。
BEAUTIFUL, beautiful
(11)语句 select reverse(6789), select reverse('你是狼') 的执行结果是: ____________和___________。
9876 狼是你
(12)语句 select ltrim (' 我心中的太阳'), rtrim ('我心中的月亮 ') 的执行结果是: __________________和____________________。
我心中的太阳 我心中的月亮
(13)语句 select left('bye',2), right('人活百岁不是梦',5),substring('人活百岁不是梦',3,2) 的执行结果是: _________、_____________和_____________。
by 百岁不是梦 百岁
(14)语句 select year ('1931-9-18'), month ('1937-7-7'), day ('1945-8-14') ,getdate() 的执行结果是: _________、_________、_________和_________。
1931 7 14 _______
(15)语句 select 15/2,15/2.,17%4, '1000' - 15,'2000' + 15 的执行结果是: _________、_________、_________、_________和_________。
7 7.5 1 985 2015
(16)语句 SELECT (7+3)*4-17/(4-(8-6))+99%4 的执行结果是: _________。
35
(17)算术运算符有:加(+)、_________、_________、_________和_________。
减(-) 乘(*) 除(/) 余(%)
(18)常用的比较运算符有:大于(>)、大于等于(>=)、_________、_________、_________和_________,测试两个相同类型表达式的顺序、__________和_________。
等于(=)、不等于(<>)、小于(<)、小于等于(<=) 大小 是否相等
(19)T-SQL 语言中,有:算术运算、_____________、___________和____________。
字符串连接运算、比较运算、逻辑运算
(20)T-SQL 语言中,有:精确数字类型、_____________、___________、___________和____________。
近似数字类型 日期时间类型 字符串与二进制串 特殊类型
2简答题
(1)在SQL语言中,什么是全局变量?什么是局部变量?
变量是由用户定义并可赋值的实体。变量有全局变量和局部变量两种。全局变量由系统定义和维护,名字由@@符号开始。局部变量用DECLARE语句声明,声明时它被初始化为NULL,并由SET语句或SELECT语句赋值,它只能用在声明该变量的过程实体中,即使用范围是定义它的批、存储过程和触发器等。其名字由一个@符号开始。
定义局部变量的语法格式:DECLARE 局部变量名 数据类型[,…n]
局部变量赋值的语法格式:SET 局部变量名=表达式[,…n]
全局变量是SQL Server系统所提供并赋值的变量。用户不能建立全局变量,也不可能使用SET语句去修改全局变量的值。全局变量的名字以@@开头。大部分全局变量的值是报告本次SQL Server启动后发生的系统活动。通常应该将全局变量的值赋给在同一个批中的局部变量,以便保存和处理。
(2)Transact-SQL 语言中运算符的优先顺序?
当一个复杂的表达式有多个运算符时,运算符优先性决定执行运算的先后次序。执行的顺序可能严重地影响所得到的值。运算符有下面这些优先等级。在较低等级的运算符之前先对较高等级的运算符进行求值。
当一个表达式中的两个运算符有相同的运算符优先等级时,基于它们在表达式中的位置来对其从左到右进行求值。例如,在下面的示例中,在 SET 语句中使用的表达式中,在加号运算符之前先对减号运算符进行求值。(见表4.7)
3设计题
(1) 用dateadd函数、算术运算编写求今天100天后日期的查询语句。
select getdate()+100, dateadd(getdate(),100)
(2) 用datediff函数、算术运算编写出生日期为:1983-9-30生人的年龄、月龄的查询语句。
select datediff(year, '1983-9-30', getdate()),datediff(month, '1983-9-30', getdate())
(3) 设学位代码与学位名称如下表,用case语句编写学位代码转换为名称的程序。
代码
名称
1
博士
2
硕士
3
学士
declare @代码 int
declare @名称 nchar(2)
set @代码 = 3
set @名称 =
case @代码
when 1 then '博士'
when 2 then '硕士'
when 3 then '学士'
end
print @名称
(4)用while循环控制语句编写20!=1*2*3*…*20程序, 并由print语句输出。
declare @i int, @p bigint
set @p = 1
set @i = 1
while @i<21
begin
set @p = @p * @i
set @i = @i + 1
end
print '20!=' + str(@p,22)
5章习题参考答案
1.选择题
答案: (1) C, (2) C (3) A
2. 填空题
(1)SQL SERVER 2000在安装过程中创建的________、________、________和msdb 4个数据库,________和northwind 两个示例数据库。
Maser,model,tempdb,pubs
(2) SQL Server 2000数据库中的所有数据和对象(如表、存储过程、触发器和视图)都存储在文件中。这些文件有三种:主文件(Primary)、次要文件(Secondary)和事务日志文件(Transaction Log)。
主文件的扩展名为.MDF
次要文件的扩展名为.NDF。
日志文件的扩展名为.LDF。
3 简答题
(1)事务日志文件的作用是什么?
事务日志文件包含用于恢复数据库的日志信息。每个数据库必须至少有一个日志文件。
(2)什么是文件组?其作用是什么?
文件组允许对文件分组,以便对它们进行管理。比如,可以将三个数据文件(data1.mdf、data2.mdf和data3.mdf)分别创建在三个盘上,这三个文件组成文件组fgroup1,在创建表的时候,就可以指定一个表创建在文件组fgroup1上。这样该表的数据就可以分布在三个盘上,在对该表执行查询时,可以并行操作,大大提高了查询效率。
2 操作题
(1)利用企业管理器创建教学成绩管理数据库。
(2)修改教学成绩管理数据库的数据文件和事务日志文件的存放位置。
(3)在教学成绩管理数据库中创建以下各表,其结构见第2章。
学院信息表 (编号,名称,简称,院长,书记)
系部信息表 (编号,名称,主任,书记)
专业信息表 (编号,院系编号,名称)
教研室信息表 (编号,名称,主任)
班级信息表 (编号,名称,年级,专业编号,人数,学制,班主任,班长,书记)
课程信息表 (编号,名称,院系编号,学时,学分,类别,考试类型)
教师信息表 (编号,登录名,姓名,密码,性别,教研室编号,出生日期,工作日期,职称,职务,学历,学位,工资,照片)
学生信息表 (学号,姓名,密码,性别,出生日期,民族,籍贯,家庭地址,邮政编码,联系电话,身份证号,政治面貌,班级编号,入学日期,备注,简历,照片)
班级课程设置表 (id,班级编号,教师编号,课程编号,学年学期,学时)
教学成绩表 (id,学号,课程编号,教师编号,学年学期,成绩,分数,考试类别,考试考查类型,考试日期,录入日期)
(4)在教学成绩管理数据库的每个表中输入记录。记录要符合现实意义。
(5)向课程信息表中插入一条记录,再删除该表中的第5条记录。
(6)修改班级课程设置表中的数据。
(7)用T-SQL语句创建表student,结构如下:
字段名
字段类型
范例
学号
char(10)
2002010201
姓名
varcharc(8)
王大力
性别
char(2)
男
出生日期
smalldatetime
1985-11-3
民族
varcharc(6)
汉
生源
varcharc(10)
山西
班号
tinyint
1
(8)用T-SQL语句删除表student。
(9)用T-SQL语句创建名为TEST的数据库。
6章习题参考答案
1 填空题
(1)在T-SQL中使用SELECT语句来实现数据查询。
(2)条件查询是指在数据表中查询满足某个条件的记录。
(3)模糊查询是指根据一些并不确切的线索来搜索信息。
(4)视图是由一个或多个数据表(基本表)或视图导出的虚拟表。
2 简答题
(1)什么是嵌套子查询?
嵌套子查询的执行不依赖于外部嵌套。嵌套子查询的执行过程为:首先执行子查询,子查询得到的结果集不被显示出来,而是传给外部查询,作为外部查询的条件使用,然后执行外部查询,并显示查询结果。
(2)什么是相关子查询?
相关子查询,是指在子查询中, 子查询的查询条件中引用了外层查询表中的属性值。相关子查询的结果集取决于外部查询当前的数据行,这一点是与嵌套子查询不同的。嵌套子查询和相关子查询在执行方式上也有不同。嵌套子查询的执行顺序是先内后外,即先执行子查询,然后将子查询的结果作为外层查询的查询条件的值。而在相关子查询中,首先选取外层查询表中的第一行记录,内层的子查询则利用此行中相关的属性值进行查询,然后外层查询根据子查询返回的结果判断此行是否满足查询条件。如果满足条件,则把该行放入外层查询结果集合中。重复这一过程的执行,直到处理完外层查询表中的每一行数据。
3 操作题
(1)在教学成绩管理数据库的学生信息表中查询年龄为20岁或22岁的学生
use 教学成绩管理数据库
select 姓名, 性别, 年龄=datediff(year,出生日期,getdate())
from 学生信息表
where (datediff(year,出生日期,getdate())=20) or (datediff(year,出生日期,getdate())=22)
(2)在教学成绩管理数据库的学生信息表中查询年龄为20岁或22岁、性别为‘男’的学生
use 教学成绩管理数据库
select 姓名, 性别, 年龄=datediff(year,出生日期,getdate())
from 学生信息表
where ((datediff(year,出生日期,getdate())=20) or (datediff(year,出生日期,getdate())=22)) and (性别='男')
(3)在教学成绩管理数据库的学生信息表中查询年龄大于18岁或小于22岁的学生
use 教学成绩管理数据库
select 姓名, 性别, 年龄=datediff(year,出生日期,getdate())
from 学生信息表
where not datediff(year,出生日期,getdate()) between 18 and 22
(4)在教学成绩管理数据库的学生信息表中查询学生刘某的姓名、性别和联系电话
use 教学成绩管理数据库
select 姓名, 性别, 联系电话
from 学生信息表
where rtrim(姓名) LIKE '刘_'
(5)在教学成绩管理数据库的学生信息表中查询籍贯不在山西的学生的姓名、性别和籍贯
use 教学成绩管理数据库
select 姓名, 性别, 籍贯
from 学生信息表
where not 籍贯 LIKE '山西省%'
(6)在教学成绩管理数据库的学生信息表中查询不姓刘也不姓张的学生的姓名、性别和联系电话
use 教学成绩管理数据库
select 姓名, 性别, 联系电话
from 学生信息表
where 姓名 LIKE '[^刘张]%'
(7)在教学成绩管理数据库的学生信息表中查询同姓的学生的姓名
use 教学成绩管理数据库
select left(xs1.姓名,1) as 姓氏,xs1.姓名 ,xs2.姓名
from 学生信息表 as xs1 join 学生信息表 as xs2
on left(xs1.姓名,1) = left(xs2.姓名,1)
where xs1.学号<>xs2.学号
(8)在教学成绩管理数据库的学生成绩表中查询每个班各门课程的平均成绩,结果按均分降序排列,均分向同案班机编号排列
use 教学成绩管理数据库
select 班级编号,名称, avg(分数) 均分
from 教学成绩表 as a join 学生信息表 as b
on a.学号 = b.学号
join 课程信息表 as c on a.课程编号 = c.编号
group by 班级编号,名称
order by avg(分数) desc, 班级编号 asc
(9)在教学成绩管理数据库中查询每个学生的班级、学号、姓名、均分,结果按均分降序排列,均分相同者按班级排列
use 教学成绩管理数据库
select 班级编号,a.学号,a.姓名, avg(分数) 均分
from 学生信息表 as a join 教学成绩表 as b
on a.学号 = b.学号
group by 班级编号, a.学号,a.姓名
order by avg(分数) desc, 班级编号 asc
(10)在教学成绩管理数据库中查询学习了900011课程且其分数在该课程均分以上的学生学号、姓名和分数
use 教学成绩管理数据库
select 学生信息表.学号,姓名,分数
from 学生信息表,教学成绩表
where 课程编号='900011'
and 学生信息表.学号 = 教学成绩表.学号
and 分数 > (select avg(分数) from 教学成绩表 where 课程编号='900011')
(11)在教学成绩管理数据库中查询200303班学生的学号、姓名、所学课程名称及分数
use 教学成绩管理数据库
select 学生信息表.学号,姓名,名称,分数
from 学生信息表,教学成绩表,课程信息表
where 学生信息表.学号 = 教学成绩表.学号
and 课程信息表.编号 = 教学成绩表.课程编号
and 教学成绩表.学号 in
(select 学号 from 学生信息表 where 班级编号='200303 ')
(12)在教学成绩管理数据库中查询学习杜老师所授课程的学生的学号, 姓名, 课程名称, 分数
use 教学成绩管理数据库
SELECT 学号, 姓名, 课程名称, 分数
FROM 学生成绩视图
Where 教师姓名=’杜老师’
(13)建立班级课程成绩统计表视图,其中包括班级编号、课程名称、 均分、最高分、最低分
use 教学成绩管理数据库
go
create view 班级课程成绩统计表 as
select 班级编号,名称 as课程名称, avg(分数) 均分, max(分数) 最高分, min(分数) 最低分
from 教学成绩表 as a join 学生信息表 as b
on a.学号 = b.学号
join 课程信息表 as c on a.课程编号 = c.编号
group by 班级编号,名称
(14)在上题建立的学生成绩视图上建立分数在90分以上的优秀学生成绩视图
use 教学成绩管理数据库
go
create view 优秀教学成绩表 as
SELECT 学号, 姓名, 教师姓名, 课程名称, 分数
FROM 学生成绩视图
where 分数>=90
7章习题参考答案
1 填空题
(1) 是指保证指定列的数据具有正确的数据类型、格式和有效的数据范围。
域完整性
(2) 用于保证数据库中数据表的每一个特定实体的记录都是唯一的。
实体完整性
(3)有两种方式可以实现数据完整性,即 和 。
声明数据完整性、过程数据完整性
(4)数据完整性有四钟类型 、 、 和
实体完整性、域完整性、参照完整性、用户定义完整性
(5)futureonly_flag仅当将规则绑定到 才使用。
用户自定义类型
(6)复合主键是指要定义为主键的列有 个。
两个以上或多个
(7)在定义约束时可以在定义表的同时定义,也可以在表建好以后,通过 来实现。
修改表
(8)当向表中现有的列上填加主键约束时,必须确保该列数据 。
无空值和无重复值
(9)在现有列上填加CHECK约束,对现有数据不检查,则需要写 。
with nocheck
(10)将规则绑定到列或自定义类型的语法格式为
sp_unbindrule [@objname =] ‘对象名’ [, [@futur
展开阅读全文