设为首页 收藏本站
查看: 732|回复: 0

[经验分享] Oracle数据类型与约束条件

[复制链接]

尚未签到

发表于 2016-7-24 09:42:37 | 显示全部楼层 |阅读模式
数据类型:
varchar2(100) 最长为一百的变长字符串, varchar为变长字符型类型
char 定长字符串类型.  效率高,拿空间换时间
num
date 年. 月 日.时.分秒.
long 存很长的字符.
以下数据来自网络:
VARCHAR2(size)   可变长度的字符串,其最大长度为size个字节;size的最大值是4000,而最小值是1;你必须指定一个VARCHAR2的size;     
NVARCHAR2(size)   可变长度的字符串,依据所选的国家字符集,其最大长度为size个字符或字节;size的最大值取决于储存每个字符所需的字节数,其上限为4000;你必须指定一个NVARCHAR2的 size;     
NUMBER(p,s)   精度为p并且数值范围为s的数值;精度p的范围从1到38;数值范围s的范围是从-84到127;   
例如:NUMBER(5,2)   表示整数部分最大3位,小数部分为2位;   
NUMBER(5,-2)   表示数的整数部分最大为7其中对整数的倒数2位为0,前面的取整。   
NUMBER   表示使用默认值,即等同于NUMBER(5);     
LONG   可变长度的字符数据,其长度可达2G个字节;     
DATE   有效日期范围从公元前4712年1月1日到公元后4712年12月31日     
RAW(size)   长度为size字节的原始二进制数据,size的最大值为2000字节;你必须为RAW指定一个size;     
LONG   RAW   可变长度的原始二进制数据,其最长可达2G字节;     
CHAR(size)   固定长度的字符数据,其长度为size个字节;size的最大值是2000字节,而最小值和默认值是1;     
NCHAR(size)   也是固定长度。根据Unicode标准定义     
CLOB   一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节     
NCLOB   一个字符大型对象,可容纳单字节的字符;不支持宽度不等的字符集;最大为4G字节;储存国家字符集     
BLOB   一个二进制大型对象;最大4G字节     
BFILE   包含一个大型二进制文件的定位器,其储存在数据库的外面;使得可以以字符流I/O访问存在数据库服务器上的外部LOB;最大大小为4G字节.   

Oracle利用完整性约束机制防止无效的数据进入数据库的基表,如果任何DML执行结果破坏完整性约束,该语句被回滚并返回一上个错误。Oracle实现的完整性约束完全遵守ANSI X3.135-1989和 ISO9075-1989标准。
  利用完整性约束实施数据完整性规则有下列优点:
  ◆定义或更改表时,不需要程序设计,便很容易地编写程序并可消除程序性错误,其功能是由Oracle控制。所以说明性完整性约束优于应用代码和数据库触发器。
  ◆对表所定义的完整性约束是存储在数据字典中,所以由任何应用进入的数据都必须遵守与表相关联的完整性约束。
  ◆具有最大的开发能力。当由完整性约束所实施的事务规则改变时,管理员只需改变完整性约束的定义,所有应用自动地遵守所修改的约束。
  ◆由于完整性约束存储在数据字典中,数据库应用可利用这些信息,在SQL语句执行之前或由Oracle检查之前,就可立即反馈信息。
  ◆由于完整性约束说明的语义是清楚地定义,对于每一指定说明规则可实现性能优化。
  ◆由于完整性约束可临时地使不能,以致在装入大量数据时可避免约束检索的开销。当数据库装入完成时,完整性约束可容易地使其能,任何破坏完整性约束的任何新行在例外表中列出。
  Oracle的DBA和应用开始者对列的值输入可使用的完整性约束有下列类型:
  ◆NOT NULL约束:如果在表的一列的值不允许为空,则需在该列指定NOT NULL约束。
  ◆UNIQUE码约束:在表指定的列或组列上不允许两行是具有重复值时,则需要该列或组列上指定UNIQUE码完整性约束。在UNIQUE码约束定义中的列或组列称为唯一码。所有唯一完整性约束是用索    引方法实施。两个Null值之间,Oracle不一定认为是重复的.
  ◆PRIMARY KEY约束:在数据库中每一个表可有一个PRIMARY KEY约束。包含在PRIMARY KEY完整性约束的列或组列称为主码,每个表可有一个主码。Oracle使用索引实施PRIMARY KEY约束。
  ◆FOREIGN KEY约束(可称引用约束):在关系数据库中表可通过公共列相关联,该 规则控制必须维护的列之间的关系。包含在引用完整性约束定义的列或组列称为外来码。由外来码所引用的表中    的唯一码或方码,称为引用码。包含有外来码的表称为子表或从属表。由子表的外来码所引用的表称为双亲表或引用表。如果对表的每一行,其外来码的值必须与主码中一值相匹配,则需指定引    用完整性约束。
  ◆CHECK约束:表的每行对一指定的条件必须是TRUE或未知,则需在一列或列组上指定CHECK完整性约束。如果在发出一个DML语句时,CHECK约束的条件计算得FALSE时,该语句被回滚。

约束:
字段级约束,表级约束
字段的唯一性约束:
email varchar2(20) unique,
name varchar2(20) not null
表示两个字段的组合不能重复的方法:
在创建表的后面加上:stu是表名.
constraint stu_name_email_uni unique(email,name)
例如:表的唯一性约束:
create table stu
(
id number(6),
name varchar2(20),
sex number(1),
age number(3),
sdate date,
grade number(2) default 1,
class number(4),
email varchar2(50),
constraint stu_name_email_uni unique(email,name)
)

文章引自出处:http://www.itshequ.net/zcsz/128916121581400648BD.html

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-248511-1-1.html 上篇帖子: Oracle存储过程总结(一、基本应用) 下篇帖子: Oracle DBA职责及日常工作分析
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表