oracle 建表

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 '助教';
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值