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. jquery.idTabs使用方法

    idTabs是基于Jquery编写封装的一个插件,主要用于实现选项卡功能,它操作简单,只需到官网:http://www.sunsean.com/idTabs/下载插件JS脚本文件,并引用到网站中即可 ...

  2. ref和out 传递参数(C#)

    1.参数传递默认都是传递栈空间里面存储的内容 2.如果添加了ref那么传递的都是栈空间地址,而不再是栈空间里面的内容 3.如果添加了out,那么传递的也是栈空间的地址 //写一个方法计算一个int类型 ...

  3. 克隆复制可使用原型( Prototype)设计模式

    今天有学习设计模式的原型(Prototype)<设计模式--原型(Prototype)模式>http://www.cnblogs.com/insus/p/4152773.html .为了加 ...

  4. [moka同学笔记]yii2.0表单的使用

    1.创建model   /biaodan.php <?php /** * Created by PhpStorm. * User: moka同学 * Date: 2016/08/05 * Tim ...

  5. git 给远程库 添加多个url地址

     目录[-] 前提 使用流程 原理解析 注意 Other 参考文章 作者:shede333主页:http://my.oschina.net/shede333 && http://blo ...

  6. 转载Quandl R Package

    Quandl R Package 通过Quandl API可以快速准确地获取宏观经济数据.(https://www.quandl.com/docs/api) 分享两个国外的优秀网站 R和Python在 ...

  7. T-SQL的回车和换行符(SQL)

    T-SQL的回车和换行符(SQL) sql server中的回车换行字符是  char(13)+char(10) 回车:char(13) 换行:char(10) 实例1: DECLARE @c NVA ...

  8. js文件被浏览器缓存的思考

        我们的用户量大,修改js文件后,用户反馈登录出现问题.实际上刷新一下就没事了.就是因为用户的浏览器使用的还是本地缓存的js代码.   强制刷新一般就会重新去服务器获取新的js代码.但不能让用户 ...

  9. 批处理清除VisualStudio解决方案文件夹

         有很多次我们需要手工来删除bin, obj这样的文件夹.这些文件夹是由Visual Studio编译项目时生成的,其中包括了当前项目的程序集.一个解决方案会包含好多个项目了,那么就有很多这样 ...

  10. 奇怪的float

    我在项目的实践中遇到了这样的一个问题 <div class="main"> <p>aaaa</p> <p>bbbb</p> ...