网络数据库复习重点.doc_第1页
网络数据库复习重点.doc_第2页
网络数据库复习重点.doc_第3页
网络数据库复习重点.doc_第4页
网络数据库复习重点.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网络数据库复习重点题型:判断、选择、 数据库操作(写程序、读程序、程序填空)一.基本知识: 1.对SQLserver2000企业版内存的要求。64MB以上 2.数据库文件的种类、各自的特点及相关知识。 主数据库文件.mdf:用来储存数据库的启动信息,还用于储存部分或全部数据;每个数据库有且只能有一个主数据库文件;次要文件.ndf:用于储存不能存储与主数据库文件的数据;一个数据可无次要数据库文件,也可有一个或多个;日志文件.ldf:包含用于恢复数据库的日志信息;一个数据库可以用一个或多个日志文件;主/次要文件的关系:如果主数据库文件足够大可以容纳数据库中的所有数据,则无需次要数据库,反之则需要; 3.SQLserver写日志和写数据库的顺序。 SQL Server中采取提前写入方式的事物,及对数据库的修改先写入事务日志中,再写入数据库; 4.UNIQUE约束、DISTINCT关键字、having子句的理解。UNIQUE约束(唯一性约束):唯一性约束指定一个或多个列的组合的值具有唯一性,以防止在列中输入重复的值,其约束值可为空;由于主码具有唯一性,因此主码不能再设置唯一性约束;唯一性约束最多可由16个列组成;DISTINCT关键字:过滤重复记录,用于返回唯一不同的值,只用于SELECT语句中;Having子句:指定组或聚合的搜索条件。HAVING只能与SELECT 语句一起使用。通常在“GROUP BY”子句中使用它。如果不使用“GROUP BY”子句,HAVING 的行为与WHERE子句一样。 5.视图的定义、索引的分类及聚集索引的特点,不适合创建索引的情况。视图定义:不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中索引分类:聚集索引与非聚集索引聚集索引的特点:聚集索引的顺序就是数据的物理存储顺序,具有较快的访问速度不适合创建索引的情况:1.在查询中几乎不涉及的列。2.包含太多重复值得列,如性别字段。3.数据类型为text、ntext或image的列。4.只有较少行数的表没有必要创建索引。 6.数据库的备份设备类型及相应特点、备份策略的种类及相应特点。备份设备:1. 磁盘备份设备(DISK):磁盘备份设备是硬盘或其他磁盘存储媒体上的文件,与常规操作系统文件一样2. 磁带备份设备(TAPE):磁带备份设备的用法与磁盘设备相同,但不支持远程备份 3. 命名管道备份设备(PIPE):这是微软专门为第三方软件供应商提供的一个备份和恢复方式,命名管道设备不能通过企业管理器来建立和管理,若要将数据备份到一个命名管道设备,必须在BACKUP语句中提供管道的名字备份策略:1. 完全备份:备份整个数据库,包括所有数据库对象与事务日志2. 差异备份:仅备份上一次完全数据库备份之后数据库中更改的部分3. 事务日志备份:记录数据库的更改活动信息,比如何用户于何时对数据库做了何种操作4. 文件和文件组备份:进行完全数据库备份通常耗时较长,可以仅备份数据库文件和文件组,在时间花销较小的范围内备份重要数据 7.SQLserver数据类型、通配符%、_的含义。 数据类型:整数数据类型、浮点数据类型、十进制数据类型、字符数据类型、日期和时间数据类型、货币数据类型、二进制数据类型、特殊数据类型 通配符含义:%:一个或多个字符 _:一个字符 补充: 字符列中任何单一字符 如abc表示abc三个字符中的任何一个字符 或!:表的非,如abc表示非abc三个字符中的任何一个字符8.SQLserver中各系统数据库各自的功能。SQL中共有master、model、msdb、northwind、pubs、tempdb 6个系统数据库1.master:master 数据库记录 SQL Server 系统的所有系统级别信息2.model:model 数据库用作在系统上创建的所有数据库的模板3.msdb:msdb 数据库供 SQL Server 代理程序调度警报和作业以及记录操作员时使用4.northwind:Northwind Traders 示例数据库包含一个名为 Northwind Traders 的虚构公司的销售数据,该公司从事世界各地的特产食品进出口贸易5.pubs:pubs 示例数据库以一个图书出版公司为模型,用于演示 Microsoft SQL Server 数据库中可用的许多选项。该数据库及其中的表经常在文档内容所介绍的示例中使用6.tempdb:tempdb 数据库保存所有的临时表和临时存储过程9.特殊的数据库角色、拥有最低权限的数据库用户帐户。 特殊的数据库角色:Public 拥有最低权限的数据库有户账户:Guest10.查看表行数及存储空间情况使用的系统存储过程。 SP_spaceused 表名11.存储过程、视图的优点。 存储过程优点:1:允许模块化程序设计;2:允许更快执行;3:减少网络流量; 4:可作为安全机制使用; 视图优点:1:为用户集中数据;2:掩盖数据库的复杂性;3:简化用户权限的管理;4:组织数据导出到其他应用程序;12.创建存储过程、视图时各自不能使用的语句。 创建存储过程中不能使用的语句:ALTER TABLE(修改表)、CREATE INDEX(创建索引)、CREATE TABLE(创建表)、ALL DBCC statements(所有的DBCC表达式)、DROP TABLE(删除表)、DROP INDEX(删除索引)、TRUNCATE TABLE(删除表内内容)、UPDATE STATISTICS(对表或是视图进行更新) 创建视图中不能使用的语句(在SELECT中):COMPUTE、COMPUTE BY、ORDER BY、INTO、OPTION、不能引用临时表或表变量13.规则与CHECK约束的区别。 不同点相同点CHECK约束建表时指定一列能有多条CHECK约束只应用于一列都是约束数据输入的规则单独存在一列只能有一条规则可应用于多列二.数据库应用。Student (学生信息表)学号姓名性别年龄系别SnoSnameSsexSageSdept95001李勇男20CS95002刘晨女19IS95003王明女18MA95004张立男19ISCourse(课程信息表)课程号课程名学分CnoCnameCcredit1数据库原理42高等数学23信息系统44操作系统35数据结构4SC(选课信息表)学号课程号成绩SnoCnoGrade95001192950012859500238895002290950033521.创建数据库。 要求在E:school中创建一个名为School的数据库; 程序代码如下:CREATE DATABASE School /*创建一个名为School的数据库*/ON( NAME=School, /*以后T-SQL所引用的数据库文件名(逻辑名)*/ FILENAME=E:schoolSchool.mdf, /*存放数据库数据的物理地址,也叫数据库物理名,注意带上后缀名.mdf*/SIZE=10, /*数据库大小,未指明单位则是MB,此数据库大小为10MB*/ MAXSIZE=20, /*此数据库可以增长到得最大值*/ FILEGROWTH=2 /*每次增长的值,此为2MB*/)LOG ON( NAME=School_log, FILENAME=E:schoolSchool.ldf, SIZE=10, MAXSIZE=20, FILEGROWTH=10% /*每次增长的值,此为每次增长数据库大小的10%*/)GO2.备份数据库。 请将上面创建的Schools数据库进行备份; 如要备份,则想要创建一个备份设备,我选择在E:school下创建一个名为MYDISK的DISK备份设备;具体代码如下:SP_ADDUMPDEVICE DISK,MYDISK,E:schoolMYDISK.BAK/*DISK为创建备份设备的类型;MYDISK为备份设备的逻辑名(引用名);E:schoolMYDISK.BAK为此备份设备的物理名,注意带上后缀.BAK;*/创建好备份设备后,我们既可以对数据库进行备份,具体代码如下:BACKUP DATABASE School TO MYDISK/*School为需要备份的数据库,MYDISK为备份设备;本语句将数据库School备份到了MYDISK备份设备上;*/3.创建表、对表中数据的插入、修改、删除操作。(注意主码、UNIQUE、CHECK、NOT NULL约束) 1.在数据库School中创建“学生信息表”,表中含有:Sno、Sname、Ssex、Sage、Sdept五列学生信息,其中,Sno为主码且不为空,Sname、Ssex、Sdept不能为空,Sdept默认为CS,Sage要求输入值为15-25之间;具体代码如下:USE SchoolGOCREATE TABLE Student /创建一张名为Student的表( Sno varchar(10) PRIMARY KEY NOT NULL, /*PRIMARY KEY 主键约束(定义主码),NOT NULL 不为空约束;由于UNIQUE都为唯一性约束,此段亦等价于:Sno varchar(10) NOT NULL UNIQUE*/ Sname varchar(20) NOT NULL, Ssex varchar(5) NOT NULL, Sage int NOT NULL CHECK(Sage=15 AND Sage=25), /*CHECK条件约束输入值必须在15-25之间,此段也可写作:Sage int NOT NULL CHECK(Sage between 15 and 25)*/ Sdept varchar(5) NOT NULL DEFAULTCS) /*DEFAULTCS,默认为值CS*/2.依次在建立“选课信息表”和“课程信息表”;其具体代码如下:USE SchoolGOCREATE TABLE SC( Sno varchar(10) NOT NULL, Cno int NOT NULL, Grade int NOT NULL CHECK(Grade between 0 and 100)GOCREATE TABLE Course( Cno int NOT NULL UNIQUE, Cname varchar(20) NOT NULL, Ccredit int NOT NULL)3.将学生信息表的内容添加到学生信息表;其具体代码如下:USE SchoolGOINSERT INTO /*插入数据语句,每一条INSERT INTO语句对应一条数据*/Student(Sno,Sname,Ssex,Sage,Sdept) /*Student为要插入数据的表,()内为需要添加数据的列*/VALUES(95001,李勇,男,20,CS) /*()内的值必须按上面()内的列排列,非INT类型的值需要用*/INSERT INTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES(95002,刘晨,女,19,IS)INSERT INTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES(95003,王明,女,18,MA)INSERT INTOStudent(Sno,Sname,Ssex,Sage,Sdept)VALUES(95004,张立,男,19,IS) 4.将选课信息表与课程信息表中的数据添加到各自的表中;其具体代码如下:USE SchoolGOINSERT INTOSC(Sno,Cno,Grade)VALUES(95001,1,92)INSERT INTOSC(Sno,Cno,Grade)VALUES(95001,2,85)INSERT INTOSC(Sno,Cno,Grade)VALUES(95002,3,88)INSERT INTOSC(Sno,Cno,Grade)VALUES(95002,2,90)INSERT INTOSC(Sno,Cno,Grade)VALUES(95003,3,52)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(1,数据库原理,4)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(2,高等数学,2)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(3,信息系统,4)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(4,操作系统,3)INSERT INTOCourse(Cno,Cname,Ccredit)VALUES(5,数据结构,4)4.对用户的授权、收回权限。 对用户LIU和LIUCHEN授予在School数据库中创建表和修改表的权限,并允许权限授予其他用户;其具体代码如下:USE SchoolGOGRANT CREATE TABLE,ALTER TABLE TO LIU,LIUCHENWITH GRANT OPTION /*允许权限授予*/4.多表查询、单表查询。(注意分组、排序的情况) 单表查询:查询Student信息表中李勇的信息;具体代码如下:USE SchoolGOSELECT Sno AS 学号,Sname AS 姓名,Ssex AS 性别,Sage AS 年龄,Sdept AS 系别/*查询的列名,由于此为全字段查询,如无需取别名,可以写为:SELECT * (*代表全字段)*/FROM Student /*在那查询,此代码为在Student表中查询*/WHERE Sname=李勇 /*查询条件;此为查询Sname为李勇*/多表查询:查询李勇的选课信息;具体代码如下:USE SchoolGOSELECT B.Sno AS 学号,A.Sname AS 姓名,B.Cno AS 课程号,B.Grade AS 成绩FROM Student A join SC B on A.Sno=B.Sno /*多表查询语句:join on语句,on后跟上两张表共同字段*/WHERE A.Sname=李勇分组排序:在SC表中查询学生的平均成绩;其具体代码如下:USE SchoolGOSELECT Sno AS 学号,AVG(Grade) AS 平均成绩FROM SCGROUP BY Sno /*GROUP BY 分组;注意使用GROUP BY时SELECT中的字段必须是聚合函数或包含与GROUP BY中,不然代码无法执行.*/ORDER BY Sno DESC /*ORDER BY 排序,注意后面的参数,不带参数时默认是ESC为升序排列,带DESC时为降序排列*/6. 创建视图、修改视图、创建存储过程(注意带参数的情况)、 创建触发器。 一.视图:创建视图:在School数据库中建立一个名为AAA的视图,用于从数据库中检索高等数学的选修情况;其具体代码如下:CREATE VIEW AAAA(学号,姓名,系别,成绩) /*在视图中显示的列名,与下面SELECT中的字段按序对应*/WITH ENCRYPTION /*加密视图*/ASSELECT A.Sno,A.Sname,A.Sdept,B.GradeFROM Student A join SC B on A.Sno=B.Sno join Course C on B.Cno=C.CnoWHERE C.Cname=高等数学 /*注意三表的链接,A与B有公共字段Sno,B与C有公共字段Cno.*/WITH CHECK OPTION /*加以条件约束,详见书:P151*/GO检索视图:使用AAA视图来检索数据,要求按照学号降序排列:其具体代码如下:USE SchoolGOSELECT *FROM AAAORDER BY 学号 DESC修改视图:1.将AAA视图中的学号与姓名合并成 学生 “95001李勇”式样;具体代码如下:ALTER VIEW dbo.AAA(学生,成绩) /*修改视图格式为:ALTER VIEW 数据库所有者.视图名(.);在这,dbo为数据库所有者,一般使用dbo*/ASSELECT A.Sno+ + +A.Sname,B.GradeFROM Student A join SC B on A.Sno=B.Sno join Course C on B.Cno=C.CnoWHERE C.Cname=高等数学2.重命名视图名:将视图AAA重命名为AA;其具体代码如下:SP_RENAME AAA,AA,OBJECT /*OBJECT为对象类型,是由系统表SYSOBJECT跟踪对象类型,可以使约束,也可以是用户建立的表、视图、存储过程、触发器以及规则*/3.删除视图:将视图AA删除;其具体代码如下: DROP VIEW AA二.存储过程 定义在数据库School中的存储过程AAA,要求需要输入姓名来查询关于该学生的选课信息;具体代码如下:IF EXISTS( SELECT * FROM Sysobjects WHERE name=AAA and type=P ) DROP PROC AAAGO /*以上段为判断是否有同名的存储过程存在,若存在则删除*/CREATE PROC AAA /*建立存储过程 AAA*/AAA CHAR(5) /*定义参数*/ ASSELECT A.Sno AS 学号,A.Sname AS 姓名,C.Cname AS 课程名,B.Grade AS 成绩,C.Ccredit AS 学分FROM Student A join SC B on A.Sno=B.Sno join Course C on B.Cno=C.CnoWHERE A.Sname=AAA /*查询条件带参数*/GOEXEC AAA 刘晨 /*调用带参数的AAA存储过程*/GO删除存储过程:删除AAA存储过程:DROP PROC AAA修改存储过程与重命名存储过程详见书:P179-180三.触发器 1.在数据库School中创建一张名为SCOUNT的表,表内有一列SCOUNT记录Student表中的列数,再创建一个名为tr_Student的触发器,使在Student中的列数增加一行时自动将SCOUNT表中的Scount自动+1;具体代码如下:USE SchoolGOCREATE TABLE SCOUNT(Scount int not null)GO /*以上为创建SCOUNT表*/INSERT INTO SCOUNTSELECT COUNT(*)FROM StudentGO /*以上为初始化表SCOUNT中的S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论