个人头像

Oracle数据库作业:Oracle数据表与索引的创建与管理

发表于2022-4-14  | 分类于秋风无言

上机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;

虽然你可能不相信,但是这些代码原封不动的输进去,真的就写完了。