oracle 数据库 数据表的5个约束类型:
1.主键约束
2.外键约束
3.唯一约束
4.检查约束
5.非空约束

主键约束:用来唯一标示表中的一个列,一个表中的主键约束只能有一个,但是可以在一个主键约束中包含多个列,也称为联合约束。

外键约束:用来约束两个表中列之间的关系。

唯一约束:用来唯一标示表中的列。与主键约束不同的是,在一个数据表中可以有多个唯一约束。

检查约束:用来约束表中列的输入值得范围,比如在输入性别时,要求数据库中只能输入男或者女,就可以使用检查约束来约束该列。

非空约束:约束该列一定要输入值。

---------------------------------------------------------------------------------------
创建一个带检查约束的表:
使用PL/SQL语句创建检查约束的语法如下所示:
CONSTRAINT constraint_name CHECK(condition)

[语法说明:]
    CONSTRAINT:关键词
    constraint_name:约束名称
    condition:约束条件

列如:创建BOOKINFO表时,给图书价格加上一个检查约束,要求图书价格在10元到100元之间。
CREATE TABLE BOOKINFO
(
    BOOKID INT,
    BOOKNAME CAHR,
    PUBLISH VARCHAR2(20),
    PUBDATE VARCHAR2(20),
    PRICE    DECIMAL,
    AUTHOR    CHAR,
    STORE    VARCHAR2(1),
    READER INT,
    REMARKS VARCHAR2(50),
    CONSTRAINT    CK_PRICE    CHECK(PRICE>=10 AND PRICE <= 100)
);

---------------------------------------------------------------------------------------
创建一个带非空约束的表:

举例:在创建BOOKINFO表时,给图书名称加上一个非空约束。
CREATE TABLE BOOKINFO
(
BOOKID INT NOT NULL,
BOOKNAME CHAR NOT NULL,
PUBLISH VARCHAR2(20),
PUBDATE VARCHAR2(20),
PRICE DECIMAL,
AUTHOR CHAR,
STORE VARCHAR2(1),
READER INT,
REMAERKS VARCHAR2(50)
);

----------------------------------------------------------------------------------------
创建一个带唯一约束的表
语法格式:
    CONSTRAINT constraint_name UNIQUE(column_name)

【语法说明】
    UNIQUE:唯一约束的关键词
    column_name:唯一约束的名称。

举例:创建BOOKINFO表时,为图书名称(BOOKNAME)列添加唯一约束
create table bookinfo
(
    bookid int,
    bookname char,
    publish    varchar2(20),
    pubdate    varchar2(20),
    price decimal,
    author    char,
    store    varchar2(1),
    reader int,
    remarks varchar2(50),
    CONSTRAINT UN_BOOKNAME UNIQUE (bookname)
);
------------------------------------------------------------------------------------------
创建一个带外键约束的表
语法格式:
    CONSTRAINT constraint_name    FOREIGN KEY    (column_name)
    REFERENCE  table_name (column_name)
    ON   DELETE    CASCADE

[语法说明:]
CONSTRAINT:创建约束的关键字
FOREIGN KEY:外键约束的关键字
REFERENCE:引用外表的关键词
table_name:需要引用的外表,column_name表示该表的列。

举例:
create table publishinfo
(
    publishid varchar(20) primary key,
    publishname varchar(30)
);

create table bookinfo
(
    bookid int,
    bookname char,
    publish varchar2(20),
    pubdate    varchar2(20),
    price    decimal,
    author    char,
    store    int,
    reader     int,
    remarks    varchar2(50),
    constraint fk_publish foreign key(publish) references publishinfo(publishid) on delete cascade
);

创建BOOKINFO表,该表带有外键约束,约束名称为"FK_PUBLISH"。相关列为publish,该外键和PUBLISHINFO表中的publishid列相关联。

Oracle数据库五种约束的更多相关文章

  1. Oracle的五种约束

    1.非空(NOT NULL)约束:所定义的列不绝对不能为空: 例如:将已经创建好的表BOOK中的bookname字段修改为不为空: 利用 ALTER TABLE.......MODIFY ...... ...

  2. Oracle--数据库中的五种约束

    数据库中的五种约束 数据库中的五种约束及其添加方法 五大约束 1.--主键约束(Primay Key Coustraint) 唯一性,非空性  2.--唯一约束 (Unique Counstraint ...

  3. SQLServer 中有五种约束, Primary Key 约束、 Foreign Key 约束、 Unique 约束、 Default 约束和 Check 约束

    一直在关注软件设计方面,数据库方面就忽略了很多,最近在设计数据库时遇到了一些小麻烦,主要是数据库中约束和性能调优方面的应用,以前在学习 Sql Server 2000,还有后来的 Sql Server ...

  4. Oracle命令(二):Oracle数据库几种启动和关闭方式

    一.Oracle数据库几种启动方式 1.startup nomount 非安装启动,这种方式下启动可执行:重建控制文件.重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进 ...

  5. Oracle数据库四种数据完整性约束

     Oracle数据库四种数据完整性约束 1.实体完整性 同样的数据不能重复插入(1)采取什么措施保证实体完整性?我们可以给表创建主键约束吗,主键保证了数据的唯一性,主键可以保证同一条记录只能插入一次. ...

  6. DB2有五种约束

    DB2有五种约束: NOT NULL 约束是这样一种规则,它防止在表的一列或多列中输入空值. 唯一约束(也称为唯一键约束)是这样一种规则,它禁止表的一列或多列中出现重复值.唯一键和主键是受支持的唯一约 ...

  7. Oracle数据库几种启动方式及查询当前状态

    Oracle数据库几种启动方式 1.startup nomount: 非安装启动,这种方式下启动可执行:重建控制文件.重建数据库,读取init.ora文件,启动instance,即启动SGA和后台进程 ...

  8. 【SQL】数据库中的五种约束

    #五大约束 1.主键约束(Primay Key Coustraint) 唯一性,非空性 2.唯一约束 (Unique Counstraint)唯一性,可以空,但只能有一个 3.检查约束 (Check ...

  9. Oracle数据库三种备份方案

    Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份.导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用 ...

随机推荐

  1. 支持.NET和移动设备的XLS读写控件XLSReadWriteII下载地址及介绍

    原文来自龙博方案网http://www.fanganwang.com/product/3085转载请注明出处 读写任何单元值 数字型.字符型.布尔型以及错误型.但是你了解日期和时间型单元吗?在Exce ...

  2. Introduction to Machine Learning

    Chapter 1 Introduction 1.1 What Is Machine Learning? To solve a problem on a computer, we need an al ...

  3. IOS 设置透明度导致底层View始终可见

    正确效果如图:下面的toolBar应该看不见它下面的View, 避免方法:[self.view  addSubView:aSubView];这个aSubView一定不能设置不透明度,应将其设置为Cle ...

  4. Javascript 基础(一)

    一.Js命名规范(变量/函数) (1)使用大小写字母,数字,_ ,$ 可以命名 (2)不能以数字打头 (3)不能使用js的关键字/保留字 (4)区分大小写 (5)单行注释 //多行注释 二.js的数据 ...

  5. POJ 2185 - Milking Grid (二维KMP)

    题意:给出一个字符矩形,问找到一个最小的字符矩形,令它无限复制之后包含原来的矩形. 此题用KMP+枚举来做. 一维的字符串匹配问题可以用KMP来解决.但是二维的就很难下手.我们可以将二维问题转化为一维 ...

  6. BZOJ 3999 旅游

    .......好长啊. #include<iostream> #include<cstdio> #include<cstring> #include<algo ...

  7. Bad Hair Day_单调栈

    Description Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow ...

  8. HDU 4902 (线段树)

    Problem Nice boat(HDU 4902) 题目大意 维护一个序列,两种操作. 第一种操作,将一段区间[l,r]赋值为x. 第二种操作,将一段区间[l,r]中大于等于x的数与x求gcd. ...

  9. min-height最小高度的实现(兼容IE6、IE7、FF)(解决IE6不兼容min-height)

    <!doctype html><html> <head> <meta charset="UTF-8"> <meta name= ...

  10. Inno如何在安装完成时删除指定的文件夹(下的所有文件及子目录)??

    删除安装目录下的任意文件夹及下的所有文件及子目录,或者删除指定目录的文件夹,要如何做到呢?谢谢!! //删除文件    用 DeleteFile 只能删除一个文件,不能使用通配符来删除多个文件Dele ...