传送门(不用再辛苦百度实验报告啦,一键直达呦)
一、实验目的
1、掌握使用OEM工具创建、修改和删除表
2、掌握使用SQL语句创建、修改和删除表
3、掌握使用SQL语句插入、修改和删除数据
4、理解各种约束的作用,并能使用OEM和BQL命令为表创建各种约束
二、实验内容
(一)分别使用OEM和SQL语句完成下面的内容。
1.创建表并添加相应的约束。要求:
(1)创建名为student(学生信息)的表,表中各列要求如下:
字段名称 | 字段类型 | 大小 | 说明 |
sno | CHAR | 10 | 主键 |
sname | VARCHAR | 8 | |
sex | CHAR | 2 | 默认值为男,只能输入男或者女 |
birthday | DATE | ||
sdept | CHAR | 20 |
使用 OEM:
使用SQL语句:
(2)创建名为course(课程信息)的表,表中各列要求如下:
字段名称 | 字段类型 | 大小 | 说明 |
cno | CHAR | 10 | 主键 |
cname | CHAR | 30 | 唯一性 |
ccredit | NUMBER | 3 |
使用OEM:
使用SQL:
(3)创建名为score(学生成绩)的表,表中各列要求如下:
字段名称 | 字段类型 | 大小 | 取值范围 | 说明 |
sno | CHAR | 10 | 数据来自学生信息表 | 主键 |
cno | CHAR | 10 | 数据来自学生课程表 | 主键 |
grade | NUMBER | 3 | 0~100 |
使用OEM:
使用SQL:
2.增加、修改和删除字段,要求:
(1)给student表增加一个memo(备注)字段, 类型为VARCHAR2(200)。
(2)将memo 字段的类型修改为VARCHAR2(300)。
(3)删除memo字段。
3.向表中添加数据、更新数据、删除数据,并验证约束。要求:
(1)使用INSERT INTO 命令向三个表中分别插入若干行数据,验证主键约束、唯一约束以及默认约束。
向student 表插入数据:
查看已经插入数据的学生表:
向course 表插入数据并查看:
向score 表插入数据并查看数据:
(2)使用UPDATE 命令更新数据,验证外键约束。
(3)使用DELETE 命令删除数据。
4.删除表。要求:
(1)使用OEM工具删除表。
使用OEM工具创建student表
创建主键约束:
删除学生表:
(2)利用DROP TABLE 语句删除表。
(二)习题
1.以下关于insert语句的values子句的说法哪一个是正确的? (AB)
A、如果没有指定字段的列表,则这些值必须按照表中列的顺序列出
B、insert 语句中的values子句是可选的
C、在values子句中,字符、日期和数字数据必须用单引号引起来
D、要在values子句中指定一个空值,可使用字符串(“”)
2.为人力资源部门设计表,此表必须用一列来包含每个雇员的聘用日期,应该为此列指定以下哪一种数据类型 (B)
A、char
B、date
C、timestamp
D、interval year to month
3.如果莫一列用于存储多大4GB的二进制数据,则应该定义为那种数据类型? (C)
A、long
B、number
C、blob
D、longraw
4.需要删除student表中所有数据、该表的结构以及与该表相关的索引,应使用下面哪一条语句 (A)
A、drop table
B、truncate table
C、alter table
D、delete table
5.以下关于创建表的说法哪个是正确的?(B)
A、使用create table 语句时,随时会在当前用户方案中创建表
B、如果create table 语句中没有明确包含某个方案,则会在当前用户方案中创建表
C、如果create table 语句中没有明确包含某个方案,create table 语句则会失效
D、如果create table 语句中明确包含某一个方案,但是该方案不存在,则会创建该方案
6.以下关于列的说法哪个是正确的? (C)
A、不可以增大char列的宽度
B、如果列包含非空数据,则可以修改列的数据类型
C、可以将char 数据类型的列转换为varchar2数据类型
D、可以将data数据类型列转换为varchar2数据类型
7.以下关于not null 约束条件的说法哪个是正确的? (A)
A、必须在列级定义not null约束条件
B、可以在列级或表级定义not null约束条件
C、not null约束条件要求列包含字母数字值
D、not null约束条件要求列并不能包含字母数字值
8.以下关于foreign key约束条件的说法哪个正确?(C)
A、自动为foreign key约束条件创建索引
B、foreign key约束条件允许受约束的列包含存在与父表的主键或特殊键列中的值
C、foreign key约束条件要求在将某个值添加到受约束的列之前检查允许的值列表
D、foreign key列可以具有与其引用的主键列不同的数据类型
9.Oracle允许你在子表中创建foreign key约束条件之前,父表应当先具备什么条件? (B)
A、在父表的主键列已经存在foreign key约束条件
B、在父表中必须存在primary key 或unique约束条件
C、在父表中必须存在索引
D、在父表中必须存在check约束条件
10.需要对雇员表的雇员标识列添加primary key 约束条件,应该使用一下哪条alter table 语句 (A)
A、alter table 雇员 add primary key(雇员标识);
B、alter table 雇员 add constraint primary key(雇员标识);
C、alter table 雇员 modify 雇员标识 primary key
D、alter table 雇员 modify constraint primary key(雇员标识);