ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Oracle数据库模式对象管理

2019-05-10 19:56:41  阅读:635  来源: 互联网

标签:customers name 数据库 number 模式 id varchar2 Oracle create


1.打开SQL Plus,以system用户登录BOOKSALE数据库。

system/tiger @booksale

2.按下列方式创建一个用户bs,并给该用户授权。

create user bs identified by bs default tablespace users;

grant resource,connect,create view to bs;

3.使用bs用户登录数据库,并进行下面的相关操作。

4.根据图书销售系统关系模式设计,创建表1至表6。

①customers表:

create table customers(

customer_id number(4) primary key,

name char(20) not null,

phone varchar2(50) not null,

email varchar2(50),

address varchar2(200),

code varchar2(10)

);

 

②publishers表:

create table publishers(

publisher_id number(2) primary key,

name varchar2(50),

contact char(10),

phone varchar2(50)

);

③books表:

create table books(

ISBN varchar2(50) primary key,

title varchar2(50),

author varchar2(50),

pubdate date,

publisher_id number(2),

cost number(6,2),

retail number(6,2),

category varchar2(50),

foreign key(publisher_id) references publishers(publisher_id)

);

④orders表:

create table orders(

order_id number(4) primary key,

customer_id number(4),

orderdate date not null,

shipdate date,

shipaddress varchar2(200),

shipcode varchar2(10),

foreign key(customer_id) references customers(customer_id)

);

⑤orderitem表:

create table orderitem(

order_id number(4),

item_id number(4),

ISBN varchar2(50) not null,

quantity number(4),

primary key(order_id,item_id),

foreign key(order_id) references orders(order_id)

);

 

⑥promotion表:

create table promotion(

gift_id number(2),

name char(20) primary key,

minretail number(5,2),

maxretail number(5,2)

);

5.在CUSTOMERS表的name列上创建一个B-树索引,要求索引值为大写字母。

create index cus_name_index on customers(upper(name)) tablespace users;

6.在BOOKS表的title列上创建一个非唯一性索引。

create index book_title_index on books(title) tablespace users;

7.在ORDERitem表的ISBN列上创建一个唯一性索引。

create unique index oitem_isbn_index on orderitem(ISBN) tablespace users;

8.创建一个视图customers_book,描述客户与订单的详细信息,包括客户编号、客户名单、订购图书的ISBN、图书名称、图书数量、订货日期、发货日期等。

create view customers_book(customer_id,name,ISBN,title,quantity,orderdate,shipdate)

as

select c.customer_id,c.name,o.ISBN,b.title,o.quantity,O.orderdate,O.shipdate

from customers c,orderitem o,orders O,books b;

9.创建一个视图customers_gift,描述客户获得礼品的信息,包括客户名称、图书总价、礼品名称。

create view customers_gift(customer_name,book_price,promotion_name)

as

select c.name,(case when oi.quantity<=10 then oi.quantity*b.retail else oi.quantity*b.cost end),p.name

from customers c,orderitem oi,books b,promotion p,orders o

where c.customer_id=o.customer_id and o.order_id=oi.order_id and b.ISBN=oi.ISBN and   

case when oi.quantity<=10 then oi.quantity*b.retail else oi.quantity*b.cost end between minretail and maxretail;

10.定义序列seq_customers,产生客户编号,序列起始值为1,步长为1,不缓存,不循环。

create sequence seq_customers start with 1 increment by 1 nocache nocycle;

11.定义序列seq_orders,产生订单编号,序列起始值为1000,步长为1,不缓存,不循环。

create sequence seq_orders start with 1000 increment by 1 nocache nocycle;

12.定义序列seq_promotion,产生礼品编号,序列起始值为1,步长为1,不缓存,不循环。

create sequence seq_promotion start with 1 increment by 1 nocache nocycle;

标签:customers,name,数据库,number,模式,id,varchar2,Oracle,create
来源: https://blog.csdn.net/weixin_40431584/article/details/90082619

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有