a)      建立下列教学管理用的数据表。注意,表名和字段名都是英文。

学生表(student)

字段

名称

数据类型

约束

学号

S_NO

CHAR(6)

主键

姓名

S_NAME

CHAR(10)

非空

性别

S_SEX

CHAR(2)

只取男、女

出生日期

S_BIRTHDAY

DATE

入学成绩

S_SCORE

NUMBER(5,1)

附加分

S_ADDF

NUMBER(5,1)

班级编码

CLASS_NO

CHAR(5)

外键,关联班级表CLASS_NO

班级表(class)

字段

名称

数据类型

约束

班级编码

CLASS_NO

CHAR(5)

主键

班级名

CLASS_NAME

CHAR(10)

非空

所属系部

DEPT_NO

CHAR(2)

外键,关联系部表DEPT_NO

系部表(department)

字段

名称

数据类型

约束

系部编码

DEPT_NO

CHAR(2)

主键

系部名

DEPT_NAME

CHAR(10)

非空

课程表(course)

字段

名称

数据类型

约束

课程编码

COURSE_NO

CHAR(5)

主键

课程名

COURSE_NAME

CHAR(20)

非空

教师表(teacher)

字段

名称

数据类型

约束

教师编码

T_NO

CHAR(6)

主键

教师姓名

T_NAME

CHAR(8)

非空

性别

T_SEX

CHAR(2)

只取男、女

出生日期

T_BIRTHDAY

DATE

职称

TECH_TITLE

CHAR(10)

选修表(choice)

字段

名称

数据类型

约束

学生编码

S_NO

CHAR(6)

主键,与学生表中S_NO外键关联,级联删除

课程编码

COURSE_NO

CHAR(5)

主键,与课程表中COURSE_NO外键关联

成绩

SCORE

NUMBER(5,1)

授课表(teaching)

字段

名称

数据类型

约束

教师编码

T_NO

CHAR(6)

主键,与教师表中T_NO外键关联,级联删除

课程编码

COURSE_NO

CHAR(5)

主键,与课程表中COURSE_NO外键关联

b)      为每个表添加1至2条测试数据。

c)      使用字典表user_constraints和user_cons_columns 查询学生表上有哪些约束?

d)      通过复制学生表和班级表创建 copy_student 、copy_class,并为复制的表添加和学生表和班级表相同的约束。班级表DEPT_NO 的外键不需要添加。

e)      使用字典表user_constraints和user_cons_columns 查询确认约束添加成功。

f)       删除copy_student、copy_class上的约束,使用字典表user_constraints和 user_cons_columns查询确认约束删除成功。

g)      查询编号为c002班级中所有女同学;

h)      查询所有学生出生日期,要求输出格式为'yyyy-mm-dd';

i)       查询总分(入学成绩+附加分)在550和600之间的所有学生;

j)       查询名字中带“小”字的所有学生;

k)      查询所有学生,按总分(入学成绩+附加分)降序排列;

l)       查询入学成绩大于平均入学成绩的所有学生;

--删除表
DROP TABLE department CASCADE CONSTRAINT;
DROP TABLE course CASCADE CONSTRAINT;
DROP TABLE teacher CASCADE CONSTRAINT;
DROP TABLE class CASCADE CONSTRAINT;
DROP TABLE student CASCADE CONSTRAINT;
DROP TABLE choice CASCADE CONSTRAINT;
DROP TABLE teaching CASCADE CONSTRAINT;--创建表
CREATE TABLE department(dept_no char(2) CONSTRAINT pk_department_dept_no PRIMARY KEY,dept_name char(10) CONSTRAINT nn_department_dept_name NOT NULL
);
CREATE TABLE course(course_no char(5) CONSTRAINT pk_course_course_no PRIMARY KEY,course_name char(20) CONSTRAINT nn_course_course_name NOT NULL
);
CREATE TABLE teacher(t_no CHAR(6) CONSTRAINT pk_teacher_t_no PRIMARY KEY,t_name CHAR(8) CONSTRAINT nn_teacher_t_name NOT NULL,t_sex NCHAR(1) CONSTRAINT ck_teacher_t_sex CHECK(t_sex IN('男','女')),t_birthday DATE,tech_title CHAR(10)
);
CREATE TABLE class(class_no CHAR(5) CONSTRAINT pk_class_class_no PRIMARY KEY,class_name CHAR(10) CONSTRAINT nn_class_class_name NOT NULL,dept_no CHAR(2)
);
CREATE TABLE student(s_no CHAR(6) CONSTRAINT pk_student_s_no PRIMARY KEY,s_name CHAR(10) CONSTRAINT nn_student_s_name NOT NULL,s_sex NCHAR(2) CONSTRAINT ck_student_s_sex CHECK(s_sex IN('男','女')),s_birthday DATE,s_score NUMBER(5,1),s_addf NUMBER(5,1),class_no CHAR(5)
);
CREATE TABLE choice(s_no CHAR(6),course_no CHAR(5),       score NUMBER(5,1),CONSTRAINT pk_choice_s_no_course_no PRIMARY KEY(s_no,course_no)
);
CREATE TABLE teaching(t_no CHAR(6),course_no CHAR(5),CONSTRAINT pk_teaching_t_no_course_no PRIMARY KEY(t_no,course_no)
);
--向表中插入记录
INSERT INTO department VALUES('01','工商');
INSERT INTO department VALUES('02','旅游');
INSERT INTO department VALUES('03','信息');
INSERT INTO department VALUES('04','机电');
INSERT INTO department VALUES('05','汽车');INSERT INTO course VALUES('01','C语言');
INSERT INTO course VALUES('02','营养与健康');
INSERT INTO course VALUES('03','大学英语');
INSERT INTO course VALUES('04','线性代数');
INSERT INTO course VALUES('05','计算机网络');INSERT INTO teacher VALUES('0101','司马','男',TO_DATE('13-07-1987','dd-mm-yyyy'),'甲');
INSERT INTO teacher VALUES('0201','诸葛','男',TO_DATE('21-03-1976','dd-mm-yyyy'),'乙');
INSERT INTO teacher VALUES('0302','慕容','女',TO_DATE('7-05-1985','dd-mm-yyyy'),'丙');
INSERT INTO teacher VALUES('0403','夏侯','男',TO_DATE('18-08-1982','dd-mm-yyyy'),'甲');
INSERT INTO teacher VALUES('0502','欧阳','女',TO_DATE('25-02-1989','dd-mm-yyyy'),'丙');INSERT INTO class VALUES('1101','工商','01');
INSERT INTO class VALUES('1201','旅游','02');
INSERT INTO class VALUES('1102','信息','03');
INSERT INTO class VALUES('1202','机电','04');
INSERT INTO class VALUES('1103','汽车','05');INSERT INTO student VALUES('0001','小明','男',TO_DATE('13-07-1990','dd-mm-yyyy'),89,12,'1101');
INSERT INTO student VALUES('0002','小红','女',TO_DATE('13-07-1991','dd-mm-yyyy'),83,17,'1201');
INSERT INTO student VALUES('0003','小强','男',TO_DATE('13-07-1990','dd-mm-yyyy'),80,11,'1102');
INSERT INTO student VALUES('0004','小刚','男',TO_DATE('13-07-1991','dd-mm-yyyy'),75,19,'1202');
INSERT INTO student VALUES('0005','小花','女',TO_DATE('13-07-1991','dd-mm-yyyy'),90,15,'1103');INSERT INTO choice VALUES('0001','01',98);
INSERT INTO choice VALUES('0002','02',87);
INSERT INTO choice VALUES('0003','03',91);
INSERT INTO choice VALUES('0004','04',94);
INSERT INTO choice VALUES('0005','05',83);INSERT INTO teaching VALUES('0101','01');
INSERT INTO teaching VALUES('0201','02');
INSERT INTO teaching VALUES('0302','03');
INSERT INTO teaching VALUES('0403','04');
INSERT INTO teaching VALUES('0502','05');--添加外键约束
ALTER TABLE student ADD CONSTRAINT fk_student_class_no FOREIGN KEY(class_no) REFERENCES class(class_no);
ALTER TABLE class ADD CONSTRAINT fk_class_dept_no FOREIGN KEY(dept_no) REFERENCES department(dept_no);
ALTER TABLE choice ADD CONSTRAINT fk_choice_s_no FOREIGN KEY(s_no) REFERENCES student(s_no) ON DELETE CASCADE;
ALTER TABLE choice ADD CONSTRAINT fk_choice_course_no FOREIGN KEY(course_no) REFERENCES course(course_no) ON DELETE CASCADE;
ALTER TABLE teaching ADD CONSTRAINT fk_t_no FOREIGN KEY(t_no) REFERENCES teacher(t_no) ON DELETE CASCADE;
ALTER TABLE teaching ADD CONSTRAINT fk_course_no FOREIGN KEY(course_no) REFERENCES course(course_no) ON DELETE CASCADE;SELECT TABLE_NAME FROM USER_TABLES;SELECT * FROM department;
SELECT * FROM course;
SELECT * FROM teacher;
SELECT * FROM class;
SELECT * FROM student;
SELECT * FROM choice;
SELECT * FROM teaching;

Oracle 创建表 练习题相关推荐

  1. oracle有一百个人围一圈报数,案例:Oracle创建表时报session超过最大值 ORA-00018 证明递归ses...

    天萃荷净 创建表时报session超过最大值 证明递归session存在并不在v$session中显示 我们在数据库的使用过程中,有时候会遇到类似情况,我会话是登录的,但是我进行某种操作,缺报sess ...

  2. oracle创建表空间.创建用户.创建表

    oracle创建表空间.创建用户.创建表 转:http://blog.csdn.net/zhoubl668/archive/2009/02/02/3858576.aspx 在SQL*Plus中:(1) ...

  3. oracle 创建表空间 pcincrease,oracle建表空间 各种语句

    oracle建表空间 各种语句 在创建用户之前,先要创建表空间: 其格式为:格式: create tablespace 表间名 datafile '数据文件名' size 表空间大小; 如: SQL& ...

  4. oracle删除判断是否存在,oracle创建表之前判断表是否存在,如果存在则删除已有表...

    Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area; CREATE TABLE sys_area ( id varchar(64) ...

  5. Oracle 创建表空间,用户,赋值(简装)

    一, 1.Oracle 创建表空间,用户,赋值(简装) C:\Documents and Settings\Administrator>sqlplus /nolog SQL> conn / ...

  6. Oracle创建表空间、创建用户以及授权

    原文地址:Oracle创建表空间.创建用户以及授权 作者:chinacoolsword Oracle安装完后,其中有一个缺省的数据库,除了这个缺省的数据库外,我们还可以创建自己的数据库. 对于初学者来 ...

  7. oracle 建表字段设置,Oracle创建表、删除表、修改表(添加字段、修改字段、删除字段)语句总结...

    关于Oracle创建表.删除表.修改表(添加字段.修改字段.删除字段)语句的简短总结. Oracle创建表: create table 表名 ( 字段名1 字段类型 默认值 是否为空 , 字段名2 字 ...

  8. Oracle创建表语句(Create table)语法详解及示例

    Oracle创建表语句(Create table)语法详解及示例   创建表(Create table)语法详解 1. ORACLE常用的字段类型ORACLE常用的字段类型有 VARCHAR2 (si ...

  9. oracle创建表之前判断表是否存在,如果存在则删除已有表

    Mysql 创建表之前判断表是否存在,如果存在则删除已有表 DROP TABLE IF EXISTS sys_area;CREATE TABLE sys_area (id int NOT NULL A ...

最新文章

  1. python urllib.request 爬虫 数据处理-Python爬虫学习之(二)| urllib进阶篇
  2. gdb InnoDB Redundant Row Format
  3. Linux进程间通信分类 以及 pipe的原理实现
  4. Java黑皮书课后题第5章:**5.32(游戏:彩票)修改程序清单3-8,产生一个两位数的彩票。这两位数是不同的
  5. 使用idea编写消费者,接收生产者的持续日志输出【小案例】(三)
  6. 模拟jquery链式访问
  7. python虚拟环境和pyenv_Python多版本管理器pyenv和虚拟环境pyenv-virtualenv的安装设置...
  8. linux系统键盘响应时间,怎样提高使用Linux键盘的效率
  9. linux下rocksdb的编译安装
  10. Zookeeper - zookeeper安装与配置
  11. 关于Hibernate ResultTransformer
  12. KiCad快速修改PCB线宽
  13. 2.5 浅层/深层神经网络
  14. HDOJ 6045-Is Derek lying?
  15. AliOS-Things--EMW3060 (9)uart
  16. 10.业余无线电术语
  17. 2020数学建模国赛(A)炉温曲线
  18. 大学四年,小白一路走来,分享一波我是如何学习、提高自己的算法
  19. 创新工场笔试最后两道题
  20. promise特点与其api的常用方法

热门文章

  1. linux 调优系列
  2. javascript OOP(下)(九)
  3. 配置java编译环境
  4. 【three.js】库
  5. 基于微服务架构,改造企业核心系统之实践
  6. 【转】GitHub入门详细讲解
  7. X-UA-Compatible,IE8 兼容模式
  8. java 中使用mongodb_mongodb在java中的使用
  9. java 容器都有哪些?_适合存储普洱茶的容器都有哪些?
  10. Tomcat log文件