广东工业大学华立学院SQL Server 数据库应用与开发教程第二版考试重点懒人专用.docx
《广东工业大学华立学院SQL Server 数据库应用与开发教程第二版考试重点懒人专用.docx》由会员分享,可在线阅读,更多相关《广东工业大学华立学院SQL Server 数据库应用与开发教程第二版考试重点懒人专用.docx(15页珍藏版)》请在冰豆网上搜索。
广东工业大学华立学院SQLServer数据库应用与开发教程第二版考试重点懒人专用
大二下学期SQL考试
一、考试时间:
7月2日(十八周周四随堂考)
二、考试题型:
一、15道选择题(共30分)
二、10道填空题(共10分)
三、基本操作题
给出三张表,然后写出语句、加条件、表与表的连接、orderby等。
四、2道应用题。
考函数、触发器、存储过程。
(三选二)
三、考试重点:
第一章(不考)
第二章
2.11系统数据库(P38)
1.master数据库:
master数据库用于记录SQLServer实例的所以系统级信息,是SQLServer的核心,不能对其进行直接修改,应当对其定期进行备份,如果master数据库变得不可用,那么SQLServer数据库引擎将无法启动。
2.model数据库:
Model数据库用作SQLServer2008实例上创建的所以数据库的模板,如果对model数据库进行了修改,都将应用于以后创建的用户数据中。
3.msdb数据库:
msdb数据库用于SQLServer2008代理计划警报和作业,是SQLServer中的一个Windows服务。
用户不能再msdb数据库中执行下列操作:
更改排列规则,默认排序规则为服务器排序规则;删除数据库;从数据库中删除guest用户;启用变更数据捕获;参与数据库镜像;删除主文件组、主数据文件或日志文件;重命名数据库或主文件组;将数据库设置为OFFLINE;将主文件组设置为READ_ONLY。
4.resource数据库:
resource数据库是一个只读和隐藏的数据库,它包含了SQLServer2008中的所以系统对象,resource数据库是唯一没有显示在其中的系统数据库,这是因为它在sys框架中存在。
2.1.4数据库文件及其文件组(P39)
(1)数据文件。
主数据文件名称的默认后缀是.mdf;辅助数据文件是可选的,用于存放不在主数据文件中的其他数据和对象。
数据库可以没有辅助数据文件,也可以有多个辅助数据文件,默认的后缀是.ndf.
SQL语句:
创建数据库:
CREATEDATABASE数据库名称(p46)
修改数据库:
ALTERDATABASE数据库名称(p49)
删除数据库:
DROPDATABASEdatabase【,…n】{表示可以有多于一个数据库名}(p52)
第三章
3.1.2表的数据类型:
(p60)
数据类型
类型
描 述
bit
整型
bit数据类型是整型,其值只能是0、1或空值。
这种数据类型用于存储只有两种可能值的数据,如Yes或No、True或False、On或Off
int
整型
int数据类型可以存储从-231(-2147483648)到231(2147483647)之间的整数。
存储到数据库的几乎所有数值型的数据都可以用这种数据类型。
这种数据类型在数据库里占用4个字节
smallint
整型
smallint数据类型可以存储从-215(-32768)到215(32767)之间的整数。
这种数据类型对存储一些常限定在特定范围内的数值型数据非常有用。
这种数据类型在数据库里占用2字节空间
tinyint
整型
tinyint数据类型能存储从0到255之间的整数。
它在你只打算存储有限数目的数值时很有用。
这种数据类型在数据库中占用1个字节
money
货币型
money数据类型用来表示钱和货币值。
这种数据类型能存储从-9220亿到9220亿之间的数据,精确到货币单位的万分之一
float
近似数值型
float数据类型是一种近似数值类型,供浮点数使用。
说浮点数是近似的,是因为在其范围内不是所有的数都能精确表示。
浮点数可以是从-1.79E+308到1.79E+308之间的任意数
datetime
日期时间型
datetime数据类型用来表示日期和时间。
这种数据类型存储从1753年1月1日到9999年12月31日间所有的日期和时间数据,精确到三百分之一秒或3.33毫秒
char
字符型
char数据类型用来存储指定长度的定长非统一编码型的数据。
当定义一列为此类型时,你必须指定列长。
当你总能知道要存储的数据的长度时,此数据类型很有用。
例如,当你按邮政编码加4个字符格式来存储数据时,你知道总要用到10个字符。
此数据类型的列宽最大为8000个字符
varchar
字符型
varchar数据类型,同char类型一样,用来存储非统一编码型字符数据。
与char型不一样,此数据类型为变长。
当定义一列为该数据类型时,你要指定该列的最大长度。
它与char数据类型最大的区别是,存储的长度不是列长,而是数据的长度
binary
二进制数据类型
binary数据类型用来存储可达8000字节长的定长的二进制数据。
当输入表的内容接近相同的长度时,你应该使用这种数据类型
image
二进制数据类型
image数据类型用来存储变长的二进制数据,最大可达231-1或大约20亿字节
3.1.3创建表(p64顶部)
CREATETABLESC
(SNOCHAR(5),
CNOCHAR(5),
SCORENUMER(5,1)CHECK(SCORE>=0ANDSCORE<=100)
)
3.4向表中添加数据(要会写)(p71)
3.6修改表
3.6.2使用T-SQL语句修改表(p74)
ALTERTABLE表名
(ALTERCOLUMN列名列定义,
ADD列名数据类型约束,
……
DROP列名,
……
ADDCONSTRAINT约束名约束,
……)
3.6.3使用INSERTSELECT语句(p75)
例【3-4】求每个学生的平均成绩,并按学号、姓名、平均成绩存入学生信息数据库。
首先创建一个表:
CREATETABLEAG(
学号CHAR(8)PRIMARYKEY,
姓名CHAR(8),
平均成绩SMALLINT)
GO;
再求每个学生的平均成绩并把其插入已创建的表中:
INSERTINTOAG(学号,姓名,平均成绩)
SELECTSC.学号,MIN(姓名),AVG(成绩)
FROMStudent,SC
WHEREStudent.学号=SC.学号
GROUPBYSC.学号;
3.6.4使用SELECTINTO语句(p75)
例【3-5】统计每个学生未通过课程的门数,将其保存到临时表#stuexam表。
显示系名、学号、姓名、未通过门数,并按系名排序。
T_SQL语句如下:
SELECTMIN(系名),SC.学号,MIN(姓名),COUNT(*)未通过门数
INTO#stuexam
FROMStudent,SC
WHEREStudent.学号=SC.学号AND成绩<60
GROUPBYSC.学号
ORDERBY系名;
第四章
4.3命令操作表数据
4.3.1使用INSERT语句插入表数据(p82)
向表中插入数据可以使用INSERT语句。
INSERT语句最基本的格式如下:
INSERTtable_name
VALUES(constant1,constant2,…)
该语句的功能是向由table_name指定的表中加入由VALUES指定的各列值的行。
例【4-1】向XSCJ数据库的表XS中插入如下一行数据。
001112罗林琳计算机0“1/30/19800:
0:
0”40
可以使用如下的T_SQL语句:
USEXSCJ
INSERTINTOXS
VALUES(‘001112’,’罗林琳’,‘计算机’,0,‘1/30/1980’,0:
0:
0’,40,NULL)
GO
执行结果:
略。
4.3.2使用DELETE或TRANCATE语句删除数据(p86)
1、使用DELETE语句删除数据
DELETE的功能是从表中删除行,其最基本的语法格式如下:
DELETE[FROM]
{table_name|view_name}
[WHERE]
该语句的功能为从table_name指定的表或view_name所指的的视图中删除满足条件的行,若省略该条件,则表示删除所有行。
例【4-4】将XSCJ数据库的XS表中总学分小于39的行删除。
使用如下T_SQL语句:
USEXSCJ
DELETEFROMXS
WHERE总学分<39
GO
执行结果:
略。
4.3.3使用UPDATE语句修改数据(p89)
在T_SQL中,UPDATE语句可用来修改表中的数据行。
UPDATE语句的最基本格式如下:
UPDATE{table_name|view_name}
SETcolumn_name={expression|DEFAULT|NULL}[,…n]
[WHERE]
该语句的功能是:
将table_name指定的表或view_name指定的视图中满足条件的记录中由SET指定的各列的列值设置为SET指定的新值,如果不使用WHERE子句,则更新所有记录的指定列值。
例【4-7】将XSCJ数据库的XS表中学号为001110的学生的“备注”列值改为“三好学生”,使用如下的T_SQL语句:
USEXSCJ
UPDATEXS
SET备注=”三好生”
WHERE学号=001110
GO
执行结果:
略。
第五章
5.2.1管理对SQLServer实例的访问(p96)
●在windows身份验证模式下,SQLServer依靠操作系统来认证请求SQLServer实例的用户。
由于已经通过了Windows的认证,因此用户不需要在连接字符串中提供任何认证信息。
●在混合身份验证模式下,用户既可以使用Windows身份验证模式,也可以使用SQLServer身份验证模式来连接SQLServer身份验证需要用户在连接字符串中提供连接SQLServer的用户名和密码。
第六章
6.1.2T_SQL语音的分类(p119)
SQL语句分为以下三类:
●数据操作语句(DML)用于在数据库中检索、计算、插入、编辑和删除数据。
第四章至第十章介绍了数据操作语句SELECT、INSERT、UPDATE和DELETE。
第十四章介绍了语句START(或BEGIN)、COMMITH和ROLLBACK。
●数据定义语句(DDL)用于创建、修改和销毁数据表、索引、视图等数据库对象。
数据定义语句CREATE、ALTER和DROP将在随后的章节中逐一介绍。
●数据控制语句(DCL)用于授权某些与用户查看、更改、删除数据或数据库对象。
GRANT语句分配权限和角色(角色是一组权限的集合)。
REVOKE语句用于取消权限。
本书没有介绍GRANT和REVOKE,因为它们是数据库管理员的职责。
书中介绍的所以DBMS(除了Access)都支持GRANT和REVOKE,但与SQL标准有一些差异。
6.1.3T_SQL语法约定(p119)
1.注释:
●注释符“--”用于单行注释。
使用双连字符“--”作为注释符时,从双连字符开始到行尾的内容都是注释内容。
这些注释内容既可以与要执行的代码处于同一行,也可以另起一行。
双连字符“--”注释方式主要用于在一行中对代码进行解释和描述。
●注释符“/**/”。
用于注释多行文字。
在斜线星号“/**/”注释方式中,开始注释对“/*”和结束注释对“*/”之间的所有内容均可视为注释。
这些注释字符既可用于多行文字,也可以与执行的代码处于同一行,甚至还可以在可执行代码的内部。
6.2.3变量(p123)
(1)变量名称
每个变量必须有一个唯一的名称,用来标记系统所开辟的存储空间。
在SQLServer2008系统中,变量的命名规则如下:
●第一个字符必须是字母、数字、下划线或@符号。
需要注意的是,符号“@”开头的变量表示局部变量、符号“@@”开头的变量表示全局变量。
●变量名不能是T_SQL语言的系统保留字(如:
IF、ELSE、CONTINUE等),包括大写和小写形式。
●变量名中不允许出现空格或其他特殊字符。
(2)变量的值(p124)
语法格式如下;
格式一:
使用SET语句赋值
SET变量名称=表达式
格式二:
使用SELECT语句赋值
SELECT变量名称=表达式[,…n]
6.6.3逻辑运算符(p126)
【看后面的例子,看懂就行】
表格略。
6.4流程控制语句(p130)
6.4.1BEGIN…END语句
6.4.2IF…ELSE语句
例【6-6】设变量score,根据score的值判断成绩是否合格,并输出结论。
T_SQL语句如下:
DECLAER@scoreINT,@aNCHAR(10)
SET@score=55
IF@score>=60
SET@a=N’成绩合格’
ELSE
SET@a=N’成绩不合格’
SELECT@a
6.4.3CASE语句
6.5.4聚合函数(p138)
AVG:
返回一组值的平均值。
COUNT:
返回一组值中项目的数量,返回值为int类型。
MAX:
返回表达式或者项目中的最大值。
MIN:
返回表达式或者项目中的最小值。
SUM:
返回表达式中所有项的和,或者只返回DISTINCT值。
SUM只能用于数字列。
6.5.5用户自定义函数
例【6-14】创建一个内联表值函数xscj,返回指定学生的成绩。
ALTERFUNCTION[dbo].[xscj](@xhvarchar(12))
RETURNSTABLE
AS
RETURN
(
SELECT选课表.学号,课程表.课程名,选课表.分数
FROM选课表
INNERJOIN课程表ON(课程表.课程号=选课表.课程号)
WHERE[学号]=@xh
)
例【6-15】创建一个标量函数,改函数返回两个参数中的最大值。
CREATEFUNCTIONmax2(@par1real,@par2real)
RETURNSreal
AS
BEGIN
DECLARE@parreal
IF@par1>@par2
SET@par=@par1
ELSE
SET@par=@par2
RETURN(@par)
END返回参数
第七章
一、重点看P147-160,具体略。
二、P173习题七的第八大题。
(略)
第八章
看聚集索引和非聚集索引。
第九章
9.3约束的概念和类型(p187)
在SQLServer2008中,共有6种约束:
主键约束、唯一性约束、检查约束、默认约束、外部键约束、空值约束。
第十章
10.1存储过程
例【10-1】创建名为snoquery的存储过程:
通过用户输入的学生学号来查询学生的姓名、年龄、性别和所属院系。
(p207)
(1)启动SSMS,展开服务器。
(2)展开所需的“数据库”文件夹,展开要在其中创建存储过程的数据库。
本例中,我们展开stuinfo数据库。
(3)展开“可编程性”文件夹,在“存储过程”文件夹上单击鼠标右键,从弹出的快捷菜单中选择“新建存储过程”命令。
(4)系统弹出T_SQL语句编写窗口,其中的代码是创建存储过程的格式说明。
输入如下T_SQL代码:
CREATEPROCEDUREsnoquery
@xuehaochar(10)
AS
SELECTEsno学号,sname学生姓名,sage年龄,ssex性别,sdept所属院系
FROMstudent
WHEREsno=@xuehao
(5)代码输入结束后,只要将以上代码在“查询分析器”里在执行一次,系统就会在当前数据库中创建一个名为snoquery的存储过程。
单击刷新按钮,选择stuinfo数据库,在左边的树型列表中选择“存储过程”,就可以看到属于dbo(databaseowner)的存储过程dbo.snoquery。
10.2触发器
10.2.1触发器概述
触发器的种类:
DML触发器和DDL触发器
10.2.2
触发器中的逻辑(虚拟)表(p213)
Insert表中存放的是更新前的记录:
Deleted表中存放的是已从表中删除的记录:
例【10-6】创建触发器stu_delete,实现如下功能:
当按照学号删除student表中的某学生记录后,对应的该学生在sc表中的记录也被自动删除。
T_SQL语句如下:
USEstuinfo
GO
CREATETRIGGERstu_DeleteONStudent
FORDELETE
AS
DELECTFROMscWHEREsno=(SELECTsnoFROMdeleted)
执行后,我们查询student表和sc表,如图10-6(p215)所示,可以看到两个表中均存在学号为20070102的学生记录。
在student表中执行如下数据删除语句:
DELETEFROMstudentWHEREsno=’20070102’
第十一章(不考)
第十二章(不考)
第十三章(无)
附:
总结
1、对象:
create+datebase
altertable
dropview
DDL
2、数据:
insert+datebase
updatetable
deleteview
DML
3、where
select
from
as
for
重要的话不说三遍:
(所以我说四遍)
祝大家考试顺利!
祝大家考试顺利!
祝大家考试顺利!
祝大家考试顺利!