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. 看看如何面试前端工程师:Github很重要

    从程序员的角度提出要去学习哪些知识,下面这篇文章从面试官的角度介绍到面试时可能会问到的一些问题.不过我想先给你们一个忠告,招聘是一件非常艰巨的任务,在45分钟内指出一名侯选人是否合适是你需要完成的任务 ...

  2. [新手学Java]反射学习笔记

    示例类 @SuppressWarnings("unused") public class Person { public String Name; private int Age; ...

  3. 与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复

    [源码下载] 与众不同 windows phone (47) - 8.0 其它: 锁屏信息和锁屏背景, 电池状态, 多分辨率, 商店, 内置协议, 快速恢复 作者:webabcd 介绍与众不同 win ...

  4. MyEclipse+Mysql (一)

     MyEclipse连接Mysql数据库   准备工作:MyEclipse使用的是2013版,mysql  Ver 14.14 Distrib 5.6.28   1.jar包的下载(jdbc驱动) 我 ...

  5. linux系统如何将系统中的文件名改为英文?

    由于我们经常在命令行模式下进入文件,那么中英文的切换常常会影响我们输入的效率. 那么如何将原来的中文修改成英文的字幕呢? 如下图所示: -------------------------------- ...

  6. [翻译]:SQL死锁-阻塞探测

    到了这篇,才是真正动手解决问题的时候,有了死锁之后就要分析死锁的原因,具体就是需要定位到具体的SQL语句上.那么如何发现产生死锁的问题本质呢?下面这篇讲的非常细了,还提到了不少实用的SQL,但对我个人 ...

  7. 将HTML5封装成android应用APK文件的几种方法(转)

    作为下一代的网页语言,HTML5拥有很多让人期待已久的新特性.HTML5的优势之一在于能够实现跨平台游戏编码移植,现在已经有很多公司在移动 设备上使用HTML5技术.随着HTML5跨平台支持的不断增强 ...

  8. android开发布局文件imageview 图片等比例缩放:

    ImageView的属性scaleType,如果等比缩放的话,就使用CenterInside,如果想固定大小的话,就CenterCrop <?xml version="1.0" ...

  9. IOS6学习笔记(一)

    一.ARC 1.ARC环境下可以使用-(void)dealloc{};处理一些事情(比如移除KVO观察),但不要调用[super dealloc]; 2.ARC与非ARC混编要注意符合Cocoa命名约 ...

  10. Snort - manual 笔记(二)

    1.5 Packet Acquisition Snort 2.9 引入 DAQ 代替直接调用 libpcap . 有两种网卡特性会影响 Snort : "Large Receive Offl ...