上机4:Oracle数据表与索引的创建与管理
首先是老师的要求
作业要求:
不要提交附件。
分题号上传对应的答案。
答案中体现出学号和姓名信息。(本次作业中没有相关的行为可以提现这一信息,因此,我手动在作业中打上了我的学号和姓名)
作业内容:
(1)打开SQL Plus, 以system用户登录数据库
(2)按照表A-1到表A-6的数据库表
(3)在Customers表的name列上创建一个B-树索引,要求索引值为大写字母。
(4)在Books表的title上创建一个非唯一性索引。
(5)在OrderItem表的isbn列上创建一个唯一性索引。
好叭,这次作业有些简单,就是创6个表,然后三个索引,我们直接开始:
(1)这个俩方法,一个是登录时直接 sqlplus ,然后用户名system登录,还可以是 先使用sysdba登录,然后conn system。这都联系过很多遍了,所以不做赘述了。
(2)建立6个表。值得说明的是,Oracle中不存在int类型。输入不会报错,但是会自动转化成number类型。
create table customers(
customer_id number(4,0) primary key,
name char(20) not null,
phone varchar2(50) not null,
email varchar2(50),
address varchar2(200),
code varchar2(10));
create table publishers(
publisher_id number(2,0) primary key,
name varchar2(50),
contact char(10),
phone varchar2(50));
create table BOOKS(
ISBN varchar2(50) PRIMARY KEY,
title varchar2(50),
author varchar2(50),
pubdate date,
publisher_id number(2,0),
cost number(6,2),
retail number(6,2),
category varchar2(50),
FOREIGN KEY(publisher_id) REFERENCES PUBLISHERS(publisher_id));
create table ORDERS(
order_id number(4,0) PRIMARY key,
customer_id number(4,0),
orderdate date not null,
shipdate date,
shipaddress varchar2(200),
shipcode varchar2(10),
foreign key(customer_id) REFERENCES CUSTOMERS(customer_id));
create table ORDERITEM(
order_id number(4,0),
item_id number(4,0),
ISBN varchar2(50) not null,
quantity number(4,0),
PRIMARY KEY(order_id,item_id),
FOREIGN KEY(order_id) REFERENCES ORDERS(order_id));
create table PROMOTION(
gift_id number(2,0),
name char(20) PRIMARY key,
minretail number(5,2),
maxretail number(5,2));
(3)
create index customers_name_index on customers(upper(name)) tablespace users;
(4)
create index books_title_index on books(title) tablespace users;
(5)
create unique index orderitem_isbn_index on orderitem(ISBN) TABLESPACE USERS;
虽然你可能不相信,但是这些代码原封不动的输进去,真的就写完了。