SQL SERVER 2005 的一个题目 帮忙做一下 100分

现有关系数据库如下:
数据库名:教师数据库
教师表(编号 char(6),姓名,性别,民族,职称,身份证号)
课程表(课号 char(6),名称)
任课表(ID,教师编号,课号,课时数)
用SQL语言实现下列功能的sql语句代码:
1. 创建上述三表的建库、建表代码(14分);
要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID)
2. 将下列课程信息添加到课程表的代码(6分)
课号 课程名称
100001 SQL Server数据库
100002 数据结构
100003 VB程序设计
修改 课号为100003的课程名称:Visual Basic程序设计
删除 课号为100003的课程信息
3. 写出创建[教师表唯一索引]:创建身份证号的唯一索引;
4. 写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;
5.写出创建[T-SQL语句]:如果老师的课时超过80个课时,则输出超过80个课时的老师,以及提示这些老师不分配班级。如果没超过80个课时,则输出没超过80个课时的老师有哪些。
6. 写出创建[统计课时数]:输出最大课时数、最低课时数、平均课时的存储过程以及执行代码;
7. 写出创建:计算某教师代课总课时,并将值返回的存储过程以及执行代码。
执行:计算“郭老师”的总课时。
8. 检索有一门或一门以上课程课时数大于90的所有教师的信息,包括编号、姓名。

可能的话 写详细点, 谢谢了

CREATE DATABASE 教师数据库
ON
(
NAME = 'jiaoshi_DATA',
FILENAME = 'E:\jiaoshi_DATA.MDF',
SIZE = 5 MB,
MAXSIZE = 20 MB,
FILEGROWTH = 5 MB
)
LOG ON
(
NAME = 'jiaoshi_LOG',
FILENAME = 'E:\jiaoshi_LOG.LDF',
SIZE = 1 MB,
MAXSIZE = 5 MB,
FILEGROWTH = 1 MB
)
go
create table 教师表

(教师编号 char(6) primary key,
姓名 char(4) not null,
性别 char(2) check([性别] in ('男', '女')),
民族 char(8) default '汉族' not null,
职称 char(12),
身份证号 char(18) unique
)
create table 课程表
(课号 char(6) primary key,
名称 char(40) not null
)
create table 任课表
(ID IDENTITY(1, 1),
教师编号 char(6) foreign key references 教师表(教师编号),
课号 char(6) foreign key references 课程表(课号),
课时数 integer check(课时数 between 0 and 200)
)
2.
insert 课程表 values('100001', 'SQL Server数据库')
insert 课程表 values('100002', '数据结构')
insert 课程表 values('100003', 'VB程序设计')
update 课程表 set 名称='Visual Basic程序设计' where 课号='100003'
delete 课程表 where 课号='100003'

3.
create view 任课表视图 as
select 教师编号,姓名,课号, 课程名称,课时数 from 教师表,任课表
where 教师表.编号=任课表.教师编号

4.
create function 某门课任课教师(@课程名 varchar(15))
returns table as
return (select 课程名称, 课时数, 教师姓名=姓名 from 任课表视图
where 课程名=@课程名)
go
select * from [某门课任课教师]('SQL Server数据库')

5.
create procedure 统计课时数
as
select 最大课时数=max(课时) ,最小课时数=min(课时),平均课时数=avg(课时) from 任课表
go
execute 统计课时

6.
create procedure 统计课时
@教师名 nchar(16),
as
begin
declare @总课时 int
select @总课时=sum (课时) from 任课表视图
where 姓名 = @教师名
end
go
execute 统计课时 '郭老师'
7.
select 编号, 姓名 from 教师表
where编号 in (select distinct 教师编号 from 任课表 where课时数>=90)

8.
create rule zhicheng _rule
as @zhicheng in ('教授','副教授','讲师', '助教')
go
sp_bindrule zhicheng_rule, '教师表.职称'
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-17
if exists (select * from sysobjects where id = OBJECT_ID('[教师表]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [教师表]

CREATE TABLE [教师表] (
[编号] [char] (6) NOT NULL,
[姓名] [varchar] (50) NOT NULL,
[性别] [bit] NULL,
[民族] [varchar] (50) NOT NULL DEFAULT ('汉'),
[职称] [varchar] (50) NULL,
[身份证号] [varchar] (18) NOT NULL)

ALTER TABLE [教师表] WITH NOCHECK ADD CONSTRAINT [PK_教师表] PRIMARY KEY NONCLUSTERED ( [编号] )
if exists (select * from sysobjects where id = OBJECT_ID('[课程表]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [课程表]

CREATE TABLE [课程表] (
[课号] [char] (6) NOT NULL,
[名称] [varchar] (150) NULL)

ALTER TABLE [课程表] WITH NOCHECK ADD CONSTRAINT [PK_课程表] PRIMARY KEY NONCLUSTERED ( [课号] )
if exists (select * from sysobjects where id = OBJECT_ID('[任课表]') and OBJECTPROPERTY(id, 'IsUserTable') = 1)
DROP TABLE [任课表]

CREATE TABLE [任课表] (
[ID] [int] NOT NULL,
[教师编号] [char] (6) NULL,
[课号] [char] (6) NULL,
[课时数] [int] NOT NULL)

//-----------------------------------------------
太多了本回答被提问者采纳
第2个回答  2009-03-17
create database TC;
use TC;
create table tc(t_id char(6)primary key,t_name char(20),t_sex boolean,t_minzu char(20),t_zhichen varchar(30),t_shenfenzheng varchar(18));
create table lesson(l_id char(6)primary key,l_name varchar(20));
create table rlesson(rl_id int(5)auto ***8)

忘记了!
第3个回答  2009-03-17
工作量有点大,100分,算了。
第4个回答  2009-03-17
100分,工作量太大了..

SQL SERVER 2005 的一个题目 帮忙做一下 100分
(ID IDENTITY(1, 1),教师编号 char(6) foreign key references 教师表(教师编号),课号 char(6) foreign key references 课程表(课号),课时数 integer check(课时数 between 0 and 200))2.insert 课程表 values('100001', 'SQL Server数据库')insert 课程表 values('100002', '数据结构'...

求教一个SQL的写法,百度知道最多只能悬赏100分,不够我还能发问题...
,(select top 1 [客户名称] from @table as b,[客户表] as c WHERE [价格] = min(a.[价格]) and b.客户ID = c.客户ID) as [min客户名称],AVG(a.[价格]) as [平均价格]FROM @table as a WHERE 1=1 group by a.[商品ID]2.用SQL Server 2005以上的CTE方式 with cte as ...

帮忙看一下这道SQL server题目怎么做
--(1) 奇数的个数,偶数的个数,和所有数据的总个数;SELECT COUNT(number) 数据个数 FROM #tbl_number tn SELECT COUNT(number) 奇数 FROM #tbl_number tn where tn.isodd='true'SELECT COUNT(number) 偶数个数 FROM #tbl_number tn where tn.isodd='false'--(2) 所有奇数的最大值、最...

谁可以帮忙做下这个题目呀 数据库课程设计
1、数据的导入和导出今天是数据库实习的第一天,对于我们来说数据库虽然是今年刚刚学过的课程,但是我们已经考试完一段时间了,所以也很久没有翻书本了,很多知识在刚刚做的时候还是很陌生的,不得不翻一下书本,下面就是在第一天实习中所产生的问题报告和分析结果。在做实训前,老师先给我们讲了数据库如何导入EXCL表,在...

SQL题目 帮忙做下..
use test go --创建借书卡表 create table CARD (CNO int primary key,--卡号 NAME varchar(20),--姓名 CLASS int --班级 )--创建图书表 create table BOOKS (BNO int primary key--书号 BNAME varchar(20),--书名 AUTHOR varchar(20),--作者 PRICE float,--单价 QUANTITY int--库存...

急!高分求做SQL Server数据库设计【达人请进】
1. 原始单据与实体之间的关系 可以是一对一、一对多、多对多的关系。在一般情况下,它们是一对一的关系:即一张原始单据对应且只对应一个实体。在特殊情况下,它们可能是一对多或多对一的关系,即一张原始单证对应多个实体,或多张原始单证对应一个实体。这里的实体可以理解为基本表。明确这种对应关系...

下面的题目大牛帮忙做一下啊!
16题:C ,因为ExecuteNonQuery执行非查询的SQL语句,也就是说,他只执行,增,删,改语句。17题:A,问题中说明是填充数据,而不是读取数据 ,如果要读取数据,还可能用到C,D 18题:我也叫不准,感觉是A,因类DataReader是一直占用连接,直到调用close()方法才关闭,DataSet是一次性加载完再断开,...

急求一份数据库课程设计
课程设计报告应包含的基本内容:1、数据流图设计(至少1个关键业务功能的多层数... 选用SQL SERVER数据库管理系统软件本次课程设计不要求进行应用程序开发,只要求完成数据库的设计和实现。课程设计报告应包含的基本内容: 1、数据流图设计(至少1个关键业务功能的多层数据流图) 2、E-R图设计(局部与全局ER图) 3、...

【高分】DIV CSS一系列问题(高手进)
XML与Access,Oracle和SQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML与HTML的设计区别是:XML是用来存储...

如何创建数据库
1 首先 用Access 2000(数据库 )做一个数据库 打开设计器创建表 在点菜单 另存为 名为班级名+自己名字英文简写 最后点保存啦 (每完成系统都是有提示的啦) 第一问 解决 2 打开设计器 上面做的表下面下 创建数据表 名字都是在最后完成时做的 先不用管 然后在输入sID,sName,sSex,...

相似回答