Oracle 创建表 练习题

 

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)      为每个表添加12条测试数据。

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

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

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

f)       删除copy_studentcopy_class上的约束,使用字典表user_constraintsuser_cons_columns查询确认约束删除成功。

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

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

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

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;


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/545587.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法常用面试题汇总

1.说一下什么是二分法?使用二分法时需要注意什么?如何用代码实现? 二分法查找(Binary Search)也称折半查找,是指当每次查询时,将数据分为前后两部分,再用中值和待搜索的值进行比较,如果搜索的值大于中值,则使用同样的方式(二分法)向后搜索,反之则向前搜索,直到搜…

Java LocalDateTime类| 带示例的getDayOfYear()方法

LocalDateTime类getDayOfYear()方法 (LocalDateTime Class getDayOfYear() method) getDayOfYear() method is available in java.time package. getDayOfYear()方法在java.time包中可用。 getDayOfYear() method is used to get the field value day-of-year from this date-t…

51单片机——交通灯

原理图 功能描述 1、基本功能就是如同红绿灯一般,不做赘述。   2、红灯时长和绿灯时长可通过按键设置,即按键列中的上面4个,当这4个按键有一个按下后便进入时长设置功能,设置完成后按最下面两个按键(紧急控制按钮&am…

设置TextField内文字距左边框的距离

2019独角兽企业重金招聘Python工程师标准>>> //设置文本框左边的viewUITextField *textField [[UITextField alloc]init];textField.frame CGRectMake(10, 30, 300, 30);[self.view addSubview:textField];textField.leftView [[UIView alloc]initWithFrame:CGRe…

Oracle注册表修改 乱码编码

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0"NLS_LANG"值改为"SIMPLIFIED CHINESE_CHINA.ZHS16GBK"AMERICAN.AL32UTF8乱码更改oracle 10g装上后,建了个表写入中文数据,发现通过工具DbVisualizer 6.5 写入/读取中文都正常,就sqlplus和PL/SQL Developer不正常…

设计模式常见面试题汇总

1.说一下设计模式?你都知道哪些? 答:设计模式总共有 23 种,总体来说可以分为三大类:创建型模式( Creational Patterns )、结构型模式( Structural Patterns )和行为型模式( Behavioral Patterns )。 分类包含关注点创建型模式工厂模式、抽象工厂模式、单例模式、建…

java 根据类名示例化类_Java LocalDateTime类| minusMinutes()方法与示例

java 根据类名示例化类LocalDateTime类minusMinutes()方法 (LocalDateTime Class minusMinutes() method) minusMinutes() method is available in java.time package. minusMinutes()方法在java.time包中可用。 minusMinutes() method is used to subtract the given minutes …

类的三大特性

类有三大特性:继承,封装,多态,这个也是介绍类的时候,必须提到的话题,那么今天就来看一下OC中类的三大特性: 一、封装 学习过Java中类的同学可能都知道了,封装就是对类中的一些字段&a…

JVM 面试题汇总

1.什么是 JVM?它有什么作用? 答:JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,顾名思义它是一个虚拟计算机,也是 Java 程序能够实现跨平台的基础。它的作用是加载 Java 程序,把字节码翻译成机器码再交由 CPU 执行的一个虚拟计算器。 2.JVM 主要组成部分有哪些? …

Java BigInteger类| isProbablePrime()方法与示例

BigInteger类isProbablePrime()方法 (BigInteger Class isProbablePrime() method) isProbablePrime() method is available in java.math package. isProbablePrime()方法在java.math包中可用。 isProbablePrime() method is used to check whether this BigInteger is probab…

20141215胡思乱想

书读得越多,越发现自己无知。 我们的就像在一个空白的圆里面,周围都是黑暗,不断成长,圆会越来越大,接触到的黑暗会越多。所以要时刻保持谦逊。 Stay Hungry, Stay Foolish!! 时刻要思考,不要急于求成。 转载…

常见面试题翻车合集

1.去掉 main 方法的 static 修饰符,程序会怎样? A:程序无法编译 B:程序正常编译,正常运行 C:程序正常编译,正常运行一下马上退出 D:程序正常编译,运行时报错 答:D 题目解析:运行时异常如下: 错误: main 方法不是类 xxx 中的 static, 请将 main 方法定义为: p…

c语言i++和++i程序_使用C ++程序从链接列表中消除重复项

c语言i和i程序Given a sorted linked list (elements are sorted in ascending order). Eliminate duplicates from the given LL, such that output LL contains only unique elements. 给定一个排序的链表(元素按升序排序)。 从给定的LL中消除重复项,以便输出LL仅…

struts的开发模式

<constant name"struts.devMode" value"true" /> struts.devMode也就是struts的开发模式&#xff0c;默认值为false&#xff0c;这里修改为true就可以了&#xff0c;以后一旦就该这个文件中的配置就不用去重启tomcat。struts2.1的bug&#xff0c;tom…

nginx启动与停止

转自&#xff1a;http://www.nginx.cn/nginxchscommandline#commandnginx启动sudo /usr/local/nginx/nginx (nginx二进制文件绝对路径&#xff0c;可以根据自己安装路径实际决定)nginx从容停止命令&#xff0c;等所有请求结束后关闭服务ps -ef |grep nginxPID PPID USER …

编程c语言 十进制转八进制_使用C编程语言处理八进制值

编程c语言 十进制转八进制Octal value has 8 digit values from 0 to 7, with the base 8. (Read more about Computer number systems), here we will learn how to work with octal values in c programming language? 八进制值具有从0到7的8位数字&#xff0c;以8为底。(阅…

加餐 | Java 面试通关攻略

面试分为三个重要的阶段: 面试前准备面试中表现面试后复盘做好这三个阶段的准备,相信一定会有很大的收获。下面来分别看看这三个阶段需要准备哪些内容。 一. 面试前准备 1. 研究待面试的公司 所谓知己知彼方能百战不殆,对待面试同样如此,企业希望招聘的人能够直接上手工…

java中_null和“”的区别详解

null和""的区别 问题一&#xff1a; null和""的区别 String snull; string.trim()就会抛出为空的exception String s""; string.trim()就不会抛,为什么? 答&#xff1a; NULL代表声明了一个空对象&#xff0c;根本就不是一个字符串。 …

结语|日拱一卒无有尽,功不唐捐终入海

到今天为止,我们已经共同阅读了 40 篇文章,共计 13 万字、505 道面试题,这些面试题由浅入深,系统地把 Java 面试中,可能遇到的所有知识点都囊括了。这个系列的面试课程,也汇聚了我作为面试官这 4 年的经验,同时为了写好这门课程,我联系了 20 多个面试官朋友,只为给大家…

Android学习—Notification消息通知

最近在项目中需要使用消息通知&#xff0c;自己把它封装成了一个方法&#xff0c;需要的时候方便调用&#xff0c;下面对Notification类中的一些常量&#xff0c;字段&#xff0c;方法简单介绍一下&#xff1a;常量&#xff1a;DEFAULT_ALL 使用所有默认值&#xff0c;比如声…