SQL 作业练习及答案.docx
建“教师数据库”
createdatabase教师数据库
onprimary(
name=教师数据库_data,
filename=c:\jsl\教师数据库_data.mdf,size=3MB,
maxsize=30MB,filegrowth=10%
)
logon(
name=教师数据库_log,
filename=c:\jsl\教师数据库_log.ldf,size=1MB,
filegrowth=10MB
)
go
教师表(编号char(6),姓名,性别,民族,职称,身份证号)课程表(课号char(6),名称)
任课表(ID,教师编号,课号,课时数)
用SQL语言实现下列功能的sql语句代码:
创建上述三表的建库、建表代码(14分);
要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别、课时数),自动编号(ID)
use教师数据库
go
createtable教师表
(
编号char(6)primarykey,
姓名char(8)notnull,
性别char(2)check(性别=男or性别=女),民族char(18)default(汉)notnull,职称char(12),
身份证号char(18)unique,
)
go
createtable课程表
(
课号char(6)primarykey,
名称char(22),
)
go
createtable任课表
(
IDintidentity(1,1),
教师编号char(6)references教师表(编号),课号char(6)references课程表(课号),
课时数intcheck(课时数=0and课时数=100),
)
//给三张表加数据use教师数据库
go
insert教师表(编号,姓名,性别,民族,职称,身份证号)
select101,张三,男,回族,教师,10223456789union
select
102,王思,女,汉族,教师,102235641214
union
select
103,李武,男,苗族,教师,987456123545
union
select
104,赵丽,女,汉族,教师,457863154452
union
select
go
105,田七,男,汉族,教授,42545412149
insert
课程表(课号,名称)
select
100001,SQLserver数据库union
select
100002,数据结构union
select
100003,VB程序设计union
select
100004,计基union
select
go
100005,大学数学
insert
select
任课表(教师编号,课号,课时数)
101,100001,80union
select
102,100002,98union
select
103,100003,90union
select
104,100004,85union
select
105,100005,78
go
将下列课程信息添加到课程表的代码(6分)课号 课程名称
100001 SQLServer数据库
100002 数据结构
100003 VB程序设计
修改 课号为100003的课程名称:VisualBasic程序设计
use教师数据库
go
update课程表set名称=VisualBasic程序设计where课号=100003
删除 课号为100003的课程信息
use教师数据库
go
deletefrom课程表where课号=100003
写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;(4分)
use教师数据库
go
createview任课表视图
as
select任课表.教师编号,教师表.姓名,课程表.课号,课程表.名称,任课表.课时数
from教师表,课程表,任课表
where教师表.编号=任课表.教师编号and任课表.课号=课程表.课号
go
写出创建[某门课任课教师]内嵌表值函数以及检索的代码;(6分)检索:所有代SQLServer数据库这门课程的老师姓名;
use教师数据库
go
createfunctionjsl(@scchar(10))returnstable
asreturn
(select教师表.姓名,课程表.名称,任课表.课号
from教师表,课程表,任课表
where教师表.编号=任课表.教师编号and任课表.课号=课程