SQL Server 复习讲义罗剑高老师Word文档下载推荐.docx
《SQL Server 复习讲义罗剑高老师Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《SQL Server 复习讲义罗剑高老师Word文档下载推荐.docx(20页珍藏版)》请在冰豆网上搜索。
在概念数据模型中最常用的是E-R模型(实体-关系模型)。
E-R模型中,两个实体间的关系有:
1对1;
1对多;
多对多。
另一类数据模型则是直接面向数据库中数据逻辑结构的、用户从数据库所看到的模型。
这类模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现,一般又称为“逻辑数据模型”或“结构数据模型”。
目前比较流行的逻辑数据模型有3种:
层次模型;
网状模型;
关系模型。
层次模型是树型结构,网状模型是网状结构,关系模型是二维表结构。
1.E-R图提供了实体、属性和联系的方法,其中属性用()来表示
A.矩形B.菱形C.椭圆形D.三角形
2.请简述数据与信息,并举例说明?
数据(Data):
对客观事务及其活动的抽象符号表示,是存储在某一种媒体上可以鉴别的符号资料学生的考试成绩85和59;
信息(Information):
数据经过加工处理后所获取的有用知识,消化理解了的数据,是对客观世界的认识,即知识,学生对数据85和59进行思考,获取信息及格和不及格
3.什么是数据库的物理独立性?
数据库的三模式两映射中的模式/内模式映象保证了当数据库的存储结构发生变化时,通过调整模式和内模式之间的映像,使得整体模式不变,当然外模式及应用程序不用改变。
从而保证了数据库的物理独立性
1.3关系模型
基本术语:
关系;
元组;
属性;
码(候选码、主码、外码);
域;
分量。
关系:
一个由行和列组成的二维表格。
关系模型:
数据以关系(二维表)的形式存放,表与表之间互相关联,这种存放数据的模型就是关系模型。
关系模式:
为了形象化地表示一个关系,不是每一次都画一张表,所以引入关系模式来表示关系。
关系模式表示为:
关系名(属性1,属性2,…属性n),若某一属性或属性组为主码,用下划线表示。
关系模型的数据完整性规则:
完整性规则是为了保证关系(表)中数据的正确、一致、有效性的规则,防止数据被破坏。
在关系模型中存在3类完整性约束:
实体完整性规则(主码不能为空);
参照完整性规则(外码的值必须参照主码取值);
用户定义完整性规则(用户针对具体的数据约束,设置完整性,如考试成绩限制在0~100之间)。
1.数据库系统有三级模式结构,分别是模式、外模式和内模式。
1.若一个关系为R(学号,姓名,性别,年龄),则学号可以作为该关系的主码。
2.关系模型中有3类完整性约束,分别是实体完整性、参照完整性和用户定义完整性。
3.参照完整性约束中,外键完整性规则是表的外键必须是另一个表中主键的有效值,或者空值。
3.一个关系只能有一个()。
A.候选码B.超码C.主码D.外码
4.一个表中只能有一个候选码。
(错)
5.关系模型有什么特点?
关系模型是利用若干二维表来表示表中数据间的联系。
二维表格是一个关系,行是记录,列是字段。
表与表之间互相关联。
1.4关系代数
传统的集合运算:
并;
交;
差;
广义笛卡儿积。
专门的关系运算:
选择;
投影;
连接;
除。
本书只讨论前3种运算。
1.专门的关系运算通常有选择、投影、连接和除等四种运算。
1.5关系范式
建立冗余较小、结构合理的数据库,构造数据库时必须遵循一定的规则,在关系数据库中这种规则就是范式。
目前共有6种范式:
1NF,2NF,3NF,BCNF,4NF,5NF。
1NF是最基本的范式,如果关系模型中的所有属性都是不可再分的,则称此模式符合第一范式。
进一步,如果关系中任何一个非主关键字的值都依赖于主关键字,则该关系满足第二范式。
如关系模式已满足2NF,且该关系中的任何两个非主键字段的值之间不存在函数依赖关系,那么该关系满足第三范式3NF。
1.一个关系上所有非主属性完全函数依赖每个候选关键字就满足了2范式。
(对)
第2章搭建网络数据库平台
2.1配置IIS服务器
IIS(InternetInformationServer)就是一个Internet信息服务器,用于管理和发布Web应用,使用户能够在互联网上浏览网站。
每个Web站点必须有一个主目录。
主目录是站点访问的起始点
1.IIS是一个Internet信息服务器,用于管理和发布web应用,使得用户能够在互联网上浏览网站。
(对)
2.每个web站点必须有一个主目录。
(对)
2.2认识与安装SQLServer2005
SQLServer2005有多个版本,服务于不同的需求。
不同版本的硬件环境、软件环境要求也有不同。
安装SQLServer2005比较简单,请参照课本描述的相应步骤。
2.3常用组件的使用
安装SQLServer2005数据引擎与实例后,就可以使用数据库的组件。
SQLServer2005常用组件有联机帮助;
SQLServerConfigurationManager;
SQLServerManagementStudio(简称SSMS,是一个用来访问、配置、管理和开发SQLServer2005的集成环境)。
第3章构建与管理数据库
3.1认识数据库的组成
SQLServer2005将数据库存储在文件中,并给这些文件赋予一定的存储空间,用户可以对这些文件进行管理。
SQLServer2005中的数据库按模式级别分类,可分为物理数据库和逻辑数据库;
按创建对象来分,则可分为系统数据库和用户数据库。
物理数据库是构成单个数据库的实际文件,数据库文件存储的基本单位是页。
SQLServer2005数据库有3种物理文件:
主数据文件(.mdf)、辅助数据文件(.ndf)和事务日志文件(.ldf)。
创建数据库后,其数据库文件至少包含一个主数据文件和一个事务日志文件。
1.SQLServer2005数据库有三种物理文件:
主数据文件、辅助数据文件和事务日志文件,对应的后缀名分别是mdf、ndf、ldf。
2.以下哪个选项不属于SQLServer2005在安装时创建的系统数据库?
(C)
A.masterB.modelC.studentD.msdb
3.在SQLServer2005的系统数据库中master存放数据库的主要信息。
3.2创建数据库
创建数据库的方法有两种:
一是在SSMS创建数据库,二是使用T-SQL语言中的CREATEDATABASE命令在程序代码中创建数据库。
利用命令创建数据库,有两种格式,一是简单格式:
CREATEDATABASE <
数据库名>
,此格式创建的数据库设置采用系统默认选项;
另一种格式则详细设置数据文件与日志文件的各选项。
参见P46。
3.3维护数据库
修改数据库:
最常用的是对数据库名称、大小和属性3个方面进行修改。
方法一:
使用语句修改,命令格式ALTERDATABASE<
旧数据库名称>
ModifyName=<
新数据库名称>
;
方法二:
在SSMS中修改。
添加辅助数据库文件:
一个数据库可以有多个辅助数据文件,可以通过添加辅助文件来满足新的数据库容量。
删除数据库:
删除数据库操作将删除数据库包含的所有对象,且不能恢复。
用户只能根据自己的权限删除用户数据库,不能删除系统数据库,也不能删除正在使用的数据库。
SQL语句删除数据库的格式:
dropdatabase数据库名字
1.创建数据库时指定数据库初始大小的关键字是?
(D)
A.nameB.maxsizeC.filegrowthD.size
2.删除数据库的语句是DeleteDatabase。
分离数据库:
是指将数据库从SQLServer2005实例上删除,但该数据库的数据文件和事务日志文件仍然保持不变,这时可将数据库附加到其他任何SQLServer2005实例上。
与删除数据库不同,分离只是从SQLServer2005中移除,并没有从物理磁盘上将数据文件删除。
附加数据库:
与分离数据库相反的操作时附加数据库。
如想把硬盘上的数据库添加到SQLServer2005实例中,可用附加数据库的方法。
导入导出:
如要将其他类型的数据源(如:
Excel、Access或Oracle数据库等)添加到SQLServer2005的实例中,或将SQLServer2005的数据库文件转换为其他类型的数据库文件,则必须通过导入和导出的方法。
1.简述数据库的分离和附加的作用?
分离数据库的作用是将数据库从SQLServer2005实例上删除,但该数据库的数据文件和事务日志文件仍然保持不变,这时可将数据库附加到其他任何SQLServer2005实例上。
附加数据库与分离数据库相反,如想把硬盘上的数据库添加到SQLServer2005实例中,可用附加数据库的方法。
参见课本P49.
3.4管理数据表
表是存储数据的地方,是数据库中最重要的部分。
在关系数据库中每一个关系都体现为一个表。
表分为4种类型,即普通表、分区表、临时表和系统表。
这里我们仅讨论普通表的创建和管理。
创建表之前,首先考虑要创建的表包含哪些内容,例如,一个表包含多少列、每列应该是什么数据类型、哪些字段为主键、是否使用约束等。
创建表有两种方式,一种是使用SSMS工具创建表,另一种是使用T-SQL语句创建,开发人员可随时在程序中用T-SQL为数据库创建表,具有非常好的灵活性。
最简单的创建表的语句格式是:
CREATETable表名(字段名列表数据类型长度约束…),各列之间用逗号隔开。
当数据表创建之后,可以根据需要改变表中的许多选项。
例如:
用户可以增加、删除和修改列,修改表名,创建CHECK约束等。
在设计表时,需要知道每列字段的数据类型。
SQLServer2005系统提供了28种数据类型,主要分为精确数字类型、近似数字类型、字符数据类型、日期时间数据类型等。
每一种数据类型都有自己的定义和特点,具体参见课本P63。
为了实现数据完整性,SQLServer2005在管理表时提供了CHECK约束和定义表关系等手段。
CHECK约束又叫检查约束,用于定义列中可接收的数据值,通过限制输入列中的值来强制域的完整性;
创建表间关系,主键与外键的设置要完全相同,通常情况下,关系将一个表的主键与另一个表中的外键匹配。
1.表主要由列和行构成,行又可以称为数据行或记录,列又可以称为字段。
2.在下面的教师表和系部表中,教师号和系部号分别是两个表的主关键字。
教师表(教师号、教师名、系部号、职务、工资)
系部表(系部号、系部名、部门人数、工资总额)
在这两个表中,只有一个是外关键字,它是(B)。
A.教师表的“教师号”B.教师表的“系部号”
C.系部表的“系部号”D.系部表的“系部名”
3.指定主键的关键字是(D)
A、nullB、checkC、defaultD、primarykey
4.下面哪种是属于SQLServer2005的字符数据类型:
(C)
A.realB.bigintC.nvarcharD.money
5.如果要在SQLServer中存储图形图像、Word文档文件,不可采用的数据类型是(B)
A.binaryB.varcharC.imageD.text
6.字符型和文本型有何区别?
举例说明在什么情况下使用字符型,在什么情况下使用文本型?
字符型数据类型存储的最大字符数是需设定的,文本型数据类型存储的最大字符数不需设定。
当要存储的字符型数据非常庞大时,应该选择text数据类型,text数据类型专门存储数量庞大的变长字符数据。
当要存储的字符型数据相对较小时,选择char(最大可容纳8000个字符)或varchar(最大可容纳8000个字符)等字符型数据类型。
参见P64。
7.整数型和字符型在引用的时候必须要加单引号或者双引号。
8.CHECK约束被称为检查约束。
9.主键约束和唯一性约束有什么区别,并举例说明?
PK一个表只有一个,唯一标识该记录,不能重复,不能为空,unique一个表可以有多个,不可以重复,可以取空值,例如一个表中有学号和身份证号码,学号为pk,身份证只能为unique
10.什么是数据库,并给出2个系统数据库。
数据库是对象的容器,数据库不仅可以存储数据,而且能够使数据存储和检索以安全可靠的方式进行,并以操作系统文件的形式存储在磁盘上。
数据库对象是存储、管理和使用数据的不同结构形式。
系统数据库Master,Tempdb,Model,Msdb随意举出2个即可
3.4数据库表的设计(补充内容)
数据库设计(DatabaseDesign)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。
在设计数据库时,最重要的步骤是要确保数据正确分布到数据库的表中。
使用正确的数据结构,可以极大地简化相应的应用程序。
正确进行表设计也称‘数据库规范化’。
第4章数据查询与更新
4.1认识SQL语言
SQL是StructureQueryLanguage(结构化查询语言)的缩写,是一种用于数据库查询和编程的语言,已经成为关系型数据库普遍使用的标准,使用这种标准的数据库语言给程序设计和数据库维护都带来了极大的方便。
Transact-SQL(简称T-SQL)语言是Microsoft公司对此标准的一个实现。
T-SQL语言已成为SQLServer2005的核心,通过它可以完成数据库中的所有操作。
SQL语言包含4个部分:
DQL;
DML;
DDL;
DCL.
T-SQL语法约定:
1.常量:
也称为文字值或标量值,是指程序运行中不变的量。
常量类型中,字符串常量和日期常量需用单引号括起来,二进制常量以0x为前缀,货币常量以$为前缀。
2.变量
变量用于临时存放数据。
变量名必须是一个合法的标识符。
SQLServer有两种类型的变量:
全局变量(有系统提供,@@变量名);
局部变量(@变量名)。
用DECLARE语句声明变量,格式为:
DECLARE{@局部变量名,数据类型}...
3.注释语句
行注释语句使用“--”标示,块注释语句用“*/*/”标示。
4.常用函数
SQLServer2005为T-SQL语言提供了大量的系统函数,使用户对数据库进行查询和修改时更加方便。
常用的函数主要有:
数学、字符串、日期时间和聚合函数等。
数学函数:
abs;
ceiling;
floor;
power;
round;
rand;
sign;
pi;
sqrt参见P75
字符串函数:
len;
substring;
upper;
lower;
char;
ascii;
str;
left;
right参见P76
日期函数:
getdate;
month;
year;
day;
dateadd;
datepart;
datename参见P77
聚合函数:
count();
max();
min();
avg();
sum()参见P80
数据类型转换函数:
CAST;
CONVERT
5.用户函数(补充内容)
SQLServer用户定义函数是接受参数、执行操作(例如复杂计算),并将操作结果以值的形式返回的函数。
通过用户自定义函数,可以补充和扩展系统提供的内置函数。
用户定义函数可接受零个或多个输入参数,返回标量值或表。
用户自定义函数不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE命令来执行。
1.数据库管理系统包括数据定义语言(DDL)、数据操纵语言DML、数据控制语言(DCL)。
3.SQLServer支持两种类型的注释字符:
单行注释和多行注释。
单行注释的注释符是(A)
A.--B.//C./**/D./--/
4.Transact-SQL中可以使用两种变量:
全局变量和局部变量。
5.局部变量必须以“@”开头,而且必须先用DECLARE命令说明后才可使用。
6.整数型和字符型在引用的时候必须要加单引号或者双引号。
7.Transact-SQL语言中函数SUBSTRING(‘abcdefg’,4,2’)返回值是(de)。
8.(A)函数的作用是求一个字符串的实际长度。
A.LEN()B.LTRIM()C.LEFT()D.SUBSTRING()
9.(B)函数的作用是对给定的表达式,返回从最右侧开始某个长度的子字符串。
A.LEN()B.RIGHT()C.LEFT()D.SUBSTRING()
10.(C)日期和时间函数用于返回当前日期和时间。
A.DATEPART()B.DAY()C.GETDATE()D.YEAR()
10.在调用系统函数时,一定要在函数名称的前面加上用户名。
11.编写用户函数
编写一个用户自定义函数zzz,要求根据输入属性xx的上限y和下限x求出数据表xxx在此范围内的记录数,并利用函数求出输入值在80到90之间的记录数。
1.
Cratefunctionzzz(@xasreal,@yasreal)
Returnsint
Begin
Declare@aint
Select@a=count(*)fromxxxwherexxbetween@xand@y
Return@a
End
2.
Selectdbo.zzz(80,90)
4.2基本的SELECT语句
SELECT语句是SQL标准中最为灵活、使用最为广泛的语句之一。
利用SELECT语句可以从数据库中按照用户的需要进行数据检索,并将结果以表格的形式输出。
在SQLServer 2005数据库中,获取数据的功能是通过SELECT语句来实现的。
例句:
SELECT*FROMUsers
SELECTUserName,Sex,EmailFROMUsers
SELECT用户名=UserName,性别=SexFROMUsers
SELECTUserNameAS用户名,SexAS性别FROMUsers
SELECTDISTINCTUserNameFROMArticle --一个用户可以发表多篇文章,若不用DISTINCT选项,则会有重复的用户名称。
ALL可显示重复行,为默认选项。
SELECT学号,课程号,成绩,提高后成绩=成绩*1.2FROM选课表–允许包含算术表达式(+,-,*,/)
SELECTUserName,Subject,ShiJianINTOMyArticleFROMArticle–使用INTO关键字,可把查询结果存放在新表中。
聚合函数的应用:
有时需要对查询列进行计算在显示,这是必须采用一些聚合函数,常用的聚合函数有count(),max(),min(),avg(),sum()。
聚合函数只能在以下位置作为表达式使用:
1>
SELECT语句的选择列表(子查询和外部查询);
2>
HAVING子句。
SELECTcount(*)AS开博人数FROMUsers
SELECTmax(成绩)AS最高成绩,min(成绩)AS 最低成绩FROM选课表
WHERE子句:
在数据库中查询数据时,有时用户只希望得到一部分数据而不是全部,这时就需要用到WHERE条件语句。
基本格式为:
SELECT显示字段 FROM数据来源WHERE 条件表达式。
条件表达式通过以下几种运算来进行:
比较运算>
>
=,=,<
.<
=,<
>
!
<
范围运算BETWEEN…AND,NOTBETWEEN…AND;
列表运算IN(),NOTIN();
模式匹配符LIKE,NOTLIKE;
逻辑运算符NOT,AND,OR。
例句:
SELECT*FROMUsersWHEREUserNameLIKE‘%o%’
WHEREIS[NOT]NULL
1.在字符串匹配中,通配符“%”代表任意多个(含零个)字符,“_”代表任意一个单字符。
2.WHERE子句用来指定(C)。
A.查询结果的分组条件B.组或聚合的搜索条件
C.限定返回的行的搜索条件D.结果集的排序方式
3.下列哪个不属于常用的逻辑运算符:
(D)
A.ANDB.ORC.NOTD.IN
4.通配符“%”表示某单个字符。
( 错)
4.3单表查询
单表查询时,FROM子句中只有一个数据源表。
分组统计:
GROUP子句
SELECTS