Sql server 2005程序设计与管理基础同步实训教程思考与练习答案第一章一、填空题1.身份验证权限验证2. sa3. C/S4. 关系第二章一、填空题1. 数据文件事务日志文件2. 主文件组用户自定义文件组3. master model tempdb msdb4. DA TABASE5. ALTER6. DROP二、选择题1. B2. D3.C4. B5. C6. A7. C8. B9. A10.C 11. A四、实践操作题1.—创建员工管理数据库CREATE DATABASE employee_manageON PRIMARY(NAME=employee_data,FILENAME='e:\employ\employee_data.mdf',SIZE=4MB,FILEGROWTH=1MB)LOG ON(NAME=employee_log,FILENAME='e:\employ\employee_log.ldf',SIZE=1MB,FILEGROWTH=15%)GO2. --修改员工管理数据库ALTER DATABASE employee_manageADD FILE(NAME=employee_data2,FILENAME='e:\employ\employee_manag2.ndf', SIZE=2MB,FILEGROWTH=10%,MAXSIZE=50MB)GO第三章一、填空题1. TABLE2. IDENTITY3. sp_help4. 单用户single user5. 1bit 0,1,null二、选择题1. B2. D3.B4. C5. B四、实践操作题USE employee_manageGO--创建部门信息表结构CREATE TABLE depart(depart_id char(3) PRIMARY KEY,depart_name nvarchar(20) NOT NULL,note nvarchar(50))GO--创建员工信息表结构CREATE TABLE empl(empl_id char(4) PRIMARY KEY,empl_name varchar(10) NOT NULL,sex char(2),birth datetime,duty varchar(20),depart_id char(3))GO--创建请假信息表结构CREATE TABLE leave(cq_id int IDENTITY(1,1) PRIMARY KEY, empl_id char(4) NOT NULL,cq_date datetime,leave_id char(2) NOT NULL,leave_reasom nvarchar(100))GO--创建请假类型表结构CREATE TABLE leaveType(leave_id char(2) PRIMARY KEY,leave_name varchar(20) NOT NULL)GO第四章一、填空题1. from2. <> !=3. ‘s%’‘_s’4. asc desc5. A VG MAX二、选择题1. A2.D3. A4. C5. C6. A7. A8. C9. C 10. A四、实践操作题--1.录入数据表记录--录入部门信息表记录INSERT INTO departV ALUES('001','基础教研室',NULL)GOINSERT INTO departV ALUES('002','专业教研室',NULL)GOINSERT INTO departV ALUES('003','教务科',NULL)GO--录入员工信息表记录INSERT INTO emplV ALUES('0101','王林','男','1956-1-23','院长',NULL)GOINSERT INTO emplV ALUES('0102','袁媛','女','1980-3-15','管理人员','003')GOINSERT INTO emplV ALUES('0201','李敏','女','1966-7-11','教研室主任','001')GOINSERT INTO emplV ALUES('0202','张天一','男','1979-9-11',NULL,'002')GOINSERT INTO emplV ALUES('0203','叶华','女','1982-8-15',NULL,'002')GOINSERT INTO emplV ALUES('0204','朱俊','男','1981-4-13',NULL,'001')GOINSERT INTO emplV ALUES('0205','马涛','男','1971-8-25','教研室主任','002')GOINSERT INTO emplV ALUES('0206','陈琳琳','女','1981-6-19',NULL,'001')GO--录入请假类型表记录INSERT INTO leaveT ypeV ALUES('01','事假')GOINSERT INTO leaveT ypeV ALUES('02','病假')GOINSERT INTO leaveT ypeV ALUES('03','缺假')GOINSERT INTO leaveT ypeV ALUES('04','公假')GO--录入请假信息表记录INSERT INTO leaveV ALUES('0202','2009-3-12','01',NULL) GOINSERT INTO leaveV ALUES('0205','2009-3-18','04','出差天') GOINSERT INTO leaveV ALUES('0202','2009-3-25','01','病假天') GOINSERT INTO leaveV ALUES('0203','2009-3-27','01','病假半天') GOINSERT INTO leaveV ALUES('0204','2009-4-10','03','缺勤天') GOINSERT INTO leaveV ALUES('0202','2009-4-22','02',NULL) GOINSERT INTO leaveV ALUES('0206','2009-3-16','01',NULL) GOINSERT INTO leaveV ALUES('0203','2009-4-15','03','缺勤半天') GOINSERT INTO leaveV ALUES('0204','2009-4-9','02',NULL)GOINSERT INTO leaveV ALUES('0202','2009-4-27','02',NULL) GO--2.修改表结构ALTER TABLE LEA VEADD status varchar(20)GO--3.修改请假信息表记录UPDA TE leaveSET status='已登记'WHERE month(cq_date)=3GOUPDA TE leaveSET status='未登记'WHERE month(cq_date)=4GO--4.查询部门编号为的所有员工的信息SELECT*FROM emplWHERE depart_id='002'GO--5.查询年以后出生的所有员工的信息SELECT*FROM emplWHERE birth>='1980-1-1'GO--6.查询月份请事假的考勤记录信息SELECT*FROM leaveWHERE leave_id='01'AND month(cq_date)=3 GO--7.统计各请假类型的请假人数信息SELECT leave_id 请假类型,count(*)请假人数FROM leaveGROUP BY leave_idGO--8.按员工统计其请假次数SELECT empl_id 员工编号,count(*)请假次数FROM leaveGROUP BY empl_idGO--9.统计员工中的男、女人数SELECT sex 性别,count(*)人数FROM emplGROUP BY sexGO第五章一、填空题1. 逗号JOIN2. INNER JOIN OUTER JOIN CROSS JOIN3. UNION 列数4. 左外连接右外连接全外连接5. EXISTS二、选择题1. A2. D3. A4. A、B5. A、C6. D四、实践操作题--1.查询各员工的基本信息及相应的部门信息SELECT e.*,d.*FROM empl e JOIN depart dON e.depart_id=d.depart_idGO--2.查询所有请假人员的姓名、所属部门、请假日期、请假类型名称SELECT empl_name,depart_name,cq_date,leave_nameFROM empl e JOIN depart dON e.depart_id=d.depart_idJOIN leave l ON l.empl_id=e.empl_idJOIN leaveType lt ON l.leave_id=lt.leave_idGO--3.查询出未请过假的员工的员工编号、姓名、部门名称SELECT empl_id,empl_name,depart_nameFROM empl e JOIN depart dON e.depart_id=d.depart_idWHERE empl_id NOT IN(SELECT empl_id FROM leave)GO--4.查询出各部门的请假人数SELECT depart_name 部门名称,count(*)请假次数FROM empl e JOIN depart dON e.depart_id=d.depart_idJOIN leave l ON l.empl_id=e.empl_idGROUP BY depart_name第六章一、填空题1. 主键约束非空约束2. 实体完整性域完整性参照完整性3. CREATE RULE4. sp_bindefault5. 唯一约束二、选择题1. D2. A3. D4. B5. A四、实践操作题--1.设置部门信息表的部门名称为唯一约束ALTER TABLE departADD CONSTRAINT uq_bmmc UNIQUE(depart_name)GO--2.设置员工信息表的所属部门列为外键约束ALTER TABLE emplADD CONSTRAINT fk_ssbm FOREIGN KEY(depart_id) REFERENCES depart(depart_id)GO--3.设置请假信息表的员工编号列为外键约束ALTER TABLE leaveADD CONSTRAINT fk_ygbh FOREIGN KEY(empl_id) REFERENCES empl(empl_id)GO--4.设置请假信息表的请假类型列为外键约束ALTER TABLE leaveADD CONSTRAINT fk_qjlx FOREIGN KEY(leave_id) REFERENCES leaveType(leave_id)GO--5.设置请假信息表的请假日期列为检查约束ALTER TABLE leaveADD CONSTRAINT ck_qjrq CHECK(cq_date<getdate())GO--6.设置员工信息表的性别列为检查约束ALTER TABLE emplADD CONSTRAINT ck_xb CHECK(sex IN('男','女'))GO--7.设置请假信息表的请假日期列为默认约束ALTER TABLE leaveADD CONSTRAINT df_qjrq DEFAULT getdate()FOR cq_date GO第七章一、填空题1. 视图2. 基本表3. sp_help sp_helptext4. WITH ENCRYPTION5. CREATE VIEW二、选择题1. C2. D3. A4. B四、实践操作题--1.创建视图,查询所有员工的基本信息及相应的部门信息CREATE VIEW v_emplDepartASSELECT e.*,depart_name,noteFROM empl e JOIN depart dON e.depart_id=d.depart_idGO--2.创建视图,查询请假人员的基本信息及请假的详细信息CREATE VIEW v_emplLeaveASSELECT e.*,cq_id,cq_date,leave_id,leave_reasom,statusFROM empl e JOIN leave lON l.empl_id=e.empl_idGO--3.创建视图,查询所有员工的基本信息及请假的详细信息CREATE VIEW v_allEmplLeaveASSELECT e.*,cq_id,cq_date,leave_id,leave_reasom,statusFROM empl e LEFT JOIN leave lON l.empl_id=e.empl_id--4.创建视图,查询出各部门的所有员工的基本信息及请假的详细信息CREATE VIEW v_allDepartEmplLeaveASSELECT depart_name,e.*,cq_id,cq_date,leave_reasom,statusFROM empl e JOIN depart dON e.depart_id=d.depart_idLEFT JOIN leave l ON l.empl_id=e.empl_idGO--5.使用视图v_emplDepart,查询出部门WEI 001的所有员工的信息SELECT*FROM v_emplDepartWHERE depart_id='001'GO--6.使用视图v_emplDepart,统计出各部门员工的人数SELECT depart_id,count(*)部门人数FROM v_emplDepartGROUP BY depart_idGO--6.使用视图v_emplLeave,统计出各请假类型员工的人数SELECT leave_id,count(*)请假人数FROM v_emplLeaveGROUP BY leave_idGO--7.使用视图v_allDepartEmplLeave,统计出各部门员工的请假次数SELECT depart_name,count(*)请假次数FROM v_allDepartEmplLeaveGROUP BY depart_nameGO第八章一、填空题1. 数据定义语言2. 局部变量全局变量3. @@4. DECLARE5. +二、选择题1. B2. D3. C4. B5. D第九章一、填空题1. master sp_2. 输入参数输出参数3. OUTPUT4. SP_HELPTEXT5. WITH RECOMPILE二、选择题1. D2. A四、实践操作题--1.建立一个存储过程,查询某班的所有学生的基本信息。