SQL数据库考试资料.docx
《SQL数据库考试资料.docx》由会员分享,可在线阅读,更多相关《SQL数据库考试资料.docx(15页珍藏版)》请在冰豆网上搜索。
SQL数据库考试资料
数据库应用基础总结
数据库(DataBase,DB)
是指存储在计算机存储设备上结构化的相关数据集合。
它不仅包括描述事物的数据本身,而且还包括相关事物之间的联系。
可以被多个用户共享的、与应用程序相互独立。
SQL(StructuredQueryLanguage)是用来对存放在计算机中的数据库进行组织、管理和检索的语言。
SQL按其功能可以分为三大部分
SQL功能
动词
数据定义
CREATE
数据操纵
INSERT、UPDATE、DELETE、SELECT
数据控制
GRANT
数据库系统所支持的模型主要有
•关系模型通过关系,按给定的选择条件,选出符合条件的元组,较灵活
•层次模型要查找一个记录必须从根记录开始,按给定条件沿一个层次路径进行查找
•网状模型在查找语句中要说明查找的对象和存取的路径,操作较繁琐
文件和文件组、SQLServer2005数据库至少具有两个系统文件:
主要数据文件:
该文件包含数据库的启动信息,并用于存储数据,扩展名是.mdf
次要数据文件(可选):
由用户定义并存储,这些文件含有不能置于主要数据文件中的所有数据,扩展名是.ndf
事务日志:
这些文件包含用于恢复数据库的日志信息。
每个数据库都必须至少有一个日志文件,扩展名是.ldf数据库的文件组成
基本概念
v实体(Entity):
在信息世界中的客观事物,它是现实世界中任何可区分、识别的事物。
实体可以是具体的人或物,也可以是抽象概念。
例如:
学生、教材等。
v关系(Relation):
一个关系对应一张二维表,每个关系有一个关系名。
在SQLServer中,一个关系就是一个表文件。
v元组(Tuple):
二维表中水平方向的一行,有时也叫做一条记录。
v属性(Attribute):
表格中的一列,相当于记录中的一个字段。
v关键字(Key):
可唯一标识元组的属性或属性集,也称为关系键或主码。
v域(Domain):
属性的取值范围,如性别的域是(男,女)。
v分量:
每一行对应的列的属性值,即元组中的一个属性值。
v关系模式:
对关系的描述,一般表示为:
关系名(属性1,属性2,……属性n)。
SQLServer中常用的数据库对象
对象作用
表数据库中数据的实际存放地
视图定制复杂或常用的查询,以便用户使用;
限定用户只能查看表中的特定行或列;
为用户提供统计数据而不展示细节
索引加快从表或视图中检索数据的效率
存储过程提高性能;封装数据库的部分或全部细
节;帮助在不同的数据库应用程序之间实
现一致的逻辑
约束、规则、确保数据库的数据完整性;强制执行业务默认值和触发器规则
登陆、用户、保障数据安全的基础
角色和组
1创建数据库2创建表3数据查询4索引及视图5存储过程6触发器
7自定义函数8数据安全及流程控制语句9数据备份及ODBC
用T-SQL命令创建数据库
例:
在D盘根目录下创建名为My_DB的数据库,其主文件大小为10MB,最大大小为30MB,日志文件大小为10MB。
CREATEDATABASEMy_DB
ON
PRIMARY(NAME=My_DBData,
FILENAME=‘D:
\My_DB.mdf’,
SIZE=10MB,
MAXSIZE=30MB,
FILEGROWTH=2MB)
LOGON
(NAME=My_DBLog,
FILENAME=‘D:
\My_DB.ldf’,
SIZE=10MB,
MAXSIZE=20MB,
FILEGROWTH=25%)
COLLATEChinese_PRC_CI_AS
例:
数据库文件My_DBData的初始分配空间大小为10MB,指派给my_DB数据库使用,现在想将其大小扩充至20MB,则具体操作命令如下:
USEMy_DB
go
ALTERDATABASEMy_DB
MODIFYFILE
(NAME=My_DBData,
SIZE=20MB)
表的概念数据库—表—记录—字段—属性
USEmy_db1
GO
CREATETABLEstud_info
(stud_idchar(10),namenvarchar(5),birthdaydatetime,gendernchar
(1),
addressnvarchar(20),telcodechar(12),zipcodechar(6),Deptcodetinyint
CONSTRAINTpk_siPRIMARYKEY(stud_id))
altertablestud_info
addcolumnstud_idchar(10)notnull
go
altertablestud_info
addconstraintpk_si
primarykey(stud_id)
Altertablestud_scoreAddconstraintfk_shforeignkey(stud_id)referencesstud_info(stud_id)
NOCHECK选项
•当向定义有约束的表中插入新记录或修改记录时,用户可使用NOCHECK选项来禁止对新数据的约束检查
总计(聚合)函数有六个,它们分别是:
•SUM():
求总和AVG():
求平均值MIN():
求最小值MAX():
求最大值COUNT():
传回非NULL值的字段数目COUNT(*):
传回符合查询条件的数目
关于字符匹配
%:
匹配任意长度的字符串
_:
只匹配一个字符,如‘_ean’[]:
匹配对指定范围,例如
LIKE‘[ACK]%’返回以“A”、“C”或“K”开始的任意字符串
[^]:
可以匹配不属于指定范围的任何单个字符,例如
LIKE'M[^c]%'返回以“M”开始且第二个字符不是“c”的任意长度的字符串
Select列名|数学运算
From表名
Where具体条件
Select函数
From表名
Groupby列名
Having具体条件
索引概述
在数据库中,索引使数据库程序无需对整个表进行扫描,就可以在其中找到所需数据
数据库中的索引是一个表中所包含的值的列表,其中注明了表中包含各个值的行所在的存储位置
创建索引的考虑因素
(1)加快数据检索2.加快表的连接,排序和分组工作3.增强数据行的唯一性
索引是否必须?
•创建索引需要占用数据空间并花费一定的时间
•建立索引会减慢数据修改速度
索引的分类
USEMy_DB1
GO
CREATECLUSTEREDINDEXCusIndex
ONTest_Table(CustomerID)
usemy_db1
Go
CREATEVIEWmy_view3(编号,姓,名)
AS
SELECTau_id,au_lname,au_fname
FROMauthors
usemy_db1
go
createprocmy_procedure1
as
select*fromdiagrms
wherediagrm_id>=100andprincipal>=200
go
usemy_db1
go
Execmy_procedure1
存储过程
触发器
通过名称被调用
通过触发被调用
可以传递或接受参数
不能传递或接受参数
Deleted表和Inserted
vSQLServer为每个触发器都创建了两个专用表:
InsertED表和DeleteD表。
这两个逻辑表,由系统来维护。
用户不能对它们进行修改。
它们存放在内存中而不是数据库中。
这两个表的结构总是与被该触发器作用的表的结构相同。
触发器执行完成后,与该触发器相关的这两个表也被删除。
Deleted表
v存放由于执行Delete或Update语句而要从表中删除的所有行。
v在执行Delete或Update操作时,被删除的行从激活触发器的表中被移动到Deleted表,这两个表不会有共同的行。
Inserted表
v存放由于执行Insert或Update语句而要向表中插入的所有行。
v在执行Insert或Update操作时,新的行同时添加到激活触发器的表和Insertd表中,Insertd表的内容是激活触发器的表中新行的备份。
getdate()得到当前系统日期时间year()得到日期参数的年份
如何调用用户自定义标量值函数
Use数据库goSelect函数名(具体参数值|字段名)
[from表名][where条件]
下面示例使用新建立的内嵌表值函数my_function3来获取“巴黎”市的所有客户和供应商的信息
下面举例说明使用多语句表值函数my_function4分别获取来自Paris的所有客户和供应商的信息。
用系统存储过程sp_helpdb来显示数据库和数据库参数的有关信息
Sp_help显示数据库对象的相关信息(包括:
表、视图、存储过程、触发器及自定义函数等)
删除名字为tsinghua的数据库命令如下:
DROPDATABASEtsinghua
删除表、视图、存储过程等数据库对象:
DROPtable|view|proc|trigger|function数据库对象名称
删除表中所有的数据:
Deletefrom表名
删除表中某一列的数据:
Delete具体列名from表名
常用的流程控制语言
DECLARERETURN
RAISERRORPRINT
CASEWHILE
BEGIN…ENDIF…ELSE
BREAKCONTINUE
SQLServer的安全性
SQLServer2005的权限
SQLServer2005中的权限分为三种:
•对象权限语句权限隐含权限
数据库备份与恢复的概念
备份(backup):
是指在某种介质上(磁盘)存储数据库(或其中一部分)的复制
恢复(restore):
是指及时将数据库返回到原来的状态
数据库完全备份与恢复的T-SQL语句
例:
将数据库m备份到一个磁盘文件上。
BACKUPDATABASEmTO
DISK=‘D:
\m.BAK’
例:
从磁盘D上的备份文件m.BAK恢复数据库m
RESTOREDATABASEmFROM
DISK=‘D:
\m.BAK’