1、查看并记住scott用户下的四个表的表名、字段名、字段类型以及数据
2、使用SQL命令创建学生管理数据库中的各表:
1、department(系部表)
字段名 数据类型 约 束 说明
dep_id char(10) 主键 系部编号
dep_name varchar2(20) 非空 系部名称
dep_head varchar2(10) 系部主任
**
create table department(
dep_id char(10) primary key,
dep_name varchar(20) NOT NULL,
dep_head varchar(20)
);
**
2、teacher(教师表)
字段名 数据类型 约 束 说明
t_id char(10) 主键 教师编号
t_name varchar2(10) 非空 教师姓名
t_sex char(2) 取值只能为“男”或“女” 性别
t_entrydate date 默认值为当前系统日期(sysdate) 入职日期
t_professor varchar2(10) 职称
t_salary number(10,2) 大于等于0 基本工资
dep_id char(10) 外键,与系部表的“系部编号”关联 系部编号
create table teacher(
t_id char(10) primary key,
t_name varchar2(20) NOT NULL,
t_sex char(2) check(t_sex='男' or t_sex='女'),
t_entrydate date DEFAULT sysdate,
t_professor varchar2(20),
t_salary number(10,2) check(t_salary >=0.0),
dep_id char(10) references department(dep_id)
);
3、course(课程表)
字段名 数据类型 说 明
course_id char(10) 课程号,主键
course_name varchar2(20) 课程名称,唯一键
course_credit number(3,1) 学分,取值范围在1-10之间
course_type char(10) 课程类型
create table course(
course_id char(10) primary key,
course_name varchar2(20) unique,
course_credit number(3,1) check(course_credit>=1 and course_credit<=10),
course_type char(10)
);
4、class(班级表)
字段名 数据类型 约 束 说明
c_id char(10) 主键 班级编号
c_name varchar2(20) 非空 班级名称
c_mentor varchar2(210) 班导师
dep_id char(10) 外键,与系部表的“系部编号”关联 系部编号
create table class(
c_id char(10) primary key,
c_name varchar2(20) NOT NULL,
c_mentor varchar2(210),
dep_id char(10) references department(dep_id)
);
5、student(学生表)
字段名 数据类型 约 束 说明
s_id char(10) 主键 学号
s_name varchar2(10) 姓名
s_sex char(2) 取值只能为“男”或“女” 性别
s_borndate date 出生日期
s_enrolldate date 默认值为系统日期sysdate 入学日期
s_telephone char(11) 联系电话
s_address varchar2(30) 家庭住址
c_id char(10) 外键,与班级表的班级号关联 班级编号
create table student(
s_id char(10) primary key,
s_name varchar2(20),
s_sex char(2) check(s_sex='男' or s_sex='女'),
s_borndate char(10) ,
s_enrolldate date DEFAULT sysdate,
s_telephone char(11),
s_address varchar2(30),
c_id char(10) references class(c_id)
);
6、s_c(选课表)
字段名 数据类型 约 束 说明
s_id char(10) 与课程号组合做主键
外键,与学生表的学号关联 学号
c_id char(10) 外键,与课程表的课程号关联 课程号
grade number(3,1) 取值范围在0-100之间,默认值为0 成绩
create table s_c(
s_id char(10) references student(s_id),
c_id char(10) references course(course_id),
grade number(3,1) DEFAULT 0 check(grade>=0 and grade <=100),
CONSTRAINT s_c_test PRIMARY KEY (s_id,c_id) -- constraint 约束名 primary key(a,b)
);
7、t_c(授课表)
字段名 数据类型 约 束 说明
t_id char(10) 与课程号组合做主键
外键,与教师表的教师编号关联 教师编号
c_id char(10) 外键,与课程表的课程号关联 课程号
term int 开课学期
create table t_c(
t_id char(10) references teacher(t_id),
c_id char(10) references course(course_id),
term int,
CONSTRAINT t_c_test PRIMARY KEY (t_id,c_id) -- constraint 约束名 primary key(a,b)
);
三、使用SQL命令修改表的结构
使用SQL语句完成对“教师”表结构的修改。
(1)添加“身份证号”字段cardid,字符型,长度为18。
(2)将“教师姓名”字段t_name的长度修改为20
(3)设置“职称”字段t_professor的取值为:“教授”、“副教授”、“讲师”、“助教”
(4)设置“职称”字段的默认值为“助教”。
alter table teacher
add cardid char(18);
alter table teacher
modify t_name varchar2(20) ;
alter table teacher
add constraints t_professor check(t_professor='教授' or t_professor='副教授' or t_professor='讲师' or t_professor='助教');
alter table teacher
modify t_professor DEFAULT '助教';