Oracle添加表约束的2种方法

方法一、在列的级别上定义约束

create table product (

Pname varchar2(20) unique,

Pdate date not null,

PID number(5) primary key,check(PID>10000 AND PID<=99999),

Ploc char(30) default '北京')

要点就是在列的结尾直接添加,如果同一列有多个约束,通过逗号来分隔

有个问题,通过数字字典来查询约束,我们得到的是系统提供的名字并且约束的类型不好区分。

SQL> select constraint_name,constraint_type from user_constraints where table_name = 'PRODUCT';

CONSTRAINT_NAME                                        CONSTRAINT_TYPE

------------------------------------------------------------ --

SYS_C009539                                                  C

SYS_C009540                                                  C

SYS_C009541                                                  P

SYS_C009542                                                  U

U:表示unique

P:primary key

C:check或者default

查看列的默认值:

SQL> select column_name,datA_dEfault from useR_tab_columns where table_name = 'PRODUCT';

COLUMN_NAME                                                  DATA_DEFAULT

------------------------------------------------------------ --------------------------------------------------------------------------------

PNAME

PDATE

PID

PLOC                                                        '北京'

方法二、在表级别上定义约束:

Create table product(

PID number(5),

PNAME varchar2(20),

PDATE date constraint NN_PDATE_PRODUCT not null,

PLOC char(30) default ‘北京’,

FKDEPTNO number(5),

Constraint UK_PNAME_PRODUCT unique(PNAME),

Constraint PK_PID_PRODUCT primary key(PID),

Constraint CK_PID_PRODUCT check(PID>10000 AND PID<9999),

Constraint FK_DEPTNO foreign key (FKDEPTNO) references dept(DEPTNO)

);

SQL> select constraint_name,constraint_type from user_constraints where table_name = 'PRODUCT';

CONSTRAINT_NAME                                              CO

------------------------------------------------------------ --

NN_PDATE_PRODUCT                                            C

CK_PID_PRODUCT                                              C

PK_PID_PRODUCT                                              P

UK_PNAME_PRODUCT                                            U

FK_DEPTNO_PRODUCT                                            R

删除约束

Alter table product drop primary key;

Alter table product drop constraint PK_PID_PRODUCT;

Alter table product drop unique (PNAME);

Alter table product modify(PDATE,null);

Alter table product modify(PLOC,default null)/modify(PLOC ,default ‘威海’);--更改默认值

Alter table product drop constraint FK_DEPTNO;

外键、check约束只能使用约束名来删除,其他约束如果有约束名也可以使用约束名来删除

增加约束

Alter table product add primary key (PID);

Alter table product add constraint PK_PID primary key(PID);

Alter table product add unique(PNAME);

Alter table product modify(PDATE, not null);

Alter table product modify(PLOC ,default ‘威海’);

oracle添加两个约束,Oracle添加表约束的2种方法相关推荐

  1. Oracle多行记录合并/连接/聚合字符串的几种方法

    Oracle多行记录合并/连接/聚合字符串的几种方法 怎么合并多行记录的字符串,一直是oracle新手喜欢问的SQL问题之一,关于这个问题的帖子我看过不下30个了,现在就对这个问题,进行一个总结.   ...

  2. 在java中的交换方法有哪些_java中交换两个变量的值有哪几种方法,交换两个变量a和b的值...

    java中交换两个变量的值有哪几种方法在Java中,有哪些方法可以交换两个变量的值, 方法: 1.定义临时变量 2.没有必要定义临时变量 3.使用位运算符 (学习视频分享:java课程) 代码示例: ...

  3. oracle列添加主键约束,Oracle如何添加主键约束

    工具/材料 SQL Developer 操作方法 01 首先打开SQL Developer软件,找一个没有主键约束的表,如下图所示 02 然后我们新建一个查询,在界面中输入如下的约束修改语句,如下图所 ...

  4. 谷歌Analytics添加到您的SharePoint 2010网站的2种方法

    第1种方法 毫无疑问,建立在SharePoint分析是确定的任务,但如果你有一个没有获得中央管理和托管的SharePoint,你需要更丰富的数据提供比内置的工具,会发生什么?那么你可以使用谷歌分析,这 ...

  5. php生成指定范围随机数两位小数_PHP生成随机数的几种方法

    第一种方法用mt_rand() function GetRandStr($length){ $str='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUV ...

  6. oracle如何添加非空约束,oracle 怎么用sql删除非空约束?

    最近在学习oracle的闪回知识(oracle11g),也注意到了这个问题,经初步测试是结果是这样的: 首先确认一下,数据库是否打开了闪回特性: show parameter recyclebin; ...

  7. oracle两个约束,Oracle中的约束介绍(2)

    CREATE OR REPLACE FUNCTION GETREFERENCESCOLUMN ( i_table_name varchar2 , --表名 i_constraint_name varc ...

  8. oracle 查看表结构约束,oracle 约束

    约束是表中列的属性,用来维护数据结构完整性的一种手段 约束的种类: NOT NULL UNIQUE PARIAMRY KEY FOREIGN KEY CHECK enble validate 检查现有 ...

  9. ORACLE语句两表相减,Oracle中两个date相减

    两个时间相减默认的是天数 oracle 两个时间相减默认的是天数*24 为相差的小时数 oracle 两个时间相减默认的是天数*24*60 为相差的分钟数 oracle 两个时间相减默认的是天数*24 ...

  10. mysql给一个表添加外键约束_Mysql添加外键约束

    简单说一下使用外键的好处 1.完整性约束 比如: 用户表中有字段 用户编号(id) , 名称(username) 设备表中有字段 设备编号(id) , 设备名称(devicename) 设备属于的用户 ...

最新文章

  1. 机器学习建模神器PyCaret已开源!提升效率,几行代码轻松搞定模型
  2. 枚举的定义枚举类型定义
  3. Linux下使用perf进行性能分析,并导出火焰图
  4. 二、JavaWeb总结:Tomcat服务器的学习和使用
  5. 平台战初现 产品从单个智能走向互联
  6. boost::mp11::mp_map_replace相关用法的测试程序
  7. 带Lambda表达式的Apache Wicket
  8. 逆元java_逆元 - 阿聊 - 博客园
  9. python counter用法_10个易被忽视但应掌握的Python基本用法
  10. 每日优鲜上市首日股价报收于9.66美元 目前总市值约22.74亿美元
  11. Resharper进阶一:简要介绍
  12. 体验:Office SharePoint foundation 2010 Beta版安装使用
  13. java并发线程池---了解ThreadPoolExecutor就够了
  14. 物联网之NB-IoT技术实践开发二
  15. wma转mp3怎么弄_wma格式怎么转换mp3
  16. 亮相SIGGRAPH 太极拳三维教学App制作揭秘
  17. 『杭电1726』God’s cutter
  18. 2019利兹大学计算机排名,2019软科世界大学学术排名利兹大学排名第101-150
  19. 庄子·内篇·逍遥游第一(郭象注)
  20. 微信公众号开发工具汇总

热门文章

  1. 老罗将死,或者Android也将就换代,但是互联网的,共享,互助精神将永存
  2. sqlite3 判断数据库和表的状态
  3. mybatis-plus 自定义UpdateWrapper(二)实现列的case set
  4. java成员方法tostring_Java 工具类-toString
  5. 打包 pyqt5_基于Pyqt5的简单电影搜索工具,Python让你3秒搜电影
  6. spring源码-第四个后置处理器
  7. CentOs下编译安装nginx
  8. js双等号探索(三): [] == false为True,而!![] == false为False ?
  9. 交互软件Axure—高保真原型
  10. Java Design Demo -简单的队列-异步多任务队列(java android)