(SELECT*
FROM参加 参加 2
WHERE 参加2.编号=参加1.编号AND
参加2.职工号一职工.职工号));
7)SELECT TCOUNT(职工号) FROM 参加 GROUP BY编号;
8)SELECT社会团体.名称,COUNT(参加.职工号)
FROM社会团体 参加
8)UPDATE 零件 SET颜色=‘蓝色’ WHERE颜色=‘红色’; 9)UPDATE 供应零件 SET供应商代码=‘S3’
WHERE供应商代码=‘S5’ AND工程代码=‘J4’AND零件代码=‘P6’; 10)DELETE
FROM供应零件
WHERE供应商代码=‘S2’; DELETE FROM供应商
WHERE供应商代码=‘S2’ 4.答:
在嵌入方式下 ,SQL语句在嵌入主语言的程序时其前缀加 EXEC SQL ;其结束处用EN D_EXEC或用分号“;”。
5.答:
数据库的工作单元和程序工作单元之间通信的主要方式有:主语言通过主变量向SQL语句提供参数;SQL语旬的当前工作状态和运行环境数据要返馈给应用程序。
6.答:
使用游标解决SQL一次一集合的操作与主语言一次一记录操作的矛盾。游标是系统为用户开设的一个数据缓冲区 存放SQL语句的执行结果。用户可以通过游标逐一获取记录.并将记录赋给主变量.交给主语言做进一步处理。
7.答:B 8.答:C 9.答:A 10.答:C 11.答:C
WHERE 所在城市=‘天津’));
习题六
1. 客户机/服务器体系结构的特点是什么?SQL Server2000客户机/服务器的结构特点是什么?
2. 简述SQL Server2000客户机/服务器的体系结构和软件结构。
3. SQL Server2000的物理数据库有哪些文件构成?逻辑数据库有哪些内容构成?
4. SQL Server2000的数据库中有哪些数据库对象?这些数据库对象在数据库系统中分别起什么作用。
5. 简述SQL Server2000的4个最主要的系统数据库及作用。 6. 简述SQL Server2000的主要管理功能。
7. 简述SQL Server2000提供的主要管理工具及功能。
8. Transact-SQL与标准SQL相比,数据查询语句有什么不同之处?
9. 设要建立学生选课数据库,库中包括学生、课程和选课3个表,其表结构为: 学生(学号,姓名,性别,年龄,所在系); 课程(课程号,课程名,先行课), 选课(学号,课程号,成绩)。 用 Transact-SQL完成下列操作。 l)建立学生选课库。
2)建立学生、课程和选课表。
3)建立各表以主码为索引项的索引。
4)建立学生性别只能为“男”或“女”的规则,性别为“男”的缺省,并将它们绑定在学生表上。
5)建立在对选课表输入或更改数据时,必须服从参照完整性约束的INSERT和UPDATE触发器。
6)建立在删除学生记录时,同时也要把相应的选课记录删除的触发器。 7)查询各系及学生数,最后来出共有多少系和多少学生。 8)将学生表和选课表进行内连接、左外连接和右外连接。
9)列出学生学号、姓名及学习情况。学习情况用好、较好、一般或较差表示。当平均成绩大于85分时,学习情况为好;当平均成绩在70~85分之间,学习情况为较好;当平均成绩在60~70分之间,学习成绩为一般;平均成绩在60分以下的为学习情况较差。
习题六解答
1.答:
客户机/服务器(Client/Server)是分布式数据库与网络技术相结合的产物,C/S系统
可以通过网络连接产品将多台计算机连接为企业内部网,能够与Internet相连并发布网页。
网络中的一台或多台计算机称为服务器(Server),其他的计算机称为客户机(Client)。在C/S系统中,应用程序安装在客户机端,客户机端实现用户界面和前端处理功能;数据库服务器程序安装在服务器端,由服务器实现分布事务的协调和数据访问控制。
SQL Server 2000的客户机/服务器体系是N层结构的,其中N可以是2、3、4或更大值。2层客户机/服务器数据库系统的结构最简单,它包括一个数据库服务器和多个SQL客户机。多层客户机/服务器数据库系统结构可以简单地分为:后端服务器、中间端服务器和客户机,其中,中间端服务器可以是多层的。中间端服务器可以管理一个或多个独立的数据库,每个中间服务器都是一个独立的实体,能够为客户机或前级服务器提供与自己数据库相关的事务服务和数据预处理工作。后端服务器是中间服务器的后台,它能够管理多个中问服务器,并能够提供整个数据库系统的事务管理功能。
2.答:
SQL Server 2000的数据库系统结构采用多层客户/服务器系统结构。其软件结构为客户软件、网络软件和服务器软件。客户软件包括客户应用程序软件、服务器的数据库应用程序、编程接口 API和网络资源库;网络软件包括网络传输协议及网络资源库; SQL服务器软件由网络链接库、开放式数据服务、SQLServer代理服务程序、SQLServer服务器服务以及分布事务管理服务5部分构成。 3.答:
SQL Server的物理数据库由两个或多个物理文件组成,一个物理数据库中至少有一个数 据库数据文件和一个数据库事务日志文件。 逻辑数据库中有表、视图、图表等数据库对象。 4.答:
SQL Server的数据库对象包括表、视图、用户、角色、索引、数据类型、默认值、存储 过程、触发器和约束等。
①表和视图;表,即基本表,它是在数据库中存放的实际关系;视图是为了用户查询 方便或根据数据安全的需要而建立的虚表。 ②用户和角色;用户是数据库系统的合法使用者;角色是由一个或多个用户组成的单元,角色也称职能组。
③素引:索引是用来加速数据访问和保证表的实体完整性的数据库对象。SQL Serve中的索引有群聚和非群聚索引两种:群聚京引会使表的物理顺序与索引顺序一致,一个表只能有一个群聚索引;非群聚索引与表的物理顺序无关,一个表可以建立多个非群聚索引。
④存储过程:存储过程是通过Trantact-SQL编写的程序。存储过程包括系统存储过程和用户存储过程;系统存储过程是由SQL Server提供的,其过程名均以SP开头;用户过程是由用户编写的,它可以自动执行过程中安排的任务。
⑤触发器:触发器是一种特殊类型的存储过程.当表中发生特殊事件时执行。触发器主要用于保证数据的完整性。
⑥约束:约束规则用于加强数据完整性。 5.答:
系统数据库是由 SQL Server内部创建和提供的一组数据库。其中最主要的数据库有 4个。它们分别是Master、Msdb、Model和Tempdb。
① Master数据库:用于记录所有SQL Server系统级别的信息,这些信息用于控制用户数据库和数据操作。
②Msdb数据库:由 Enterprise Manager和Agent使用,记录着任务计划信息、事件处理信息、数据备份及恢复信息、警告及异常信息。
③Model数据库:SQL Server为用户数据库提供的样板,新的用户数据库都以 model数据库为基础。每次创建一个新数据库时,SQL Server先制作一个model数据库的拷贝,然后再将这个拷贝扩展成要求的规模。
④tempdb数据库:一个共享的工作空间,SQL Server中的所有数据库都可以使用它。它为临时表和其他临时工作提供了一个存储区。 6.答:
①SQL服务器的安装、配置和管理:为了使用SQL服务器,必须先对它们进行安装和配置。当系统中有多台SQL服务器时,还需要将它们链接.使它们协同工作。
②服务管理:在SQL客户机安装相应的软件并正确配置它们。
③数据库管理:包括数据库的创建、修改、删除以及备份和恢复等。
④数据库对象的管理:管理数据库中的表、视图、存储过程、触发器、规则、缺省值等。 ⑤数据管理:实现记录的添加、删除和修改以及数据的传递与复制等。 ⑥安全性管理:包括用户管理和权限管理两方面的内容。 ⑦作业管理:包括警报管理、操作员管理和任务管理。
⑧集成操作:SQL Server与电子邮件系统和Web服务器的交互操作。 7.答:
①查询分析器:编辑Transact-SQL,将其发送到服务器,并将执行结果及分析显示出 来或进行存储。
②导人和导出数据:通过向导实现SQL Serve与任何 OLE DB、ODBC、JDBC或文本文件等多种不同类型的数据库之间实现数据传递。
③服务管理器:用于开启、暂停和停止SQL服务工作,同时.也可以通过它设置服务是否自动启动。
④客户机网络连接工具和服务器网络连接工具:客户机网络连接工具用于设置本机作为服务器或客户机所使用的缺省网络链接库,井可为不支持缺省网络库的 SQL服务器设置连接方式。服务器网络连接工具用于设置本机作为服务器时允许的连接协议,以支持不同配置的客户端。
⑤联机丛书:SQL Server2000为用户提供在线帮助功能。
⑥企业管理器;实现对管理对象的定义、改动、删除等各种操作。
⑦事件探查器:服务器活动跟踪程序,用于监视与分析SQL Server活动、SQL Server服务器的网络进出流量或发出在 SQL S_上的事件。
⑧在IIS中配置SQLXh4L支持:设置井管理IIS虚拟目录。
⑨分析管理器:管理分析服务器;创建数据库和指定数据源;生成并处理多线数据集;创建并处理数据挖掘模型;指定存储选项并优化查询性能.管理安全性.浏览数据源、共享维度、安全角色和其他对象。
⑩英语查询工具:为用户提供了用英语询问,而不是用SQL语句进行数据查询的方式。 8.答:
①新增加INTO、COMPUTE和COMPUTE BY三种子句:INTO子句用于创建一个表,并将查询结果添加到该表中;COMPUTE子句的作用是产生汇总值,并在结果集中后将汇总值放入摘要列,COMPUTE与BY配合,将起到换行控制和分段小计的作用。
②SELECT中增加了[TOP〈数值〉[PERCENT]短语,增加了〈列名或表达式〉[AS]〈列别名〉及〈列别名〉=〈表达式〉的列组表示方法。
③FROM子句中新增加了连接表类型及连接表示,数据源中可以使用嵌套的SELECT语句。
④TSQL用GO表示语句结束,标准SQL用分号‘:’表示结束。 9.答:
l)CREATE DATABASE学生选课库
ON PRIMARY(NANE=学生选课库,
FILENAME=‘C:\msSQL\\data\\学生选课.mdf’, SIZE=4MB,
MAXSIZE=6MB, FILEROWHT=2MB) GO
2)CREAT TABLE学生(学号 CHAR10)PRIMARY KEY CLUSTERED,
姓名CHAR(8), 性别 CHAR(2), 年龄SMALLINT
所在系VARCHAR(50))
GO
CREAT TABLE课程(课程号CHAR(10)PRIMARY KEY CLUSTERED,
课程名VARCHAR(50), 先行课VARCHAR(50))
GO
CREATE TABLE选课(学号 CHAR(10),
课程号VARCHAR(50), 成绩SMALLINT,
CONSTRAINT C1 PRIMARY KEY(学号,课程号),
CONSTRAINT C2 FOREIGN KEY(学号)REFRENCES学生(学号), CONSTRAINT FOREIGN KEY(课程号)REFERENCES课程(课程号))
GO
3)CREATE INDEX student_ind ON学生(学号) GO
REATEI**巨class_ind ON课程(课程号) GO
CREATE INDEX select_ind ON选课(学号,课程号) GO
4)CREAT RULE value_rule AS @VALUE IN(‘男’,‘女’) GO
CREAT DEFAULE性别缺省AS‘男’ GO
EXEC sp_bindrule ‘value_rule’,‘学生.性别’ GO
EXEC Sp_binddefault ‘性别缺省’,‘学生.性别’ GO
5)CREATE TRIGGER sc_insert ON选课 FOR INSERT
AS IF(SELECT COLJNT(*)
FROM 学生,inserted,课程
WHERE学生.学号=inserted.学号AND课程.课程号=inserted.课程号)=0
ROLLBACK TRANSACTION GO
CREATE TRIGGER sc_updat6 ON选课 FOR UPDATE
AS IF(SELECT COUNT(*) FROM 学生,updated,课程
WHERE学生.学号=updated.学号 AND课程.课程号=updated.课程号)=0 ROLLBACK TRANSACTION GO
6)CREATE TRIGGER delete_all ON 学生 FOR DELETE AS DELETE FROM选课
WHERE选课.学号=deleted.学号 GO
7)SELECT所在系,COUNT(学号) FROM学生
GROUP BY学生.所在系
COMPUTE COUNT(DISTINCT(所在系)) COMPUTE COUNT学号)BY所在系 GO
8)SELECT*
FROM学生INNER JOIN课程 GO
SELECT*
FROM学生LEFT OUTER JOIN课程 GO
SELECT*
FROM学生RIGHT OUTER JOIN课程 GO
9)SELECT选课.学号,学生.姓名,
学习情况=CASE
WHEN AVG(成绩)>=85 THEN‘好’
WHEN AVG(成绩)>=75 AND AVG(成绩)< 85 THEN‘较好’