oracle体验实验,Oracle实验三

2023-10-27

1、实验目的

(1)掌握表的创建与管理。

(2)掌握索引的创建与管理。

(3)掌握视图的创建与管理。

(4)掌握序列的创建与应用。

2、实验环境

Win10 以及Oracle 11g

3、实验要求

(1)为图书销售系统创建表。

(2)在图书销售系统适当表的适当列上创建适当类型的索引。

(3)为图书销售系统创建视图。

(4)为图书销售系统创建序列。

4、实验内容

(1)打开SQL Plus,以system用户登录BOOKSALES数据库。

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

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

(4)根据图书销售系统关系模式设计,创建表1至表6。(见P299-P300)

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

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

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

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

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

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

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

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

5、实验过程与结果

(1)打开SQL Plus,以system用户登录BOOKSALES数据库。

sys/Aa123456 as sysdba

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

create user bs identified by bs default tablespace users;

grant resource,connect,create view to bs;

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

conn bs/bs@wangwen

(4)根据图书销售系统关系模式设计,创建表1至表6。(见P299-P300)

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)

);

create table publishers(

publisher_id number(2) 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),

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) 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)

);

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)

);

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_books

as

select c.customer_id,name,b.isbn,title,quantity,orderdate,shipdate

from customers c,books b,orderitem o1,orders o2

where c.customer_id=o2.customer_id and o2.order_id=o1.order_id and o1.ISBN=b.ISBN

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

create view customers_gift(customers_name,book_allcost,gift_name)

as

select cname,allcost,p.name

from(select c.name cname,sum(quantity*retail)allcost

from customers c join orders o on c.customer_id=o.customer_id

join orderitem oi on o.order_id=oi.order_id

join books b on oi.ISBN=b.ISBN

group by c.name) orderinfo

join promotion p on allcost 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;

(13)分区索引:

分区索引:分区索引(或索引分区)主要是针对分区表而言的。随着数据量的不断增长,普通的堆表需要转换到分区表,其索引呢,则对应的转换到分区索引。分区索引的好处是显而易见的。就是简单地把一个索引分成多个片断,在获取所需数据时,只需要访问更小的索引片断(块)即可实现。同时把分区放在不同的表空间可以提高分区的可用性和可靠性。

创建分区索引:

SQL> create table customers2

2 (

3 cust_id number primary key,

4 cust_name varchar2(200),

5 rating varchar2(1) not null

6 )

7 partition by list(rating)

8 (

9 partition pA values(‘A’),

10 partition pB values(‘B’)

11 );

表已创建。

SQL> create table sales(

2 salse_id number primary key,

3 cust_id number not null,

4 sales_amt number,

5 constraint fk_sales_01 foreign key(cust_id) references customers2

6 )

7 partition by reference(fk_sales_01);

表已创建。

SQL> select partition_name, high_value

2

SQL> from user_tab_partitions

SP2-0734: 未知的命令开头 “from user_…” - 忽略了剩余的行。

SQL>

SQL> select partition_name, high_value from user_tab_partitions where table_name = ‘SALES’;

PARTITION_NAME

HIGH_VALUE

PA

PB

SQL> select table_name, partitioning_type, ref_ptn_constraint_name

2 from user_part_tables

3 where table_name in (‘CUSTOMERS’,‘SALES’);

TABLE_NAME PARTITION REF_PTN_CONSTRAINT_NAME

SALES REFERENCE FK_SALES_01

SQL> select table_name, partitioning_type, ref_ptn_constraint_name

2 from user_part_tables

3 where table_name in (‘CUSTOMERS’);

未选定行

SQL> select table_name, partitioning_type, ref_ptn_constraint_name

2 from user_part_tables

3 where table_name =upper(‘CUSTOMERS’);

未选定行

SQL> select table_name, partitioning_type, ref_ptn_constraint_name

2 from user_part_tables

3 where table_name in (‘CUSTOMERS2’,‘SALES’);

TABLE_NAME PARTITION REF_PTN_CONSTRAINT_NAME

CUSTOMERS2 LIST

SALES REFERENCE FK_SALES_01

SQL> spool

当前正假脱机至 G:/test003.txt

SQL> spool off

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

oracle体验实验,Oracle实验三 的相关文章

  • 【Python数列、数列和问题】

    1 e的计算可用如下表达式展开 试计算e 精确到小数点后6位小数 代码 s 0 item 1 jc 1 n 0 while abs item gt 1e 6 s s item n n 1 jc jc n item 1 jc print 6f
  • 生活之手机控制电脑

    在宿舍的可以候睡觉的时候可以看电脑里面的东西就好了 使用teamviewer就可以 用teamviewer还可以进行远程控制 感觉还是挺好玩的 http android d cn news 1640 html
  • ajax异步加载解析复杂json(集合中包含对象,对象中包含对象)数据

    1 例如后台返回的json数据如下 id 1 name 2 user name 2 age 18 id 2 name 2 user name 2 age 18 2 前台解析代码如下 var obj eval s 进行格式的转化 然后就能采用
  • bat添加到windows服务

    1 编写bat脚本 注释 echo off 显示当前日期时间 echo data time 切换到指定的VUE服务器工作路径 cd d e ColleagueFiles pvGrid nanRui demo 执行vue服务启动命令 前提条件
  • java.net.SocketTimeoutException: connect timed out

    1 禁用Linux防火墙 未解决 2 禁用Windows防火墙 未解决 3 Linux ping Windows ip ping 不通 4 关闭windows防火墙 未解决 5 重启电脑 未解决 6 关闭迈克菲防火墙 问题解决
  • 邮件系统收发邮件报错汇总——错误代码550

    550报错是收发邮件时常见的报错 今天我们就一起来盘点一下关于MDaemon邮件服务器550报错的原因 以及如何解决 有所不周之处 还望网友提醒 第一种 退信 550 connection refused 报错截图如下 原因 这个是因为ip
  • 凸集的开、闭、紧

    凸集的开 闭 紧 更新于20181220 01 13之前的定义有疏漏 特别是对开凸集的定义是错误的臆想 举出的一个例子半开半闭 对于开集 开集 是拓扑学里最基本的概念之一 设A是度量空间X的一个子集 如果A中的每一个点都有一个以该点为球心的
  • 使用python获取当前时间的13位时间戳

    import time import datetime def get timestamp datetime object datetime datetime now now timetuple datetime object timetu
  • java 局部变量作用域_Java基础之:属性与局部变量作用域

    Java基础之 属性与局部变量作用域 简单案例 class A int age 属性 public void print System out println age String name 小范 System out println na
  • Nginx 出现 403 Forbidden 最终解决

    步骤一 检查目录权限 权限不足的就加个权限吧 例子 chmod R 755 var www 步骤二 打开nginx conf 例子 vim etc nginx nginx conf 把 user 用户名 改为 user root 或 其它有
  • 验证回文串

    给定一个字符串 验证它是否是回文串 只考虑字母和数字字符 可以忽略字母的大小写 说明 本题中 我们将空字符串定义为有效的回文串 示例 1 输入 A man a plan a canal Panama 输出 true 解释 amanaplan
  • 蜜罐技术

    蜜罐技术 就是设置一个假的服务器 用来诱使攻击者进行攻击 一般来说 攻击者想对用户进行攻击时 会先进行扫描行为 以便发现用户的服务器以及对应的漏洞 这样就可以进行针对性的攻击 蜜罐技术 可以设置一个满是漏洞的假服务器 这样很容易被攻击者所发
  • vite创建vue2项目

    使用vite首先需要注意官方给出的兼容性注意 Vite 需要 Node js 版本 14 18 16 然而 有些模板需要依赖更高的 Node 版本才能正常运行 当你的包管理器发出警告时 请注意升级你的 Node 版本 1 初始化vite项目
  • 英文单词发音规则

    本文链接 http www php oa com 2008 01 31 yingyudancifayinguize html 英语单词发音规则开闭音节的概念 开音节1 以发音的元音字母结尾的单节 例 be he 2 以辅音字母 r 除外 不
  • matlab生成随机信号序列_信号处理工具箱:基本信号发生器

    信号是现代工程中经常处理的对象 在通信 雷达等领域有大量的应用 在MATLAB中 信号处理工具箱可以看做工具集合 包含波形产生与处理 数字和模拟滤波器设计 信号模型以及频谱分析 时频分析等多个常见功能 在MATLAB信号工具箱中 提供了多种
  • H2 (一个开源的关系数据库)

    Welcome to H2 the Java SQL database The main features of H2 are Very fast open source JDBC API 快速 开源 Embedded and server
  • 元宇宙基本概念、特点及发展趋势初步探讨

    摘要 当前元宇宙 Metaverse 的概念逐渐深入人心 成为近期区块链 人工智能行业热议的重点 本文将从元宇宙的基本概念 元宇宙产生以及元宇宙未来发展等方面 深度分析元宇宙及其发展趋势 一 概述 近一段时间以来 在互联网投资圈和资本圈里
  • Java中的适配器模式(Adapter Pattern)

    Java中的适配器模式 Adapter Pattern 简介 适配器模式 Adapter Pattern 是一种常用的设计模式 用于将一个类的接口转换成客户端所期望的另一个接口 在Java中 适配器模式可以帮助我们解决不兼容接口之间的问题
  • opencv:用最邻近插值和双线性插值法实现上采样(放大图像)与下采样(缩小图像)

    上采样与下采样 概念 上采样 放大图像 或称为上采样 upsampling 或图像插值 interpolating 的主要目的 是放大原图像 从而可以显示在更高分辨率的显示设备上 下采样 缩小图像 或称为下采样 subsampled 或降采

随机推荐

  • 【区间DP题解】 关路灯

    Link 题目 题目描述 某一村庄在一条路线上安装了 n 盏路灯 每盏灯的功率有大有小 即同一段时间内消耗的电量有多有少 老张就住在这条路中间某一路灯旁 他有一项工作就是每天早上天亮时一盏一盏地关掉这些路灯 为了给村里节省电费 老张记录下了
  • A Survey of Large Language Models

    本文是LLM系列的第一篇文章 针对 A Survey of Large Language Models 的翻译 大语言模型综述 摘要 1 引言 2 概述 2 1 LLM的背景 2 2 GPT系列模型 的技术演化 3 LLMs的资源 3 1
  • 新优选商城上线发布会,京庐空间执行总裁赵娅勤女士接受采访!

    新优选商城上线发布会 京庐空间执行总裁赵娅勤女士接受采访现场 互联网的快速发展对于推动各行各业重构商业业态具有深远的历史影响 互联网发展进入21世纪 在全球信息化进程加快的背景下 电子商务 新零售 社交电商等行业业态也为传统行业提供了新的增
  • 正交试验设计例题及答案_正交矩阵求解

    我对题的难度进行划分 满难度是 难度中包含 计算难度和 思路难度 满难度各 难度评测是以我初见题目视角写出的标准 比较主观 另外 考试时的解答时间的长短也需要考虑 毕竟有些东西复习多了见过了 或者看过答案了就不难了 假如每颗 代表20分 我
  • ubuntu:关闭某个进程

    参考 http blog csdn net chen861201 article details 6980677 ps aux grep xxx 程序名称 kill xxx 某个PID
  • ganglia监控hadoop 容器节点

    hadoop容器运行参考上篇博客 http blog csdn net wenwenxiong article details 78973755 参看网址 https gist github com ameizi 0c77e3dbb13de
  • (二十五)admin-boot项目之集成消息队列Rabbitmq

    目录 项目地址 https gitee com springzb admin boot 如果觉得不错 给个 star 简介 这是一个基础的企业级基础后端脚手架项目 主要由springboot为基础搭建 后期整合一些基础插件例如 redis
  • java 动态线程池_线程池的参数动态调整

    经典面试题 这次的文章还是绕回了我写的第三篇原创文章 有的线程它死了 于是它变成一道面试题 中留下的几个问题 哎 兜兜转转 走走停停 天道好轮回 苍天饶过谁 在这篇文章中我主要回答上面抛出的这个问题 你这几个参数的值怎么来的呀 要回答这个问
  • OpenGL2 spec releases at the SIGGRAPH2004

    发信人 chsoft 珍惜光华 善待光华 信区 Graphics标 题 OpenGL2 spec releases at the SIGGRAPH2004发信站 日月光华 2004年08月11日13 22 06 星期三 站内信件 SIGGR
  • 编译busybox有这个提示,是怎么回事

    我编译busybox有这个提示 是怎么回事 有人知道吗 分类 海思论坛 https www ebaina com questions 100000031827
  • DC-DC直流斩波---BUCK降压斩波电路

    降压斩波电路 Buck Chopper 的原理图及工作波形 该电路使用一个全控型器件V 图中为IGBT 也可使用其他器件 若采用晶闸管 需设置使晶闸管关断的辅助电路 图5 1中 为在V关断时给负载中电感电流提供通道 设置了续流二极管VD 斩
  • Linux 文件权限

    一 文件权限 Linux系统中的每个文件和目录都有访问许可权限 用他来确定谁能通过何种方式对文件和目录进行访问和操作 文件或目录的访问权限分为只读 只写和可执行三种 Linux文件权限一共10位长度 分成四段 第一段1位 表示文件类型 d表
  • glGetString(GL_VERSION)、 glGetIntegerv(GL_MAX_TEXTURE_SIZE, &max)为何老是得不到正确的值

    今天碰到了的问题如下 在程序里调用 printf s r n glGetString GL VERSION 总是输出 null glGetIntegerv GL MAX TEXTURE SIZE max 得不到max的值 答 在MFC情况下
  • @RefreshScope注解处理

    spring启动时会调用ClassPathBeanDefinitionScanner java类中的doScan 对包路径下的所有class进行扫描 获取bean的定义 同时对bean的 RefreshScope Scope的父类 进行处理
  • JSP基础_0700_HelloWorld 全局变量和局部变量

    本文讨论jsp中生成的servlet代码中全局变量和局部变量的问题 请看下面一段代码
  • tar包安装

    在Linux操作系统中 常用的软件包一共有两种 rpm包 相当于Windows中的exe软件包 tar gz包 未编译的源码包 软件的编译需要使用gcc编译器 Linux安装 开发工具 gt gcc gcc c tar包解压 基本语法 ta
  • WIN7&WIN10共享打印机0x000000709错误解决方法

    这两天连续碰到709错误 打印机安装正常 共享正常 但通过 ip 打印机名添加共享时就709错误 开始以为是printspooler服务的问题 但试过故障依旧 也检查了共享设置 密码共享是关闭的 guest用户是开启的 为什么呢 最终发现了
  • numpy ndarray 打印格式化

    1 ndarray打印省略问题 np set printoptions threshold np inf 2 ndarray打印换行限制 加上下面这句代码 输出时打印不换行 np set printoptions linewidth 400
  • 用Servlet结合c3p0连接池等写一个简单的注册登录

    首先 给一张截图 上面图是我的整体内容 1 先进入工具类 代码如下 package com qf util import javax sql DataSource import com mchange v2 c3p0 ComboPooled
  • oracle体验实验,Oracle实验三

    1 实验目的 1 掌握表的创建与管理 2 掌握索引的创建与管理 3 掌握视图的创建与管理 4 掌握序列的创建与应用 2 实验环境 Win10 以及Oracle 11g 3 实验要求 1 为图书销售系统创建表 2 在图书销售系统适当表的适当列