参考答案:
(1)?ENO, ENAME(?SEX=’女’(EMP)) (2)?ENAME(?PNO=’P1’(SAL)?EMP)
(3)?ENO(EMP)-?ENO(?BUDGET>500000(PRJ)?SAL)
(4)?ENAME(?ENO, PNO(SAL)÷?PNO(?BUDGET>500000(PRJ))?EMP)
第3章 SQL SERVER 2008概述
1.SQL Server 2008的体系结构包含哪些组成部分?各部分的作用是什么?
参考答案:SQL Server 2008系统由4个部分组成:数据库引擎、Analysis Services、Reporting Services和Integration Services。
数据库引擎:是SQL Server 2008系统的核心服务,负责完成数据的存储,处理和安全管理。例如创建数据库、创建表、创建视图、数据查询和访问数据库等操作,都是由数据库引擎完成。
Analysis Services(分析服务):主要作用是通过服务器和客户端技术的组合提供联机分析处理(Online Analytical Processing,OLAP)和数据挖掘功能。
Reporting Services(报表服务):包含用于创建和发布报表及报表模型的图形工具和向导,用于管理Reporting Services的报表服务器管理工具和用于对Reporting Services对象模型进行编程和扩展的应用程序接口(API)。
Integration Services(集成服务):是一个数据集成平台,负责完成有关数据的提取,转换和加载等操作。其所要解决的问题是如何将数据源中的数据经过适当的处理并加载到Analysis Services中以便进行各种分析处理。
2.SQL Server 2008有哪几种版本?
参考答案:企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、网络版(Web)、开发版(Developer)以及速成版(Express)和精简版(Compact 3.5)两个免费的版本。
3.启动/停止SQL Server服务的方法是什么?请上机完成。
参考答案:有三种方式:(1)利用SQL Server Configuration Manager;(2)利用操作系统的服务管理工具;(3)利用SQL Server Management Studio(管理工作室)。具体实现方法请参见教材中相关内容。
4.SQL Server的身份验证模式有几种?分别是什么?
参考答案:SQL Server包含两种身份认证模式:“Windows身份认证模式”和“混合模式”。
5.SQL Server中的系统数据库有哪些?分别有什么作用?
参考答案:SQL Server 2008安装时自动创建了master、model、tempdb和msdb四个系统数据库。这些数据库是存放系统状态信息、配置信息的系统数据字典,是运行SQL Server的基础。
master数据库:记录SQL Server系统的所有系统级信息。包括元数据、系统配置设置等信息。如果 master 数据库出现问题,SQL Server无法启动。
model数据库:作用是作为在SQL Server实例上创建的所有数据库的模板。如果修改model数据库,之后创建的所有数据库都将继承这些修改。当发出“创建数据库”语句时,将通过复制 model 数据库中的内容来创建数据库的第一部分,然后用空页填充新数据库的剩余部分。
msdb数据库:由SQL Server代理使用,完成计划报警和作业调度功能,也可以由Service
Broker和数据库邮件等其他功能使用。
tempdb数据库:是一个全局资源,连接到SQL Server实例的所有用户都可以使用它,并可以保存:显式创建的临时用户对象;SQL Server数据库引擎创建的内部对象;由使用已提交读的、修改了数据库中数据的事务生成的行版本;由要修改数据的事务为实现联机索引操作、AFTER 触发器等功能而生成的行版本。每次启动SQL Server时都会重新创建 tempdb,从而在系统启动时总是保持一个干净的数据库副本。在断开联接时会自动删除临时表和存储过程,并且在系统关闭后没有活动连接。不能对tempdb进行备份和还原操作。
6.上机创建一个名为STUDENT的用户数据库,其数据文件初始大小为1MB,最大大小为100MB,日志文件初始大小为5MB,最大大小为50MB。
参考代码:
CREATE DATABASE STUDENT ON PRIMARY (
NAME = STUDENT_data,
FILENAME='C:\\Program Files\\Microsoft SQL Server\\MSSQL10.MSSQLSERVER\\MSSQL\\STUDENT.mdf', SIZE = 1, MAXSIZE = 100, ) LOG ON (
NAME = STUDENT_log,
FILENAME='C:\\Program Files\\Microsoft SQL
Server\\MSSQL10.MSSQLSERVER\\MSSQL\\STUDENT_log.ldf', SIZE = 5, MAXSIZE = 50, )
7.请上机完成以下任务:将第6题中生成的数据库文件拷贝到D:\\下,并给该数据库增加一个数据文件STUD1.ndf(初始大小为1MB,最大大小为20MB)。
参考答案:在SSMS中使用图形界面分离STUDENT数据库;将数据库文件拷贝到D:\\;附加数据库;在STUDENT数据库【属性】的【文件】页中,选择【添加】,来按要求增加数据库文件。此外还可以使用T-SQL的ALTER命令增加数据库文件。
ALTER DATABASE STUDENT ADD FILE (NAME = STUD1,
FILENAME=' D:\\STUD1.ndf', SIZE = 1MB, MAXSIZE = 20MB)
8.上机在第6题中创建的数据库STUDENT中创建下表(关系)并输入数据。 Stud(Stu_no, Stu_name, Stu_gender, Stu_age, Stu_dept)
各属性的数据类型分别为:Stu_no:char(10),Stu_name:char(6),Stu_gender:char(2),Stu_age:int,Stu_dept:varchar(50)。(注:只需要按照上述要求创建表,关于各数据类型的含义暂时不用考虑,这些将在后续章节详细介绍)
参考答案:在对象资源管理器中,选择希望在其中创建表的数据库STUDENT并展开,右击【表】,然后选择【新建数据表】。填写“列名”、选择对应的“数据类型”以及设置是否“允许Null值”,并点击工具栏内的“保存”按钮,在弹出的对话框中输入表名(Stud),点击【确定】保存表。
第4章 关系数据库标准语言SQL
1.试述SQL的特点。
参考答案:(1)综合统一;(2)高度非过程化;(3)面向集合的操作方式;(4)灵活的使用方式;(5)语言简洁,易学易用。
2.设有三个关系模式:STUDENT(SNO,SNAME,SAGE,SSEX,SCLASS)、COURSE (CNO,CNAME,CHOUR,CTEACHER)和SC (SNO,CNO,GRADE),分别表示学生、课程和选课情况,这里带下划线的属性(属性组)表示主键。各属性的含义为:SNO(学号),SNAME(学生姓名),SAGE(年龄),SSEX(性别),SCLASS(班级),CNO(课程号),CNAME(课程名称),CHOUR(学时),CTEACHER(任课教师),GRADE(成绩)。
规定:属性SNO,SNAME,SSEX,SCLASS,CNO,CNAME和CTEACHER的数据类型为字符(CHAR)型,自定义列的宽度;SAGE,CHOUR和GRADE的数据类型为整(INT)型;学生年龄限定在18到28岁之间,姓名不允许空,课程名称唯一。用SQL语句定义上述表的结构(包括必要的完整性约束)。
参考答案:
CREATE TABLE STUDENT(
SNO CHAR(10) PRIMARY KEY, SNAME CHAR(10) NOT NULL,
SAGE INT CHECK(SAGE BETWEEN 18 AND 28), SSEX CHAR(2), SCLASS CHAR(12)); CREATE TABLE COURSE(
CNO CHAR(5) PRIMARY KEY, CNAME CHAR(20) UNIQUE, CHOUR INT,
CTEACHER CHAR(10)); CREATE TABLE SC( SNO CHAR(10), CNO CHAR(5), GRADE INT,
PRIMARY KEY(SNO, CNO),
FOREIGN KEY(SNO) REFERENCES STUDENT(SNO), FOREIGN KEY(CNO) REFERENCES COURSE(CNO));
3.针对第2题的三个表,编写完成如下操作的SQL语句。
(1)查询任课教师“刘晓莉”所授课程的课程号、课程名称和学时。 (2)查询有不及格(成绩小于60)课程的学生姓名。
(3)查询年龄在18~20岁之间的男学生的学号、姓名、年龄和班级。