`

Oracle 常用plsql总结

 
阅读更多
删除表: 

drop table 表名; 

drop table 表名 cascade constraints; 级联删除 

trucate table 表名; 
(表结构还在,数据全部删除,释放表所占的空间,不支持回退,常用删除大表) 

更改表名 
rename 旧表名 to 新表名; 


索引(index) 

创建索引:Creating indexes(概念很重要对系统的性能影响非常大) 

建索引的目的就是为了加快查询速度。 

索引就相于一本的书的目录。索引点系统空间,属于表的附属物。删除一个表时,相对应的索引也会删除。索引是会进行排序。 

truncate 表时索引结构在,但是数据不存在。 

FTS  --- full table scan 全表扫描 
用索引就是为了快速定位数据:(理解时就以字典的目录为例) 
创建索引就是创建key和记录的物理位置(rowid)组成的键值对。索引是有独立的存储空间,但是和表是逻辑关联的,索引和表的关系是依附关系,表被删除了,索引也没有存在的意义也就被删除了 

在建表时会根据表中的PK或UK自动的建立唯一性索引。 

查看表的rowid: 
select rowid,first_name from s_emp; 
rowid 定义的信息有:object block table 

每条记录都有自己的rowid 

索引由谁创建:用户,建索引后会使DML操作效率慢,但是对用户查询会提高效率,这就是我们建索引的最终目的。 

创建一个索引: 
create index 索引名 on 表名 (字段名); 
create index testindex on test(c1, c2); 

索引分为唯一性索引,联合索引。索引中是不会维护空值的。 

哪些字段应该建索引:创建索引就是为了减少物理读,索引会减少扫描的时间。 
经常要用where的子句的地方,所以要用索引.用不用索引,关键要看所查询的数据与所有数据的百分比,表越大,查询的记录越少,索引的效率就越高. 

替换变量:用&符号来定义替换变量支持交互性提示,对于字符性的数字,一定要写在单引号之间 
set    verify on 
set    verify off; 
相当于开关变量,用于控制是否显示新旧的sql语句 
select id,last_name,salary from s_emp where title='&job_title'; 
更改交互的提示信息: 
accept  p_dname prompt ' 提示信息'; 
定义变量: 
define p_dname='abc'; 


关于oralce中产生序列(sequence) 可以自动产生唯一值 
create sequence  序列名; 

(不带参数时默认为从1 开始每次递增 1,oracle中为了提高产生序列的效率一般一次性产生20个序列放入当前会话的序列池中备用以加快效率,序列会出现不连续的动作回退操作不会影响序列取值) 

sequence 的参数: 

increment by n   递增量 
start with n     起始值 
maxvalue n       最大值  nomaxvalue  定义的最大值 
minvalue n       最小值 
cycle|no cycle   轮回  
cache n          缓存(第一次取时会一次取多少个id存起来) 

查看sequence 示图: 
desc    user_sequences ; 
select   sequence_name , cache_size , last_number  from  user_sequences   where   sequence_name  like 's_'; 
select  序列名.currval  from   dual    查看当前的序列数 
select  序列名.nextval  from   dual    查看下一个序列数,它会自动给当前的序列加1 
为列:nextval          currval 
(开另一个session时取当前值不成功时,应该先取下一个值,再取当前值) 

清空当前会话的内存: 
alter system  flush   shared_pool;(执行此命令要有DBA权限,一般用户执行出错) 

修改序列:(此命令不常用,只需了解就行不必深究) 
alter  sequence  序列名  修改项; 
删除序列sequence 
drop sequence 序列名; 


视图 

创建视图: 
creating  views 视图名; 

视图就相当于一条select 语句,定义了一个视图就是定义了一个sql语句,视图不占空间,使用view 不会提高性能,但是能简单化sql语句 
(扩展知识: oracle  8i 以后的新示图) 
MV  物化视图(占存储空间,把select 结果存在一个空间,会提高查询视图,增强实时性,但是存在刷新问题,物化示图中的数据存在延迟问题,主要应用在数据仓库中用要用于聚合表) 

使用视图的好处:控制数据访问权限。 

如何创建一个视图的例子: 
create or replace view test_vi as select * from test1 where c1=1; 

or replace的意义,如果view存在就覆盖,不存在才创建。 
force|no force ,基表存在是使用,不存在是则创建该表。 

此时往表test1(base table 基表)中插入数据时:表中没能变化,视图中的数据发生改变 
从示图中插数据时相对应的表会发生改变: 
往示图中插数据时,会直接插进基表中,查看视图中的数据时,相当于就是执行创建时的select语句。 

限制对数据库的访问,简化查询。 
简单视图:来自于单表,且select语句中不能包括函数,能进行DML操作。 
复杂视图:来源于多张表,不能执行DML操作。 

视图的约束 
with read only 视图只读约束(O) 
with check option 不允许插入与where条件不符的记录,类似于check约束的功能(V) 

在select from 后也可以使用子查寻,这个写法也叫做内嵌视图 
例: 
select first_name,salary,avgsal from s_emp e,(select dept_id,avg(salary) avgsal from s_emp group by dept_id) s where e.dept_id=s.dept_id and e.salary>s.avgsal; 

删除视图 drop views 示图名; 

行号(rownum) 
关于rownum: 
rownum  有个特点要么等于1 要么小于某个值, 不能直接等于某个值, 不能大于某个值。 
rownum常用于分页显示。 
rownum只用于读入内存的数据。 


找出工资前三名的员工 
select first_name,salary 
from (select first_name,salary from s_emp order by salary desc) 
where rownum<=3; 

列出每一个表的外键的定义,主表表名,主表字段名,子表表名,子表字段名 (画出E-R图) 
   
select c.table_name,cc.column_name, 
       p.table_name,pc.column_name, 
       p.constraint_type 
from user_constraints c,user_cons_columns cc,user_constraints p,user_cons_columns pc 
where c.constraint_name=cc.constraint_name 
and p.constraint_name=pc.constraint_name 
and c.r_constraint_name=p.constraint_name 
and c.table_name='S_EMP' 
and c.constraint_type='R'; 

动态生成脚本 

set head off 
set feed off 
set echo off 
spool seletab.sql 
select 'select * from '||table_name||';' 
from user_tables; 
spool off 
分享到:
评论

相关推荐

    Oracle数据库plsql客户端

    Oracle数据库PL/SQL Developer客户端是数据库管理员和开发人员常用的工具,它专为Oracle数据库系统设计,提供了便捷的界面来编写、测试和调试PL/SQL代码。这个工具的强大之处在于其全面的功能集,允许用户进行数据库...

    ORACLE常用SQL语句大全.pdf

    本文档总结了 Oracle 中常用的 SQL 语句,包括数据库的创建、删除、备份、表的创建、删除、修改、索引的创建、视图的创建等基本操作,以及一些高级查询运算符的使用。 一、数据库操作 * 创建数据库:CREATE ...

    ORACLE PLSQL实例精解(第4版) 中文版

    - **调试工具**:介绍常用的PL/SQL调试工具。 - **调试技巧**:提供一些实用的调试技巧。 - **案例分享**:通过具体案例讲解调试流程。 **5.2 性能瓶颈分析与优化** - **诊断工具**:介绍可用于性能分析的工具。 - ...

    oracle10g客户端以及plsql客户端

    总结来说,Oracle 10g客户端和PL/SQL Developer是数据库管理员和开发人员的得力助手,它们提供了全面的工具集来管理和开发Oracle数据库。通过安装和配置Oracle 10g客户端,用户可以利用其丰富的组件进行高效的数据...

    Oracle常用命令总结

    根据提供的文档内容,我们可以归纳出一系列关于Oracle数据库中PL/SQL编程的重要知识点,这些知识点主要集中在以下几个方面: ### 一、基本语法 #### 1. `%type` 用法 `%type` 是一个PL/SQL特性,它允许变量继承...

    oracle plsql课堂笔记

    ### Oracle PL/SQL知识点解析 #### 一、PL/SQL简介 PL/SQL(Procedural Language for ...以上内容总结了Oracle PL/SQL的一些基础知识和常用操作,通过这些示例可以帮助读者更好地理解和掌握PL/SQL的核心概念和用法。

    实用Oracle SQL&PLSQL PPT

    Oracle SQL和PL/SQL是数据库管理员、开发人员和数据分析师在处理Oracle数据库时最常用的工具。Oracle SQL是一种结构化查询语言,用于检索、更新、插入和删除Oracle数据库中的数据,而PL/SQL(Procedural Language/...

    ORACLE 常用分析函数

    分析函数总结;26个分析函数;PLSQL开发笔记和小结;分析函数简述  ROW_NUMBER () OVER([partition_clause] order_by_clause) dense_rank在做排序时如果遇到列有重复值,则重复值所在行的序列值相同,而其后的序列值...

    PLSQL常用方法汇总

    ### PLSQL常用方法汇总 #### 一、ORACLE的启动和关闭 在ORACLE数据库管理中,正确地启动和关闭数据库是非常重要的操作之一。这部分主要介绍了如何在单机和双机环境中启动或关闭ORACLE系统。 ##### 1. 在单机环境...

    oracle图形化视图的PLSQLDeveloper7的注册码

    - **宏库**:预设的代码片段,用于快速插入常用代码段。 2. **调试器** - 支持单步执行、断点设置等功能,便于调试复杂问题。 - 提供变量监视面板,实时查看变量值的变化情况。 3. **SQL/PLSQL格式化器** - ...

    plsql不安装oracle客户端 进行远程连接

    PL/SQL 开发工具是 Oracle 数据库开发者常用的工具之一,它提供了丰富的功能来提升开发效率。但在某些情况下,为了简化部署过程或减少资源占用,可能需要在不安装完整 Oracle 客户端的情况下实现 PL/SQL 与远程 ...

    Oracle 常用命令大全

    根据提供的文件信息,这里将对Oracle常用命令进行详细的解析与说明。从标题“Oracle 常用命令大全”以及描述“Oracle 常用命令大全”来看,文章旨在全面介绍Oracle数据库中的各种实用命令。接下来,我们将逐一分析并...

    PLSQL常用设置及快捷键.txt

    ### PLSQL常用设置及快捷键知识点详解 ...以上就是关于PL/SQL Developer的一些常用设置和快捷键的知识点总结。这些设置不仅可以帮助提高开发效率,还能增强代码的质量和可维护性。希望对您有所帮助!

    PLSQL常用查询语句

    #### 四、总结 本文介绍了PL/SQL中常用的查询语句,包括基础查询、聚合函数与分组、高级查询技巧等内容。通过学习这些内容,初学者可以更好地理解如何有效地从数据库中提取所需信息。此外,还讨论了SQL1999标准下的...

    ORACLE 常用函数总结(80个)第1/2页

    这里我们将深入探讨标题和描述中提到的一些常用的Oracle函数。 1. **ASCII()** 函数:这个函数返回一个字符对应的ASCII码(十进制数值)。例如,ASCII('A')返回65,ASCII('a')返回97,ASCII('0')返回48,ASCII(' ')...

    pl/sql developer oracle 工具

    总结,PL/SQL Developer作为Oracle数据库开发的重要工具,提供了全面的PL/SQL编程支持和数据库管理功能。熟练掌握该工具的使用,将极大地提升开发效率和代码质量。通过不断学习和实践,你可以利用这个强大的IDE更好...

    plsql oracle

    #### 十一、Oracle提供的常用包 Oracle数据库提供了一系列内置的包,这些包包含了许多实用的功能,例如: - **DBMS_SQL**:用于执行动态SQL语句。 - **DBMS_DDL**:用于执行数据定义语言(DDL)操作。 - **DBMS_JOB...

    ORACLE_SQLDeveloper使用教程

    - 可以将常用的 SQL 语句保存为脚本文件,便于重复使用。 - SQL Developer 支持脚本文件的管理,包括创建、编辑和执行。 #### 五、总结 本文详细介绍了如何使用 Oracle SQL Developer 和其他开发工具,包括 ...

Global site tag (gtag.js) - Google Analytics