1. 添加主键约束

 a.创建表时添加主键(默认系统命名主键)

  create table pt_ticket_info(

    id varchar2(50) primary key not null,  --此处的not null可以省略

    ticket_no varchar2(50)

  );

 b.创建表时添加主键(指定主键命名)

  create table pt_ticket_info2(

    id varchar2(50),

    ticket_no varchar2(50),

    constraint pk_ticket primary key(id)

  );

 c.创建表后添加主键

  create table pk_ticket_info3(

    id varchar2(50),

    ticket_no varchar2(50)  

  );

  alter table pk_ticket_info3 add constraint pk_ticket3 primary key(id);

2.添加外键

a.创建表时添加

  create table smi_client_info(

    id varchar2(30) primary key,

    client_no varchar2(50),

    client_name varchar2(100),

    age varchar(1)

  );

  create table smi_ticket_info(

    id varchar2(30) primary key,

    ticket_no varchar2(50),

    client_no varchar2(50),

    constraint fk_client_no foreign key(client_no) references smi_client_info(client_no)

  )

b.创建表后添加

  alter table smi_ticket_info add constraint fk_client_no froeign key(client_no) references smi_client_info(client_no);

3.非空约束(只可以在创建表或修改列时在列上直接添加)

  --a.创建表时

  create table pnn_test(

    id varchar2(30) primary key,

    name varchar2(50) not null,

    sex varchar(1)

  );

  --b.添加或修改列时

  alter table pnn_test add (age height(3,2) not null);

  alter table pnn_test modify(sex varchar2(1) not null);

4.唯一约束

  1)有唯一性约束的列上允许空值;

  2)唯一约束可以建立在一列上,也可以建立多个(最多32个)字段上;

  3)若唯一约束由多列组成,则其中的部分列可以包含空值;

  4)Oracle不允许在相同的列上既创建主键又创建唯一性约束;

  5)Oracle自动为建立唯一性约束的字段创建索引。

  --a.创建表时

  create table unk_test(

    id varchar2(30) primary key,

    name varchar2(50) unique,

    alias_name varchar2(50),

    idno varchar2(20),

    sex varchar(1)

  );

  --b.添加或修改列时

  alter table unk_test add (stu_no varchar2(20) unique);

    --已下语句无法删除stu_no列上的唯一性约束

    --alter table unk_test modify (stu_no varchar2(20));

  -- 为已有列添加唯一性约束

  alter table unk_test add (account varchar2(50) );

  alter table unk_test modify (account varchar2(50)  unique);

  --c.修改表

  alter table unk_test add constraint uk_idno unique(idno);

  --d.联合字段的唯一性约束

  create table unk_union_test(

    id varchar2(50) primary key,

    name varchar2(50),

    age number(3,2),

    idno varchar2(30),

    stu_no varchar2(30),

    account varchar2(30),

    constraint unuq_name_idno unique(name, idno)

  );

  alter table unk_union_test add constraint unuq_stuno_account unique(stu_no, account);

  注:同一个列上可以同时创建单一字段的唯一性约束和联合字段的唯一性约束。

5.查询约束

  select uc.constraint_name from user_constraint uc where uc.table_name ='unk_test';

6.禁用启用约束

   alter table unk_test disable constraint sys_c0011232;

    alter table unk_test enable constraint sys_c0011232;

7.删除约束

  alter table unk_test drop constraint sys_c0011232;

SQL基础(2)-约束的更多相关文章

  1. SQL基础--> 约束(CONSTRAINT)

    --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完 ...

  2. (大数据工程师学习路径)第四步 SQL基础课程----约束

    一.简介 约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性.唯一性.本节实验就在操作中熟悉MySQL中的几种约束. 二.内容 1.约束分类 听名字就知道,约束是一种限制,它通过 ...

  3. 四、SQL基础知识--约束和视图

    --创建约束的方式 --一.在字段创建时将约束添加到字段之后 CREATE TABLE ZYJ_YUESHU( ZYJ_ID VARCHAR(20) NOT NULL PRIMARY KEY, --创 ...

  4. (2.10)Mysql之SQL基础——约束及主键重复处理

    (2.10)Mysql之SQL基础——约束及主键重复处理 关键词:mysql约束,批量插入数据主键冲突 [1]查看索引: show index from table_name; [2]查看有约束的列: ...

  5. SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束

    SQL基础随记1 SQL分类 常用函数 ALL ANY EXISTS IN 约束   其实这里知识不难,只是好久不接触突然被问的话有时还真的一时答不上,自己写一遍胜过盲扫.当然,也有些常读常新的地方会 ...

  6. [SQL] SQL 基础知识梳理(一)- 数据库与 SQL

    SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...

  7. [SQL] SQL 基础知识梳理(四) - 数据更新

    SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...

  8. Oracle SQL 基础学习

    oracel sql 基础学习 CREATE TABLE USERINFO ( ID ,) PRIMARY KEY, USERNAME ), USERPWD ), EMAIL ), REDATE DA ...

  9. [SQL基础教程] 4-3 数据的更新(UPDATE)

    [SQL基础教程] C4 数据更新 4-3 数据的更新(UPDATE) UPDATE UPDATE <表名> SET <列名> = <表达式>; UPDATE &l ...

随机推荐

  1. Redis设计与实现-内部数据结构篇

    题记:这本书是2015年11月份开始读的,大约花了一个多月的时间通读了一遍,最近由于需要对redis做一些深入的了解,因此又花了两个多月仔细精读了一遍,由于本书设计的内容较多,且每部分的内容都比较细致 ...

  2. Gradle学习系列之二——创建Task的多种方法

    在本系列的上篇文章中,我们讲到了Gradle入门,在本篇文章中我们将讲到创建Task的多种方法. 请通过以下方式下载本系列文章的Github示例代码: git clone https://github ...

  3. Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)

    Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)  1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...

  4. github生成燃尽图

    一.     前期准备工作. 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8添加标签 二.     修改进度 2.1进入milestone,编辑 可以看到上面有bug标签,进入并解决 ...

  5. Installation and Upgrading

    Cumulative Feature Overview Identifies product features available to you when upgrading. This tool r ...

  6. MVC 5 + EF6 入门完整教程14 -- 动态生成面包屑导航

    上篇文章我们完成了 动态生成多级菜单 这个实用组件. 本篇文章我们要开发另一个实用组件:面包屑导航. 面包屑导航(BreadcrumbNavigation)这个概念来自童话故事"汉赛尔和格莱 ...

  7. Unity中启动VS时出现"Visual Studio 2010 Shell 无效的许可证数据"的解决办法

    (感觉还是cnblog好一点,刚注册成功赶紧把baidu hi的一篇文章搬过来试试) 一直用着Visual Studio 2013给Unity写代码,安装了SQL Server 2014后,在Unit ...

  8. hibernate3 Duplicate class/entity mapping(异常)

    hibernate3 Duplicate class/entity mapping(异常) 代码:      Configuration config = new Configuration().ad ...

  9. jsp中自定义Taglib案例

    一.使用TagSupport类案例解析 1.自定义Tag使用jdbc连接mysql数据库 1.1定义标签处理器类 package com.able.tag; import java.sql.Conne ...

  10. [moka同学摘录]Yii2.0开发初学者必看

    想要了解更多YII,PHP方面内容,请关注本博客. 基础总结 1.修改默认控制器/方法 yii默认是site控制器,可以在web.php中设置$config中的'defaultRoute'='xxxx ...