首页学院源码字体下载软件电脑书| 素材图片模版壁纸酷站图标笔刷纹理|小游戏博客QQ表情投票计数器短网址
动态网站制作指南
首页|网络编程|站长之家|网页制作|图形图象|操作系统|冲浪宝典|软件教学|网络办公|手机学院|邮件系统|网络安全|认证考试
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
迅雷 | 电驴 | Win7 | QQ空间 | 输入法 | Ghost | Word | Excel | asp | php | Sql | Dreamweaver | Javascript | css | photoshop | fireworks | Flash



当前位置 > 网站建设学院 > 网络编程 > 数据库 > Oracle教程
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; 创建同义词要有权限,访问的时候也需要权限。  
 
关注此文的读者还看过:
·2010-3-21 14:32:20 Oracle PL/SQL语言入门
·2010-3-21 14:32:07 Oracle 数据库向 MS SQL Server 7.0 的迁移(4)
·2010-3-21 14:31:38 Oracle中返回结果集的存储过程
·2010-3-21 14:31:37 实例讲解Oracle数据库设置默认表空间问题
·2010-3-21 14:31:36 如何消除Oracle数据库的安全隐患(2)
浏览全部Oracle教程的内容 PS笔刷下载 39种不同语言在线翻译
  发表评论
姓 名: 验证码: [ 查看评论 ]
内 容:
教程搜索服务
项目外包信息
·电子课本系统 8000元
·世界穆斯林城网站设计
·1000元求购一首页设计
·欧美风格FLASH品牌网站 3500元
·急需一个纯动画网站 2000元
·B2B网站页面
·全flash网站外包 3000元
·找Flash美工 兼职也可
·门户网站建设
·VI设计
·dede项目外包
·网站设计 整体要求简洁大气
·logo设计 500元
·全部触摸屏控制链接省地税系统软
·某爱好者俱乐部网站 10000元
·合肥工作室急寻兼职美工及程序员
·帝国网站程序修改,模板已经做好
·电子交易海报设计 2000元
·艺术教育类网站 2000元
发布信息 浏览信息
邮件订阅服务
输入你的邮件地址,你将不会错过任何关于<Oracle教程>的内容


Delivered by FeedBurner

数据教程文章分类
SQL教程
SQL技巧
SQL安全
SQL文摘
Oracle教程
MySQL教程
Access教程
DB2教程
Sybase教程
站长工具:Google PR查询|网站速度测试|CSS在线编辑器|OPEN参数生成器|弹出式窗口代码产生器|密码登录生成器|在线按钮生成器|Meta标签生成器|邮箱图标在线生成|多色彩特效字代码生成器|网页代码调试器|在线FTP登陆|Flash取色器|配色代码对照表|配色辞典|CSS生成器|CSS在线压缩|广告代码|框架网页代码生成器|js/vbs加密|md5加密|进制转换|UTF-8 转换工具|在线调色板|Html转换js|Html转换asp|Html转换php|Html转换perl
实用工具:汉字翻译拼音|拼音字典|在线翻译|天气预报|火星文|在线网速测试|符号对照表|个税计算|公积金贷款计算|购房银行按揭利率计算|实时汇率查询换算|经典小工具|汉字简繁转换|普通单位换算|公制单位换算|生辰老黄历|国内电话区号|国家代码与域名缩写|文字加密解密|元素周期表|健康查询|世界时间|全国各地车牌查询|全国车辆交通违章查询|万年历|二十四节气|汉字横竖排版|手机号码查询|计算器|ip搜索
广告刊登 | 版权声明 | 联系我们 | 加入收藏 | RSS订阅
Copyright © 2000-2010 www.knowsky.com All rights reserved | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報 マッサージ 求人
フットサル大会 探偵 プリザーブドフラワー 中国語
SEO対策 コーチ ホームページ作成 アクセサリー 通販
過払い請求 現金化 債務整理 過払い金返還請求