AI智能
改变未来

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 teacheradd cardid char(18);alter table teachermodify t_name  varchar2(20) ;alter table teacheradd constraints t_professor check(t_professor=\'教授\' or t_professor=\'副教授\' or t_professor=\'讲师\' or t_professor=\'助教\');alter table teachermodify t_professor DEFAULT \'助教\';
赞(0) 打赏
未经允许不得转载:爱站程序员基地 » oracle 建表