现有关系数据库如下:
数据库名:教学数据库(Teacher)
教师信息表(教师编号,姓名,性别,民族,职称,身份证号) 课程信息表(课程号,课程名,标准课时数) 任课信息表(教师编号,课程号,实际课时数)
一、用SQL语言实现下列功能
1.创建数据库。
要求:数据库名为Teacher,主数据文件名为Teacher_data.MDF,存放在5\目录下,初 始值大小为2MB,增长方式为按照10%的比例增长;日志文件名为Teacher_log.LDF,存 放在d目录下,初始值大小为1MB,增长方式为按照1MB的增量增长。
2.创建教师信息表Teacherinfo,数据表的各字段属性如下表所示:
列名 | 数据类型 | 长度 | 属性 | 描述 |
Teacher_Id | char | 6 | 主键 | 教师编号 |
Teacher_Name | nvarchar | 8 | 不允许空 | 姓名 |
Sex | nchar | 2 | 检查(男/女) | 性别 |
Birth_Place | sqlserver备份表语句 nvarchar | 20 | 默认值(汉族) | 民族 |
Zhicheng | nvarchar | 20 | 不允许空 | 职称 |
HId | char | 16 | 唯一 | 身份证号 |
创建课程信息表Courseinfo, | 数据表的各字段属性如下表所示: | |||
列名 | 数据类型 | 长度 | 属性 | 描述 |
Course_Id | char | 5 | 主键 | 课程号 |
Course_Name | nvarchar | 20 | 不允许空 | 课程名 |
B_Hours | Int | 检查(0~200) | 标准课时数 | |
4.创建任课信息表TCinfo,数据表的各字段属性如下表所示:
列名 | 数据类型 | 长度 | 属性 | 描述 |
Id | int | 自动编号 | ||
Teacher_Id | char | 6 | 外键 | 教师编号 |
Course_Id | char | 5 | 外键 | 课程号 |
S_Hours | Int | 实际课时数 | ||
5. 将下列课程信息添加到课程表中:
课号 | 课程名称 | 课时数 |
30001 | SQL Server数据库 | 90 |
30002 | 数据结构 | 60 |
30003 | VB程序设计 | 72 |
修改课号为30003的课程名称:Visual Basic程序设计。
删除课号为30003的课程信息。
6.在课程信息表中统计标准课时数的最大值、最小值和平均值,并使用别名。
7.检索有一门或一门以上课程实际课时数大于90的所有教师的信息,包括编号、姓名。
8.创建一个包含教师编号,教师姓名,课程号,课程名称,实际课时数的教师任课表视图 V_TCinfo。
9.从教师任课表视图中检索出所有代'SQL Server数据库技术'课程的老师姓名及其课时 数。
10.在课程信息表中统计标准课时数的最大值、最小值和平均值,并使用别名。
11.检索有一门或一门以上课程实际课时数大于90的所有教师的信息,包括编号、姓名。
12.建一个规则zhicheng_rule,并将其绑定到教师表的职称列上,规定职称取值为(‘教 授','副教授','讲师', '助教')之一。
13.创建带参数的存储过程S_Hours,实现能计算某教师代课总课时,并将值返回,执行 此存储过程:计算“郭老师”的总课时。
14.在教师信息表(Teacherinfo)上创建DELETE触发器Trigger」,实现当删除教师信 息表中的某个教师的记录时,对应任课信息表(TCinfo)中的所有有关此教师的记录都删 除。
二、在企业管理器中实现以下操作
1.将Teacher数据库中的“Courseinfo”表导出到Excel表中,字段名和数据类型保持一 致。
2.使用企业管理器为Teacher数据库设置一个SQL Server身份验证的用户账户:登录名: admin,密码:666,数据库用户名:developer,权限:可查询本数据库中所有表、视图、 内嵌表值函数的数据,并可执行所有的存储过程。
3.在企业管理器中创建一个逻辑名为“Backup_Teacher”的备份设备,放在C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\ 目录下。然后进行 Teacher 的完整数据库备 份,为该备份取名为“教学完整备份”,备份设备为“Backup_Teacher”。
一、用SQL语言实现下列功能的sql语句代码
no | 参考答案 |
1. | create database Teacher ON (NAME=' teacher_Data', 'C:\teacher_data.MDF', SIZE=2,), LOG ON (NAME=' teacher_Log', 'C:\teacher_log. LDF', SIZE=1,) COLLATE Chinese_PRC_CI_AS GO |
2. | use Teacher |
go create table Teacherinfo (Teacher_Id char(6) primary key, Teacher_Name nvarchar(8) not null, Sex nchar(2) check(Sex in,男','女')), Birth_Place nvarchar(20) default '汉族'not null, Zhicheng nvarchar(20) not null, H_Id char(18) unique ) | |
3. | create table Courseinfo (Course_Id char(5) primary key, Course_Name nvarchar(40) not null, B_Hours Int check(B_Hours between 0 and 200) ) |
4 | create table TCinfo (ID IDENTITY(1, 1), Teacher_Id char(6) references Teacherinfo (Teacher_Id), Course_Id char(6) references Courseinfo(Course_Id), S_Hours Int ) |
5. | insert Courseinfo values('10001','SQL Server 数据库',90) insert Courseinfo values('10002','数据结构',60) insert Courseinfo values('10003','VB 程序设计',72) update Courseinfo set Course_Name ='Visual Basic 程序设计' where Course_Id ='10003' delete Courseinfo where Course_Id ='10003' |
6. | select max(B_Hours) as 最大值,min(B_Hours) as 最小 值,avg(B_Hours) as 平均值 from Courseinfo |
7 | select Teacher_Id,Teacher_Name from Teacherinfo where Teacher_Id in (select distinct Teacher_Id from TCinfo where S_Hours >=90) |
8. | create view V_TCinfo as select Teacher_Id,Teacher_Name,Course_Id,Course_Name,S_Hours |
from Teacherinfo,TCinfo,Courseinfo where Teacherinfo.Teacher_Id = TCinfo.Teacher_Id and TCinfo. Course_Id = Courseinfo. Course_Id | |
9. | select Teacher_Name as 教师姓名,S_Hours from V_TCinfo where Course_Name ='SQL Server 数据库技术' |
10. | use Teacher go create rule zhicheng_rule as @Zhicheng in ('教授','副教授','讲师','助教') go sp_bindrule zhicheng_rule, 'Teacherinfo.Zhicheng ' |
11. | create procedure S_Hours @TeacherName nvarchar(8) @SHours Int Output as select @SHours =sum (S_Hours) from V_TCinfo where Teacher_Name = @TeacherName go execute S_Hours '郭老师' |
12. | CREATE TRIGGER Sum_Hours ON dbo.Tcinfo AFTER INSERT, UPDATE AS SELECT Teacher_Id, SUM(S_Hours) As 总课时数 FROM TCinfo WHERE Teacher_Id =(SELECT Teacher_Id FROM Inserted) GROUP BY Teacher_Id go |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论