动态网站制作指南



当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程 Rss
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket

PL/SQL学习笔记(五)


发表日期:2008-2-9


     创建和治理表 对象: 表(TABLE)基本的存储单位,由行和列组成。 表名和列名(使用规则):
必须是字母开头;
必须是1-30的字符长度;
只能包括A-Z,a-z,0-9,_,$,#;
在同一个用户下不能头重名的对象;
不能是Oracle的保留字; 创建需求
必须有:
 CREATE TABLE 权限;
 足够的存储空间;
语法:
CREATE TABLE [SCHEMA(方案).]TABLE
(COL DATATYPE [DEFAULT默认值][]); 当前用户所有的表
select table_name from user_tables; 当前用户所有的对象:
desc user_objects 当前用户对象的别名:
select * from cat; 字段类型:
 VARCHAR(size)   变长字符串类型
 CHAR(size) 定长字符串类型
 NUMBER(p,s)p位整数,s位小数  
 DATE 
 DATETIME 秒级最多可以到小数点后的9位
 TIMESTAMP 带有小数秒的日期
  TIMESTAMP WITH TIME ZONE 带时区的类型
  TIMESTAMP WITH LOCAL TIME ZONE 带时区的并会进行时区转换的类型(同一时间在不        同地区看到的时间)  INTERVAL YEAR TO MONTH 按年和月的间隔存储的类型
  INTERVAL ‘123-2’ TEAR(3) TO MONTH
    
 INTERVAL DAY TO SECOND 按天、小时、分和秒的间隔存储的类型
  INTERVAL 
 LONG 变长的长字符串类型
 CLOB 字符类型 4GIGABYTES 
 RAW  二进制类型与CHAR对应
 LONG RAW 二进制类型与LONG对应
 BLOB
 BFILE 以文件的形式存储在操作系统
 ROWID 表中行的唯一地址(行地址) 方案:一个用户所有对象的命名集合。 假如想访问其他用户或方案的表要加上用户或方案作为前缀。 必须指明:
 表名称;
 列名,列类型和长度;
用户表:
 被用户创建和维护的一些表;
 包括了用户自己的信息;
数据字典表:
 被ORACLE数据库创建和维护的一些表;
 包括了数据库的信息; CTAS(子查询建表): CREATE TABLE table_name
[(col,coltype,..)]
as subquery(子查询); 创建的表的列的数目匹配子查询的列的数目。
使用子查询的列的名字和默认值定义表。
注:
*、被创建表的字段名要遵循假如没有字段别名和子查询中没设置别名的话,使用子查询中的列名;
   假如有别名,使用别名;假如有字段列表([(col,coltype,..)]),在被创建的表中使用字段列表;
*、有字段列表与子查询的列要匹配。
*、当没有字段列表的时候,而在子查询中有表达式的时候一定要在表达式后要加上别名。 
*、只会把属性当中的非空属性复制过来,其他的比如约束条件、关联...都不会复制过来。 使用ALTER TABLE 语句可以: *、在表中增加一个新列 语法:ALTER TABLE table add (col datatype [default],...,....);
新增加的字段一定是放在表的最后。 *、修改表字段的类型和长度 ALTER TABLE table modify (col datatype [default],...,....);
对默认值的修改只会影响到新插入的行。
假如字段下有值的话,类型的修改成功率很小(要修改数据类型,要修改的列必须为空,即没有数据项)。
CHAR类型不能修改长度。 *、删除表字段 ALTER TABLE table DROP COLUMN (COLUMN_NAME_LIST); 9I2版可以修改列名  *、SET UNUSED 设置字段为不可用。 原理:清楚掉字典信息(撤消存储空间),不可恢复。
可以使用 SET UNUSED 选项标记一列或者多列不可用。
使用DROP SET UNUSED 选项删除被被标记为不可用的列。
语法:
ALTER TABLE table SET UNUSED (COLlist多个) 或者  ALTER TABLE table SET UNUSED COLUMN col单个;
 
ALTER TABLE table DROP UNUSED COLUMNS; 删除表: 删除关联:drop table table_name cascade; 改对象名:
 RENAME 对象原名 TO 要改的对象名;
注:
    必须是对象的所有者才能进行改名的操作。   截取:
不能回滚;
删除表中所有数据;
释放存储空间;
语法: 
TRUNCATE TABLE 表名称; DELETE 也可以删除所有行,但:
可以回滚。
不释放存储空间。  
给表加注释:COMMENT
comment on table table_name is '注释内容';    
约束条件:
假如经常用到约束条件的话,最好自己命名。
当定义约束的时候可以将定义的语句作为CREATE TABLE 中的参数的一部分来完成。 表级别约束定义:
CONSTRAINT 约束名 约束条件(字段名) 约束在表上强制了规则。
假如有参照的花,约束防止表的删除。
ORACLE支持的约束条件:
NOT NULL 非空
         特点:唯一一个只能在列级定义的约束条件。                                                                           
UNIQUE 唯一
  答应有空值(空值不做比较);
 特点:当创建约束的时候,系统会自动创建对应其的索引。
PRIMARY KEY 主键
   特点:当创建约束的时候,系统会自动创建对应其的索引。
  在一个表中只答应一个主键。  
FOREIGN KEY 外键 
 外键参照的一定是主表的主键或唯一键;
 保证子表外键字段的值一定是主表中的被参照字段值的真子集;
 当主表字段被参照的时候,其值不答应被直接删除。
CONSTRAINT 约束名 FOREIGN KEY (外键字段名) REFERENCES 主表名(主表字段名);  假如在字段列表中定义外键就可以不写 FOREIGN KEY 要害字。
 如下格式:CONSTRAINT 约束名 REFERENCES 主表名(主表字段名);
ON DELETE CASCADE  当主表的行被删除的时候,要删除子表中参照主表的行。
ALTER TABLE TABLE_NAME DROP (PK) CASCADE CONSTRAINTS;把作为主键的字段也同时删除了。 ON DELETE SET NULL 当主表的行被删除的时候,转换子表中的参照值为空。 CHECK 定义一个每行都必须满足的条件。
CREATE TABLE table_name
(
  ....
salary number(10,2),
CONSTRAINT 约束名 CHECK(SALARY>0),
  .... 
); 约束的使用: 约束的命名:给约束命名或者ORACLE服务器将使用SYS_Cn的格式为约束命名。 创建时期: 在创建表的同时或者在建表之后。 定义级别: 可以在表级定义或列级定义。 在数据字典中可以查看约束。
使用ALTER TABLE 语句: *、添加或者删除约束条件,但是不能修改约束条件。
 就算列名上已经有约束条件,还可以继续添加约束条件的。
添加: ALTER TABLE table_name ADD [CONSTRAINT ] 约束名 约束条件(column);
删除: ALTER TABLE table_name drop constraint 约束名; 
 ALTER TABLE table_name PRIMARY KEY CASCADE;删除主键的时候,不用约束名。
*、启动或禁用约束条件
 ALTER TABLE table_name Disable constraint 约束名; 禁用
 ALTER TABLE table_name ENABLE constraint 约束名; 启用
            
*、通过MODIFY添加 NOT NULL 约束条件(因为NOT NULL为列级约束,只能用MODIFY添加)。
ALTER TABLE table_name MODIFY(col type NOT NULL);
查看约束条件:
//desc user_constraints
OWNER 拥有者;
CONSTRAINT_NAME 约束名称
CONSTRAINT_TYPE 约束类型
 
SEARCH_CONDITION  check的条件
  select constraint_name, constraint_type,search_condition,status
from user_constraint where table_name='b';                                               
视图 (VIEW) 一个或多个表的数据集的逻辑表示(虚表,不存储数据)。
视图不能提高查询的性能。
分类:
 简单
  数目:一个
  函数:不包含
  分组数据:不包含
  可以做DML操作
 复杂
  数目:一个或多个
  函数:包含
  分组数据:包含
  不一定能做DML操作 视图也可以用DESC描述。
 
创建视图: CREATE [or replace(修改视图)] [force/noforce] VIEW view_name(col coltype ,.......)
as
subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY[CONSTRAINT constraint]]; USER_VIEWS 关于视图的字典 修改视图: CREATE OR REPLACE 原视图名 (字段列表)
AS 子查询;
包含:
GROUP BY
DISTINCT
ROWNUM
不能对视图进行删除操作; 包含:
GROUP BY
DISTINCT
ROWNUM
通过表达式定义的列
不能对视图进行修改操作; 包含:
GROUP BY
DISTINCT
ROWNUM
通过表达式定义的列
在视图中没有包含基表中的 NOT NULL 列
不能对视图进行插入操作; 使用视图的原因; 为了限制对数据的访问;
为了使复杂的查询变得简单;
提供了数据的独立性;
提供了对相同数据的不同显示;   使用WITH CHECK OPTION 子句创建视图 创建视图时通过 WITH CHECK OPTION 子句确保执行的DML语句不会引起数据不出现在视图上。
在对视图做DML操作的时候,一定要符合WHERE子句中的条件。
CREATE OR REPLACE VIEW empvu20 as select * from employees
where check option constraint [empvu20_ck];   WITH READ ONLY
不可以进行DML操作; 删除视图: DROP VIEW view_name;
行内视图:
是一个在SQL语句中使用的带有别名的子查询,该子查询放在FROM之后;
   TOP-N:
select [col_list],rownum rank(排名)
from (select [col_list] from table_name order by top-n_col)
where rownum<=n; 序列(SEPUENCE)产生的顺序数字,单向递增或单向递减,且步长相同。 索引(INDEX)用于提高查询性能。 同义词(SYNONYM)对象的别名。
create public synonym e for hr.employees; user_synonyms; 创建同义词要有权限,访问的时候也需要权限。  
 
关注此文的读者还看过:
·2012-2-7 21:11:35 输出oracle 对象源码
·2012-2-7 21:11:33 在Solaris下安装Oracle9i
·2012-2-7 21:11:31 Oracle PL/SQL Profiler应用指南
·2012-2-7 21:11:28 ORACLE里取随机数的方法
·2012-2-7 21:11:28 递归程序的应用
·2012-2-7 21:11:28 一些基础的Oracle DBA笔试题和面试题目
·2012-2-7 21:11:26 Oracle数据库安全策略分析 (三)
·2012-2-7 21:11:24 LOG FILE 归档怎样做
·2012-2-7 21:11:22 oracle数据库备份与恢复 a piece of cake(4)
站长推荐 PS笔刷下载 在线翻译 系统进程 广告代码
  发表评论
姓 名: 验证码:
内 容:
教程搜索服务
项目外包信息
·找长期合作的网页设计师(切图+
·SNS 网站开发
·云南大蓄文化传播有限公司网站设
·药品代购网站
·FLASH网站汉化
·求高手帮我设计一个减肥产品网站
·flash首页制作(已有设计图)
·寻求长期外包人员
·网页页面修改
·北京地区 flash动画合作
·佛山网站建设+263企业邮箱找我。
·ecshop+Discuz! X2+ Home会员整
·寻找网站建设团队或者个人合伙
·LOGO设计外包
·企业网后台程序外包
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<Oracle教程>的内容


数据教程文章分类
SQL教程
SQL技巧
SQL安全
SQL文摘
Oracle教程
MySQL教程
Access教程
DB2教程
Sybase教程
站长工具:Google PR查询|Alexa排名查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|理财工具|黄金价格|购房银行按揭利率计算|汇率查询|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2012 www.knowsky.com All rights reserved | 沪ICP备05001343号