第一章 SQL Server 2000概述
1.数据处理的中心问题是 数据管理,即对数据进行分类、组织、编码、储存、检索和维护。
2.数据库系统是当代计算机系统的重要组成部分,数据库技术所研究的问题是如何科学地_组织和存储数据,如何高效地获取和处理数据。
3.SQL Server是一个大型B 数据库管理系统。
A 网状 B 关系 C 层次
4.在关系数据库中,信息被存放在二维表结构的表中。一行代表一个实例,行中的列表示记录中一个 特征(属性) 的值。
5.SQL Server 2000采用客户/服务器计算模型,该模型分为两层的客户/服务器结构和多层的客户/服务器结构。
??6.简述数据库系统采用客户/服务器结构的好处。
答: (1)客户/服务器将处理工作分配在客户系统和数据库服务器上。
(2)客户/服务器不必在网络中往返传递整个数据库文件。
(3)客户/服务器体系结构允许每个工作人员使用最适应特定工作的应用程序。
(4)客户/服务器体系结构将一个应用程序分为两部分,并在两部分内达到最好效果。
(5)将客户和服务器分开,使工作站具有独立性,用户不必局限于一种类型的平台。
(6)客户/服务器系统还能保证数据的完整性。
7.什么是SQL?什么是T-SQL?
答:SQL全称是“结构化查询语言(Structured Query Language)”的缩写。是介于关系代数和关系演算之间的语言。主要用于查询,还提供了一系列完整的数据定义、数据操纵和数据控制功能。
T-SQL (Transact SQL,简称T-SQL)是标准 SQL 程序设计语言的增强版,它是用来让应用程序与 SQL Server 沟通的主要语言。T-SQL 提供标准 SQL的DDL 和 DML 功能,加上延伸的函数、系统预存程序以及程序设计结构(例如 IF 和 WHILE)让程序设计更有弹性。
8.SQL Server 2000包含三大部件:数据库服务器(Database Server)、联机分析服务(Analysis Services)和英语查询(English Query)。
9.数据库服务器有三种安装版本可供选择,它们是:企业版(Enterprise Edition)、标准版(Standard Edition)和个人版(Personal Edition)。
10.启动SQL Server服务器有三种方法:使用SQL Server Service Manager设置、在Windows NT/2000的控制面版中设置和命令行方式启动。
第二章 SQL Server 2000管理工具和实用程序
1.服务管理器是用来启动、停止和暂停SQL Server服务的。这些服务在Windows NT/2000下也可以通过控制面板的服务项来启动或停止。
2.什么是客户机?客户机网络连接工具(SQL Server Network Utility)的作用是什么?
答:当一台计算机连接其他计算机上的SQL Server服务器时,这台计算机就被称为客户机,
客户机网络连接工具的作用就是设定本机访问位于其他计算机上的SQL Server服务器时所使用的网络库。
3.服务器网络连接工具(SQL Server Network Utility)的作用是什么?
答:与客户机网络连接工具相反,服务器网络连接工具用于配置服务器上各SQL Server实例支持的网络库及其对应参数。
4.在“开始”菜单的Microsoft SQL Server程序组中选择Enterprise Manager即可启动企业管理器。
5.在查询分析器窗口中用户可以输入SQL语句,并按F5键,或单击工具栏上的向右按钮,将其送到服务器执行,执行的结果将显示在输出窗口中。用户也可以打开一个含有SQL语句的文件来执行,执行的结果同样显示在输出窗口中。
6.在“开始”菜单的Microsoft SQL Server程序组中选择Query Analyzer即可启动查询分析器。
7.SQL Server 2000的四个系统数据库是:master数据库、tempdb数据库、model数据库和msdb数据库。
__8.SQL Server 2000用文件来存放数据库,数据库文件有三类:主数据文件、其他数据文件和事务日志文件。
9.在默认状态下,数据库文件存放在\MSSQL\data\目录下,数据文件名的保存形式是数据库名_Data.MDF,日志文件名的形式是数据库名_Log.LDF。
__10.要创建数据库,用户必须是sysadmin或dbcreator服务器角的成员,或被明确赋予了执行CREATE DATABASE语句的权限。
11.每个数据库都有一个相关的事务日志,它记录了SQL Server所有的事务和由这些事务引起的数据库的变化。
12.当数据库处于以下三种情况之一时,不能被删除:当有用户使用此数据库时;当数据库正在被恢复时;当数据库正在参与复制时。系统数据库中的master、model、tempdb和msdb都不能被删除。
13.请你分别创建一个视图、存储过程和触发器,并在查询分析器中运行通过。
答:1)创建视图:
学生视图为SX表和SY表自然连接的结果
create view学生(学号,姓名,性别,年龄,所在系)
as select SX.学号,SX.姓名,SX.性别,SY.年龄,SY.所在系
from SX,SY
where SX.学号=SY.学号
2)创建存储过程:
create procedure 全部学生
as select *
from 学生
go
execute 全部学生
3)创建触发器:
利用触发器来保证学生选课库中的选课表的参照完整性,以维护其外码与参照表中的主码一致。
Create trigger sc_insert on 选课
For insert
As if(select count(*)
Form 学生,inserted,课程
Where 学生.学号=inserted.学号 and 课程.课程号=inserted.课程号)=0
Rollback transaction
14. SQL Server 2000有哪些系统数据库,他们的作用分别是什么?
答:SQL Server 2000有四个系统数据库,master数据库、tempdb数据库、model数据库和msdb数据库。
Master数据库记录了SQL Server系统级的信息。
Tempdb数据库用于存放所有连接到系统的用户的临时表和临时存储过程,以及SQL Server 产生的其他临时性对象。
Model数据库是系统所有数据库的模版。
Msdb数据库用了安排报警、作业,并记录操作员。
15.存储过程的概念,存储过程的优点是什么?
答:在开发SQL Server应用程序的过程中,T-SQL语句是应用程序与SQL Server数据库之间使用的主要编程接口。
优点:允许模块化编程,增强代码的重用性和共享性。
使用存储过程可以加快运行速度。
使用存储过程可以减少网络流量。
存储过程可以作为安全性机制。
第三章 SQL Server 2000编程结构
1.简单叙述批、脚本sql server两种身份验证模式、局部变量、全局变量和事务的概念。
答:批:指由一条或多条T-SQL语句组成的语句集,这些语句一起提交并作为一个组来执行。一个批中的所有语句被当作一个整体,而被成组地分析、编译和执行。
脚本:脚本是一系列顺序提交的批。
局部变量:局部变量是以@开关的用户定义的变量,它用DECLARE语句声明,用户可以在与定义它的DECLARE语句的同一批中用SET为其赋值。
全局变量:全局变量是以@@开头的,SQL Server系统提供并赋值的变量。
事务:就是一个操作序列,序列中的操作作为一个不可分割的工作单元,要么都执行,要么都不执行。事务是并发控制的基本单位。事物有四个特性:原子性、一致性、隔离性、持续性。
2. 应用学过的流控制语句编写一个较大的程序。
答:下面举个例子:CASE表达式经常和SELECT语句联用。
在“图书管理”数据库中列出借阅表中长期不还书的记录(按借1年以上,2年以上,3年以上的形式表示)。
Select 书号,读者书证号,已借阅期限=
Case year(GETDATE())-year(借阅日期) //当天年 ----借阅年份
When 1 then ‘借1年以上’
When 2 then ‘借2年以上’
When 3 then ‘借3年以上’
Else ‘借时间太长’
End
From 借阅
Where year(GETDATE())-year(借阅日期)>0
该例使用了两个函数:GETDATE()为取当天日期;year()为取日期的年份。用当天年份减去借阅年份表示已借书的时间。
3. 应用学过的游标使用方法编写一个较大的程序。
答:查询某个系全体学生的信息,然后根据用户的要求修改除其中某些记录。
……
exec SQL begin declare section;
……
/*说明主变量Dept,Sno,Sname,Sage等*/
……
Exec SQL end declare section;
……
gets(Dept);
……
Exec SQL declare sx cursor for
Select 学生,姓名,年龄
From 学生
Where 所在系=:Dept; /*说明游标SX*/
Exec SQL open sx
While(1){
exec SQL FETCH SX into:Sname,:Sage; exec和execute意思一样 执行后面的语句
/*游标指针向前推进一行,然后从结果集中取当前行,送相应主变量*/
if(sqlca.sqlcode<>SUCCESS)
break; /*若所有查询结果均已处理完或出现错误,则退出循环*/
printf(“%s, %s, %d,Sno,Sname,Sage”);
/*显示该记录*/
printf(“DELETE?”)/*问用户是否删除*/
scanf(“%c”,&yn);
if(yn=’y’ or yn=’Y’)
exec SQL delete
from 学生
where current of SX; /*删除当前记录*/
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论