数据库中的重要对象:表、视图、序列、函数、存储过程、索引、同义词
1、表:
用PL/SQL Developer 软件打开 Scott的DEPT表
查看SQL,可以看见DEPT表创建的脚本
-- Create table
create table DEPT
(
deptno NUMBER(2) not null,
dname VARCHAR2(14),
loc VARCHAR2(13)
)
tablespace USERS
pctfree 10
initrans 1
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Create/Recreate primary, unique and foreign key constraints
--主键约束
alter table DEPT
add constraint PK_DEPT primary key (DEPTNO)
using index
tablespace USERS
pctfree 10
initrans 2
maxtrans 255
storage
(
initial 64K
next 1M
minextents 1
maxextents unlimited
);
-- Grant/Revoke object privileges
grant select on DEPT to HR;

2、视图
用PL/SQL Developer 软件打开 Scott的Views对象
选中要查看的视图,右键查看
就可以看到相应的视图语句
create or replace view avg_sal as
select b.dname as 部门,count(*) as 人数,round(avg(a.sal),2) as 平均工资 from emp a
join dept b on a.deptno =b.deptno
group by b.dname;

3、序列
用PL/SQL Developer 软件打开 Scott的SEQUENCE对象
选中要查看的视图,右键查看
create sequence computers_cmpno_seq
start with 1001
increment by 1
nomaxvalue
nocycle
nocache;
查看当前序列的值:
select computers_cmpno_seq.currval from dual;
下一个值:
select computers_cmpno_seq.nextval from dual;
调用序列的时候一般用.nextval;
insert into computers (COMPNO,COMPMODEL,buytime,price) values(computers_cmpno_seq.nextval,'Apple',sysdate,8888);

查看所拥有的序列
select * from USER_SEQUENCES;

4、函数
创建函数:(根据输入的员工号取得其对应的工资)
create or replace function get_empsal (emp_no number)
return number
is emp_sal number(7,2);
begin
select sal into emp_sal from emp
where empno=emp_no;
return (emp_sal);
end;
创建以后,可以用PL/SQL Developer 软件打开 Scott的Function对象
选中要查看的视图,右键查看以及测试
测试的时候:
begin
-- Call the function
:result := get_empsal(emp_no => :emp_no);
end;

输入值即可得到结果
也可以直接在数据库用语句测试:
select get_empsal(7566) from dual;

5、存储过程
create table COMPUTERS
(
compno NUMBER(4) not null,
compmodel VARCHAR2(64),
buytime DATE,
price NUMBER(7,2)
)
insert into Computers (COMPNO,compmodel,buytime,price) values (compNo_seq.nextval,'Think T60',sysdate,6666);
insert into Computers (COMPNO,compmodel,buytime,price) values (compNo_seq.nextval,'Accer 4750',sysdate,6666);
insert into Computers (COMPNO,compmodel,buytime,price) values (compNo_seq.nextval,'Think T80',sysdate,8888);
insert into Computers (COMPNO,compmodel,buytime,price) values (compNo_seq.nextval,'Accer 4750',sysdate,6666);
创建存储过程:
create or replace procedure DelComputer(cmp_no in number)
is
begin
delete from computers where computers.cmpno=cmp_no;
commit;
end;

创建以后,可以用PL/SQL Developer 软件打开 Scott的Procedure对象
选中要查看的视图,右键查看以及测试
测试的时候:
begin
-- Call the procedure
delcomputers(cmp_no => :cmp_no);
end;

也可以直接在数据库用语句测试:

execute DELCOMPUTERS(1002);

6、索引
对数据库表中的一列或多列的值进行排序的一种结构
创建一个测试的表:
create table TEST_INDEX
(
id NUMBER,
name VARCHAR2(200)
)
创建一个存储过程插入1千万条数据
create or replace procedure insert_data
is
temp varchar2(20) :='Test data';
begin
for i in 1..10000000 loop
insert into test_index(id,name) values (i,temp);
end loop;
commit;
end;
查询数据条数
select count(*) from test_index;
随机查询一条数据
select * from test_index where id='9943432';
在没有建索引的时候,查询一条数据耗时很久。

创建索引:
create index id_text_index on test_index(id);
再查询
select * from test_index where id='9943432';
查出结果时间大幅减少

删除索引、清空表数据、删除表
drop index id_text_index;
truncate table test_index;
drop table test_index;

7、同义词
现有对象的一个别名,分为:私有同义词和公有同义词
查看同义词的权限:
select * from session_privs where privilege like '%SYNONYM%';
没有该权限 则通过sys账号授权
grant create any synonym to scott;
创建同义词:
create synonym sg for salgrade;
sg即为salgrade的同义词
select * from sg;
创建公共同义词
首先需要用sys授权public synonym的权限
grant create public synonym to scott;
创建scott的emp表的公共同义词为emp
create public synonym emp for scott.emp;
其他能访问到scott的emp表的用户即可以直接访问emp
sys账号
select * from scott.emp;
select * from emp;查询结果一样。

删除同义词:
drop synonym sg;
drop public synonym emp;

Oracle数据库中的重要对象的更多相关文章

  1. Oracle数据库中的大对象(LOB)数据类型介绍

    一.LOB数据类型的介绍 大对象(LOB)数据类型允许我们保存和操作非结构化和半结构化数据,如文档.图形图像.视频片段.声音文件和XML文件等.DMBS_LOB 包被设计用于操作 LOB 数据类型.从 ...

  2. Oracle数据库中调用Java类开发存储过程、函数的方法

    Oracle数据库中调用Java类开发存储过程.函数的方法 时间:2014年12月24日  浏览:5538次 oracle数据库的开发非常灵活,不仅支持最基本的SQL,而且还提供了独有的PL/SQL, ...

  3. oracle 数据库中(创建、解锁、授权、删除)用户

    上文我们已经建立了名为orcl66的数据库. 想要在数据库中创建.修改用户需要我们以管理员权限登录到数据库中. 首先我们通过sqlplus命令登录连接数据库. 输入sqlplus命令--用户名: sy ...

  4. Oracle数据库中字段定义为Char类型,Hibernate用该字段进行动态绑定参数查询,获取不到结果的问题

    一.问题背景 产生环境:oracle数据库,hibernate操作 定义了一个表 create table STORE_INFORMATION ( id CHAR(32) not null, name ...

  5. ORACLE数据库中执行计划出现INTERNAL_FUNCTION一定是隐式转换吗?

    ORACLE数据库中,我们会使用一些SQL语句找出存在隐式转换的问题SQL,其中网上流传的一个SQL语句如下,查询V$SQL_PLAN的字段FILTER_PREDICATES中是否存在INTERNAL ...

  6. 将Oracle数据库中的数据写入Excel

    将Oracle数据库中的数据写入Excel 1.准备工作 Oracle数据库"TBYZB_FIELD_PRESSURE"表中数据如图: Excel模板(201512.xls): 2 ...

  7. --关于null在oracle数据库中是否参与计算,进行验证,

    --关于null在oracle数据库中是否参与计算,进行验证,with td as (select null id,1 name from dual ),td1 as ( select null id ...

  8. 批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor

    批量解密SQLSERVER数据库中的各种对象的工具dbForge SQL Decryptor2.1.11 之前写过一篇文章,使用redgate公司的SQL PROMPT工具,但是不太方便 SQLPRO ...

  9. Oracle数据库中SYS、SYSTEM、DBSNMP、SYSMAN四用户的区别

    [转]   SYS.SYSTEM.DBSNMP. Oracle 数据库中 SYS.SYSTEM.DBSNMP.SYSMAN 四用户的区别 用户: SYS 用户: SYS,默认密码为 CHANGE_ON ...

随机推荐

  1. js实用方法记录-简单cookie操作

    js实用方法记录-简单cookie操作 设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称 ...

  2. Hierarchy Viewer工具使用

    目前,在eclipse的ADT Android插件中,还不能启动Hierachy Viewer,但可以从Android SDK工具包中,通过命令行的方式可以启动,具体方法为,到Android SDK下 ...

  3. 在微信小程序中学习flex布局

    网页布局(layout)是CSS的一个重点应用. 布局的传统解决方案,基于盒状模型,依赖display属性 + position属性 + float属性.它对于那些特殊布局非常不方便,比如,垂直居中就 ...

  4. 如何通过 WebP 兼容减少图片资源大小

    作者:学军又拍云 CDN 服务公测 WebP 自适应功能,为客户减少图片资源大小.本文我们将一起来阐述WebP兼容的来龙去脉. 前言我们知道,理想的网页应该在 1 秒内打开,而在页面的整体大小中,图片 ...

  5. 利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置

    本文提要 本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动MySQL服务接受外部连接,主要是通过Docker ...

  6. hdu4081

    hdu4081 题意 给出n个点坐标,每个点有权值,要求得到一颗生成树,且其中有一条道路修建不需要花费,但是要求这条道路所连接的两点的权值之和除以剩下所有道路的距离花费最大. 分析 首先求最小生成树, ...

  7. Laravel项目修改时区

    Laravel项目修改时区 最近做了一个支付宝支付的应用,现在还在开发过程中,今天早上起床之后先调试了一下项目,模拟支付了一笔(¥9999.00) 2333支付宝的沙箱环境啦,屌丝程序猿哪来这么多钱- ...

  8. socket获取百度页面

    import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import jav ...

  9. 深度解析 H.265 视频解决方案

    又拍云上线了 H.265 从编码解码到 CDN 分发,完整的端到端的自适应解决方案:提供视频上传.视频存储.视频编码.视频分发适配.视频解码等功能.又拍云希望能以云服务的方式将大公司才能长期支付使用的 ...

  10. 数据库并行读取和写入(Python实现)

    这篇主要记录一下如何实现对数据库的并行运算来节省代码运行时间.语言是Python,其他语言思路一样. 前言 一共23w条数据,是之前通过自然语言分析处理过的数据,附一张截图: 要实现对news主体的读 ...