动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
数据库:数据库教程,数据库技巧,Oracle教程,MySQL教程,Sybase教程,Access教程,DB2教程,数据库安全,数据库文摘
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ Oracle教程 ]的信息

本月文章推荐
.如何找出按某字段大小排列的5条记.
.Oracle在DOS下的启动.
.Oracle 10G 新特性简介.
..net+oracle+crystalReports开发.
.Oracle动态并行处理框架及其优越.
.详解 Oracle 10g 中 MERGE 功能的.
.Oracle数据库返回cursor问题的解.
.OracleDBA讲座笔记2--- oracl.
.如何获取或记录Oracle语句执行时.
.10G如何更改归档模式.
.关于oracle的备份策略.
.ORACLE常用傻瓜问题1000问全集(.
.Oracle 临时表空间使用注意.
.Oracle SQL的优化(3).
.Oracle数据库10g产品特性简介.
.postfix 的 sasl 支持.
.Oracle中向视图中插入数据.
.用一个实例讲解如何正确使用数据.
.删除数据表中的重复记录.
.Oracle 10g 新特性之虚拟专用数据.

PL/SQL学习笔记(六)

发表日期:2008-2-9 |


序列: 自动产生的唯一值;
一个共享的对象;
典型的用法是作为主键的值;
insert into 给主键提供值。
替代了应用的代码;
通过将序列CACHE(预先生成一部分序列号,放入到内存中)到内存中,可以加速对序列的访问。 CREATE SEQUENCE sequence_name
  [increment by n]//步长
  [start with n]//起始点
  [maxvalue n/nomaxvalue]//递增
  [minvalue n/nominvalue]//递减
  [cycle/nocycle]//循环
  [cache n/nocache];//n为预先生成序列号的个数,默认为20。 查询序列:
user_sequences
last_number 序列将要产生的下一个号是多少; select sequence_name,min_value,max_value,increment_by last_number from user_sequences; 伪列:NEXTVAL 引用下一个可用的序列值,不同的用户每次引用都会获得一个唯一的值。
      CURRVAL 得到当前的值(刚被领走的号)。
在CURRVAL执行前必须先通过NEXTVAL得到一个初始的值。 序列名.NEXTVAL/CURRVAL
  
序列发生间隙是正常的,保证唯一即可。
序列的修改:
   ALTER SEQUENCE sequence_name 
   increment by
  maxvalue
  cycle    
  cache; start with 不能修改。 删除序列: drop  SEQUENCE sequence_name;  
索引: 一个方案中的对象;
被Oracle服务器用来加速对表的查询;
通过使用快速路径访问方法快速定位数据;
与表独立存放;
被ORACLE服务器使用和维护。 一定是 WHERE 条件的才有可能使用索引。
手动创建索引:
CREATE INDEX index_name on table_name (col_name); 考虑创建索引的情况:
*、包含了大量不同值的列;
*、包含了大量空值的列;
*、一个或者多个列经常被一起出现在 WHERE 条件中或者作为连接的条件出现;
*、表的数据量很大,而且对表的查询经常是得到表中数据的2%到4%(少量数据).
不应该创建索引的情况:
*、一个很小的表;
*、列很少被用于查询的条件;
*、表上的大多数查询是得到大量数据的;
*、表中的数据经常发生变动;
*、要被索引的列被作为条件表达式的一部分。
查看:
user_indexes得到索引的定义和唯一性。 user_ind_columns 得到索引的名称,表名和列名。
select ic.index_name,ic.column_name,ic.column_position,
 ic.uniquenes
from user_indexes ix,user_ind_columns ic
where ic.index_name=ix.index_name and ic.table_name='table_name'; 删除索引:
DROP INDEX index_name;
为了删除索引,必须拥有索引或者拥有DROP ANY INDEX 权限。    控制用户的访问 数据库的安全性 系统安全性:
 系统权限(system privilege),获得访问数据库的能力。
  超过一百个
  创建新用户:
   CREATE USER user_name IDENTIFIED BY passWord;
  删除用户
  删除表
 授予权限:
  GRANT priv_list TO user/public/role(角色);
  grant create session ,create table,create sequence to user_name;   
  在授予建表权限的同时也应该赋予存储空间。
 分配配额:ALTER  USER user_name QUOTA nM ON space_name;
数据安全性:
 对象权限(object privilege),获得维护数据库的能力。
 
 每种对象的权限都不相同。
 对象的所有者拥有对象的所有权限。
 对象的所有者可以将自己的对象权限赋予其他人。     GRANT object_priv_list [(col_list)]
 ON owner.object TO user/role/public
 [WITH GRANT OPTION];--将权限授予用户的同时,该用户也拥有了授予其他用户对象权限的功能。
 (及联授予)会导致及联移除。  移除权限:
 REVOKE priv_list/all  ON object FROM user;
 
方案:数据库对象的集合,包括表、视图、序列.....。
角色:
 CREATE ROLE role_name;
 GRANT priv_list TO role_name;
 GRANT role_name TO user_list/role_list; 修改口令:
方法 (1)ALTER USER user_name IDENTIFIED BY password;
 (2)password + 回车
 
USER_SYS_PRIVS 当前用户的系统权限。
USER_ROLE_PRIVS 当前用户的角色权限。
USER_tab_privs_made 用户对象被授予的他人的信息。  
使用集合操作 UNION select employee_id,job_id from employees
union
select employee_id,job_id from job_history; 两个表的并集,但不显示重复行。
执行的时候要先排序再剔重,所以结果集是有序的。 union all 也是两个表的并集,而且显示重复行。
语法同上。 intersect select employee_id,job_id from employees
intersect
select employee_id,job_id from job_history;
minus select employee_id,job_id from employees
minus
select employee_id,job_id from job_history; e-j=e-e与j的交集;
j-e=j-j与e的交集; 注:
在select 列表中的表达式必须有同样的数目和类型。  匹配 SELECT 语句
 select employee_id,job_id,salary from employees
 union
 select employee_id,job_id,0      from job_history;  括号可以用拉修改序列的执行顺序。 ORDER BY 子句:
 只能在整个集合的最后出现;
 可以按照第一个 SELECT 语句中的列名,别名或者位置号排序。      
GROUP BY 子句的增强 CUBE 操作符的 GROUP BY 在 GROUP BY 子句中使用 ROLLUP 或者 CUBE 来产生分组小计;
ROLLUP 分组产生包括规则的分组结果和小计的结果的组合;
GROUP BY [ROLLUP](col_name_list)
ROLLUP:
a       ab abc   abc
 ab ab
a a a
all all all CUBE 分组产生包括 ROLLUP 产生的结果和交叉分组小计。
cube: a ab abc a ab abc
all a ab
 b ac
 all bc
  a
  b
  c
  all GROUPING 函数
参数一定是在CUBE或ROLLUP里进行分组排序的字段或表达式之一。 通过1或0来判定结果集中的空值是由于本身列的值是空的,还是由于使用CUBE或ROLLUP产生的空值。
1 代表是由于分组产生的空值,没有参与分组。
0 代表是由于列本身产生的空值,参与了分组,但分组中没有包含它。 GROUPING SETS 可以使用 GROUPING SETS 在同一个语句中定义多个组集。 只需要访问一次基表。
不需要写很复杂的UNION语句。
GROUPING SETS 子句中组合的元素越多,语句的执行性能就越好。 group by GROUPING SETS((abc),(ab),(bc),(a),(b))
组合列: 是一个列的组合,在分组计算时被作为一个单元处理。  
高级子查询 成对子查询:
行内视图的性能比成对子查询的性能高。 相关子查询:
主查询的字段在子查询里做条件(特征)。
主查询先执行,取出第一条数据,把该数据传入子查询做比较,返回查询结果给主查询,主查询根据这个结果再做查询
依次类推
直到主查询中没有可查询列为止。
  EXISTS操作符 EXISTS 操作符测试子查询的结果是否存在;
返回 TRUE 或 FALSE
查询机制:
假如一个子查询找到了结果: 在内部子查询中不在继续执行
条件被设为TRUE 假如一个子查询没有找到结果:
条件被设为FALSE select col_list from table_name tab_alias where exists (select 'x' from table_name where col=tab_alias.col);
用的是相关子查询 NO EXISTS操作符 和NOT IN 相对应,速度要快,性能好。 UPDATE 中的相关子查询 update emp e
set department_name in(select d.department_name from departments d where e.department_id=d.department_id); delete 中的相关子查询
上一篇:Oracle:创建隐藏IP地址的最后一项的函数 人气:666
下一篇:PL/SQL学习笔记(四) 人气:589
浏览全部Oracle教程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-10-12 team论坛 v2.0.4 bulid 080916 A
2008-10-12 Roclog v3.1.6
2008-10-12 SupeV v1.0.1 简体中文 GBK
2008-10-12 NetCMS v1.6.0.1010 正式版
2008-10-12 PHP考试系统PPFrame v1.2.7
2008-10-12 LPAS个人相册 v1.6.3
2008-10-12 快问仿百度知道系统 动态-静态-互
2008-10-12 方卡广告防点击系统 V1.0 GB2312
2008-10-12 泡菜内容管理系统[PCMS] v1.0 Bu
2008-10-11 联系人分组工具 v1.1 中文破解版
2008-10-11 FaceMelter变脸 v2.0 汉化破解版
2008-10-11 PathTracker道路跟踪仪 v1.2 破解
2008-10-11 Rooms手机聊天室 v0.6.7 破解版
2008-10-11 RemoteDesktop远程桌面 v1.0 破解
2008-10-11 ProRemote远程调音台 v1.0.1 破解
2008-10-11 PicShare照片共享 v1.0.0 破解版
2008-10-11 Photogene照片编辑器 v1.5 汉化破
2008-10-11 WriteRoom共享文档 v1.0 破解版
  发表评论
姓 名: 验证码:
内 容:
站长工具:网站收录查询 | Google PR查询 | ALEXA排名查询 | CSS在线编辑器 | 广告代码 | js/vbs加密 | md5加密 | 进制转换 | UTF-8 转换工具 | Html转换js | Html转换asp | Html转换php | Html转换perl
实用工具:汉字翻译拼音 | 拼音字典 | 符号对照表 | 个税计算 | 实时汇率查询换算 | 经典小工具 | 汉字简繁转换 | 普通单位换算 | 公制单位换算 | 生辰老黄历 | 国内电话区号 | 国家代码与域名缩写 | 文字加密解密 | 健康查询 | 万年历 | 汉字横竖排版 | 手机号码查询 | 计算器 | ip搜索
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号