PHP数据库Oracle数据完整性
来源:才华咖 本文已影响8.17K人
来源:才华咖 本文已影响8.17K人
学习是艰苦的,只要熬过学习期就会有大大的收获。以下是本站小编精心为大家整理的PHP的相关学习内容Oracle数据完整性,希望对大家学习有所帮助!更多内容请关注应届毕业生网!
一、数据完整性
数据完整性要求数据库中的数据具有准确性。准确性是通过数据库表的设计和约束来实现的。为了实现数据完整性,数据库需要做两方面的工作:
确保每行的数据符合要求。
去报没咧的数据符合要求。
为了实现以上要求,Oracle提供了一下4种类型的约束(Constraint)。
1、实体完整性约束
实体完整性要求表中的每一行数据都反映不同的实体,不能存在相同的数据行。通过主键约束,唯一约束来实现实体完整性。
(1)主键约束:
表中的一列或者纪略组合的值能用来唯一的.表示表中的每一行,这样的一列或者多列的组合叫做表的主键。
主键自带唯一性,并且不能为空,一个表只能有一个主键,主键确保了表中数据行的唯一,同一张表中,可以使用多个列共同作为主键。在选择主键时,应遵循两个原则,最少性和稳定性。
(2)唯一约束:
保证数据行中的某一列的数据是唯一的,不重复的。这样可以添加唯一约束。
唯一约束和主键的区别:
主键不能为空,唯一可以为空,但只允许有一个空值。
主键一张表中只有一个,而唯一可以有多个。
主键可以由多个表来组成,唯一只能是单列。
主键可以作为其他表的外键,唯一不可以。
2、域完整性:
与完整性是指给定咧的输入的有效性。通过数据类型、检查约束、输入格式、外键约束、默认值、非空约束等方法来实现。
3、引用完整性:
引用完整性是指为两个表中存在一定的联系,从而保证数据的完整性。例如:班级和学生,学生所在班级一定是在班级表中所存在的,不然就会出现不准确。引用完整性我们可以通过外键约束来实现。
4、自定义完整性:
用户自己定义约束规则。主要通过存储过程和触发器对象来实现。
二、添加约束
在创建表时,我们可以再字段后添加各种约束。这里分为列级定义和表级定义:
1、列级定义
列级定义是指在定义列的同时定义定义约束。
如在t_class表定义主键和唯一约束
123 | --创建班级表CREATETABLEt_class (
cidNUMBERCONSTRAINTpk_cidPRIMARYKEY,--为cid添加主键约束cnameVARCHAR2(20)constraintuq_sortnameUNIQUE--为cname添加唯一约束) |
说明:在列级定义时,加不加constraint pk_department都是可以的,区别是不加的话,系统会自动分配一个主键约束名称,可读性差。
2、表级定义
表级定义是指在定义了所有列后,再定义约束。需要注意:not null只能在列级上定义。
以在建立学生和班级表时定义主键约束和外键约束为例:
12345678 | --创建学生表createtablet_student( stuIDnumber(4), stunamevarchar2(20)NOTNULL, stupassvarchar2(20)NOTNULL, cidNUMBERNOTNULL,constraintuq_usernameUNIQUE(stuname),--创建唯一约束 constraintck_userpassCheck(LENGTH(stupass)>3),--创建检查约束(密码长度大于3位) constraintpk_uidprimarykey(stuID),--主键约束 constraintfk_cidforeignkey(cid)referencest_class(cid)--外键约束 ); |
3、创建表后,我们也可以在已经建好的表上添加约束,需要使用ALTER TABLE语句。
语法:ALTER TABLE ADD CONSTRAINT 约束名 约束类型 具体的约束说明。
1234 | ALTERTABLEt_studentADDCONSTRAINTuq_usernameUNIQUE(stuname)--创建唯一约束 ADDCONSTRAINTck_userpassCheck(LENGTH(stupass)>3)--创建检查约束(密码长度大于3位) ADDCONSTRAINTpk_uidprimarykey(stuID)--主键约束 ADDCONSTRAINTfk_cidforeignkey(cid)referencest_class(cid)--外键约束 |
三、删除约束
语法:ALTER TABLE DROPCONSTRAINT 约束名
1 | ALTERTABLEt_studentDROPCONSTRAINTPK_UID |
四、查看约束
查看T_STUDENT表中所有的约束。注意:这里的表明必须全大写否则查不到结果。
1 | SELECT*FROMUSER_CONSTRAINTSWHEREtable_name= 'T_STUDENT' |
PHP向MySQL数据库保存数据代码
Oracle数据库插入日期型数据的方法
PHP基于CURL进行POST数据上传实例
ORACLE数据库碎片的整理
php向Mysql数据库保存数据的代码
如何在PHP中处理Protocol Buffers数据大纲
PHP基于CURL进行POST数据上传的方法
php基础之连接mysql数据库和查询数据
sqlplus如何访问远程oracle数据库
Oracle数据库知识点:SQLPLUS介绍
php字符串替换函数str-replace速度比preg-replace快
PHP基于CURL进行POST数据上传实例方法
OracleDBA数据库性能进行优化
ACCP7.0优化myschool数据库设计
Oracle数据库SQLPLUS介绍
Oracle 数据库查询小技巧
数据库工程师
Oracle数据库的聚簇技术
Oracle数据库开发技巧
Oracle数据库语句大全
oracle数据库培训课程大纲
数据库实验心得(精选多篇)
怎样在PHP导出excel格式数据
ORACLE数据库操作基本语句
学习Oracle数据库技巧攻略
Oracle数据库视图管理技巧
oracle数据库面试问题
Oracle数据库概述及特点
oracle数据库基础知识
Oracle数据库DBA基础试题
PHP数据库操作类-ezSQL
ORACLE数据库基本命令
Java将excel数据导入数据库的方法
Oracle数据库认证层次
PHP 字符串正则替换函数preg-replace使用说明介绍
Oracle数据库RMAN的自动备份脚本简介
Oracle数据库的基本介绍
Scott Mitchell 的ASP.NET 2.0数据教程
高职院校Oracle数据库的教学探讨论文
ORACLE数据库碎片的整理