现有关系数据库如下:
数据库名:教学数据库(Teacher)
教师信息表(教师编号,姓名,性别,民族,职称,身份证号) 课程信息表(课程号,课程名,标准课时数) 任课信息表(教师编号,课程号,实际课时数)
一、用SQL语言实现下列功能
1.创建数据库。
要求:数据库名为Teacher,主数据文件名为Teacher_data.MDF,存放在C:\\目录下,初始值大小为2MB,增长方式为按照10%的比例增长;日志文件名为Teacher_log.LDF,存放在C:\\目录下,初始值大小为1MB,增长方式为按照1MB的增量增长。
2.创建教师信息表Teacherinfo,数据表的各字段属性如下表所示:
列名
数据类型 char nchar
长度
属性 主键
描述
Teacher_Id Sex
6 2
教师编号
姓名
性别 民族
Teacher_Name nvarchar 8 Birth_Place
不允许空
检查(男/女) 默认值(汉族)
nvarchar 20
Zhicheng nvarchar 20 不允许空 职称
H_Id char 16 唯一 身份证号
3.创建课程信息表Courseinfo,数据表的各字段属性如下表所示:
列名
数据类型 长度 属性 char
5
描述
Course_Id 主键 课程号 不允许空
课程名
Course_Name nvarchar 20 B_Hours Int
检查(0~200) 标准课时数
4.创建任课信息表TCinfo,数据表的各字段属性如下表所示:
列名
数据类型
长度
属性
描述
Id int Teacher_Id
char
自动编号
教师编号
6 外键
Course_Id char S_Hours Int
5 外键 课程号
实际课时数
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_1,实现当删除教师信息表中的某个教师的记录时,对应任课信息表(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’, FILENAME=’C:\\teacher_data.MDF’, SIZE=2, FILEGROWTH=10%), LOG ON (NAME=’ teacher_Log’, FILENAME=’C:\\teacher_log.LDF’, SIZE=1, FILEGROWTH=1) COLLATE Chinese_PRC_CI_AS GO use Teacher 2. 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) ) 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 ) 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' select max(B_Hours) as 最大值,min(B_Hours) as 最小值,avg(B_Hours) as 平均值 from Courseinfo select Teacher_Id,Teacher_Name from Teacherinfo where Teacher_Id in (select distinct Teacher_Id from TCinfo where S_Hours >=90) create view V_TCinfo as select Teacher_Id,Teacher_Name,Course_Id,Course_Name,S_Hours 4 5. 6. 7 8.