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. Main.storyboard中使用navigationController

    传统使用navigationController的创建是在appdelegate中,使用storyboard的话必须在Main.storyboard文件中创建. 1.选中创建的navigationCo ...

  2. ListBox实现拖拽排序功能

    1.拖拽需要实现的事件包括: PreviewMouseLeftButtonDown LBoxSort_OnDrop 具体实现如下: private void LBoxSort_OnPreviewMou ...

  3. 移动端前端常见的触摸相关事件touch、tap、swipe等整理

    前端的很多事件在PC端和浏览器端可公用,但有些事件却只在移动端产生,如触摸相关的事件 本文整理了移动端常见的一些事件,包括原生支持的click.touch.tap.swipe事件,也有定义型的gest ...

  4. 双系统Ubuntu无法访问windows磁盘分区解决方法

    为了更好的体验各种操作系统,在电脑中安装双系统是很好的选择,但在使用中难免会遇到这样或那样的问题. 最近总是遇到Ubuntu系统下无法访问windows磁盘分区问题,看了系统日志发现是挂载磁盘出问题了 ...

  5. 三分 --- ZOJ 3203 Light Bulb

    Light Bulb Problem's Link:   http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3203 Mean: ...

  6. 一个端口操作类PortHelper

    此操作类主要使用了系统命令行来实现的,详细的命令可参照微软文档<如何使用"netsh advfirewall firewall"上下文而非“netsh firewall”上下 ...

  7. .net接口学习笔记

    1.接口的声明 接口的声明不能包含:数据成员,静态变量:只能包含如下类型的静态成员函数的声明:方法,属性,事件,索引器.声明中不能包含任何实现的代码,而在每个成员成名的主体后,必须使用分号. 接口声明 ...

  8. 安卓使ScrollView滚动到底部代码

    在开发中,我们经常需要更新列表,并将列表拉倒最底部,比如发表微博,聊天界面等等, 这里有两种办法,第一种,使用scrollTo(): public static void scrollToBottom ...

  9. WebApi传参总动员(五)

    上回说到涉及多个实体的传参,用常规的方法已经不能解决了.这回我们用终极大招搞定她. WebApi:注意要引用JSON.Net [HttpPost] public string GetData(stri ...

  10. [moka同学笔记]yii2 activeForm 表单样式的修改(二)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABAEAAANXCAIAAADLkdErAAAgAElEQVR4nOzdfWwc953nef6zwO5Zg8