教师数据库,创建[任课表视图]
项目背景介绍:本次的数据库设计主要涉及到教师作息、课程信息与教师任课信息的信息查询。任务概述:
具体关系数据库如下:
数据库名:教师数据库
教师表(编号 char(6),姓名,性别,民族,职称,身份证号)
课程表(课号 char(6),名称)
任课表(ID,教师编号,课号,课时数)
用SQL语言实现下列功能的sql语句代码:
1. 创建上述三表的建库、建表代码;
要求使用:主键(教师表.编号,课程表.课号)、外键(任课表.教师编号,任课表.课号)、默认(民族)、非空(民族,姓名)、唯一(身份证号)、检查(性别(男、女)、课时数(0-200)),自动编号(ID)
CREATE TABLE `教师表` ( `编号` char(6) NOT NULL DEFAULT '', `姓名` char(10) NOT NULL, `性别` char(2) DEFAULT '男', `民族` char(20) NOT NULL DEFAULT '汉', `职称` char(8) DEFAULT '', `身份证号` char(18) DEFAULT NULL, PRIMARY KEY (`编号`), UNIQUE KEY `身份证号` (`身份证号`) ); INSERT INTO 教师表 VALUES ('t001', '郭老师', '男', '汉', '助教', '123'); INSERT INTO 教师表 VALUES ('t002', '何老师', '男', '汉', '副教授', '456'); INSERT INTO 教师表 VALUES ('t003', '蒋老师', '女', '苗', '讲师', '340605200008280229'); CREATE TABLE `课程表` ( `课号` char(6) NOT NULL DEFAULT '', `名称` char(20) NOT NULL DEFAULT '', PRIMARY KEY (`课号`) ); INSERT INTO 课程表 VALUES ('100001', 'SQL Server数据库'); INSERT INTO 课程表 VALUES ('100002', '数据结构'); INSERT INTO 课程表 VALUES ('100003', 'VB程序设计'); CREATE TABLE `任课表` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `编号` char(6) DEFAULT NULL, `课号` char(6) DEFAULT NULL, `课时数` smallint(5) unsigned DEFAULT NULL, PRIMARY KEY (`ID`), KEY `任课表_教师表` (`编号`), KEY `任课表_课程表` (`课号`) ); INSERT INTO 任课表 VALUES ('1', 't001', '100001', '80'); INSERT INTO 任课表 VALUES ('2', 't002', '100002', '90'); INSERT INTO 任课表 VALUES ('3', 't002', '100003', '70'); INSERT INTO 任课表 VALUES ('4', 't001', '100002', '100'); INSERT INTO 任课表 VALUES ('5', 't001', '100002', '90');
预览:
2. 将下列课程信息添加到课程表的代码
课号 课程名称
100001 SQL Server数据库
100002 数据结构
100003 VB程序设计
修改 课号为100003的课程名称:Visual Basic程序设计
删除 课号为100003的课程信息
update 课程表 set 名称='Visual Basic 程序设计' where 课号='100003'; delete 课程表 where 课号='10003';
3. 写出创建[任课表视图](教师编号,姓名,课号,课程名称,课时数)的代码;
create view 任课表视图 as select 任课表.教师编号, 教师表.姓名,任课表.课号, 课程表.名称 as 课程名称,任课表.课时数 from 教师表,课程表,任课表 where 任课表.教师编号=教师表.编号 and 任课表.课号=课程表.课号;
4. 根据[任课表视图]写出所有代'SQL Server数据库'这门课程的老师姓名的检索代码;
select 姓名,课程名称 from 任课表视图 where 课程名称='SQL Server数据库';
5. 写出创建:计算最大课时数、最低课时数、平均课时数执行代码;
select max(课时数) as 最大课时数 min(课时数) as 最低课时数 avg(课时数) as 平均课时数 from 任课表视图;
还没有留言,还不快点抢沙发?