Oracle primary,unique,foreign 区别 转:http://www.cnblogs.com/henw/archive/2012/08/15/2639510.html

NOT NULL : 用于控制字段的内容一定不能为空(NULL)。 

UNIQUE : 控件字段内容不能重复,一个表允许有多个 Unique 约束。

PRIMARY KEY: 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。

FOREIGN KEY: FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

CHECK: 用于控制字段的值范围。

DEFAULT: 用于设置新记录的默认值。

1、not null : 用于控制字段的内容一定不能为空(NULL)。

    用法 :Create table MyTable
(
id varchar(32) not null,
name varchar (32)
)
2、Unique :控件字段内容不能重复,一个表允许有多个 Unique 约束。 新建:
在Sql Server、Orcale、MS Access 支持的添加 Unique 语法:
Create table MyTable
(
id varchar(32) not null unique,
name varchar (32)
)
在Sql Server、 My Sql 支持的添加 Unique 语法:可同时添加几个字段为约束 如: unique (id,name)
Create table MyTable
(
id varchar(32) not null,
name varchar (32),
unique (id,.....)
)
在Sql Server、Orcale、MS Access、My Sql 都支持的添加 Unique 语法:
Create table MyTable
(
id varchar(32) not null,
name varchar (32),
Constraint uniqueName unique(UniqueColumn,.....)
) 删除:
在Sql Server、Oracle、MS Access 删除 Unique 约束语法:drop constraint UniqueName;
在My Sql 删除 Unique 约束语法:drop index UniqueName; 修改: ALTER TABLE EPlatform
ADD CONSTRAINT Unique_EPlatform
unique ([UserId],[Platform]); 3、Primary Key :也是用于控件字段内容不能重复,但它在一个表只允许出现一个。
在Sql Server、Orcale、MS Access 支持的添加Primary Key语法:
Create table myTB1
(
id nvarchar(32) not null primary key,
name nvarchar(32)
)
在Sql Server、My Sql 支持的添加Primary Key 语法:
Create table myTB1
(
id nvarchar(32) not null,
name nvarchar(32),
primary key (id)
)
在Sql Server、Orcale、MS Access、My Sql 支持的添加Primary Key 语法:
Create table myTB1
(
id nvarchar(32) not null,
name nvarchar(32),
constraint PrimaryName primary key (id)
)
在Sql Server、Orcale、MS Access、My Sql 表已存在的情况下,添加表的Primary Key约束语法:
Alter table myTB1
ADD Primary Key (id,......) --这样的写法,系统会自定义约束名称
Alter table myTB1
Add Constaint PrimaryName primary key (id) --这样的写法,自己可以自定义约束名称
在Sql Server、Orcale、MS Access 删除表已存在的 Primary Key 约束的语法:
Alter table myTB1
Drop Constraint PrimaryName
在My Sql 删除表已存在的 Primary Key 约束的语法:
Alter table myTB1
Drop Primary Key
Unique 与 Primary 的相同之处:UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
Unique 与 Primary 的不同之处:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束,Unique允许有NULL值,而 Primary key 不允许有NULL值。
注:在同一个数据库中,就算在不同的表中,约束名称是不允许相同的。
4、Foreign Key :FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。
在Sql Server、My Sql 支持的添加Foreign Key语法:
Create table myTB1
(
id nvarchar(32) not null primary key,
name nvarchar(32),
foreign key(id) references myTB(id)
)
在Sql Server、Orcale、MS Access 支持的添加Foreign Key语法:
Create table myTB1
(
id nvarchar(32) not null foreign key references myTB(id),
name nvarchar(32)
)
在Sql Server、Orcale、MS Access、My Sql 都支持的添加Foreign Key语法:
Create table myTB1
(
id nvarchar(32) not null primary key,
name nvarchar(32),
Constraint foreignName foreign key(id) references myTB(id)
)
在Sql Server、Orcale、MS Access、My Sql 的表已存在情况下,向表添加外键约束的语法:
Alter table myTB1
Add foreign key(id) references myTB(id) --这样写系统会自定义约束名称
Alter table myTB1
Add Constraint foreignName foreign key(id) references myTB(id) --这样写自己可以自定义约束名称
在Sql Server、Orcale、MS Access 中删除外键约束的语法:
Alter table myTB1
Drop Constraint foreignName;
在My Sql 中删除外键约束的语法:
Alter table myTB1
Drop foreign key foreignName;
5、Check :用于控制字段的值范围。
在Sql Server、My Sql 支持的添加check 语法:
Create table myCheck
(
id nvarchar(32) not null,
age int not null,
check (age>15 and age <30)
)
在Sql Server、Orcale、MS Access 支持的添加 check 语法:
Create table myCheck
(
id nvarchar(32) not null,
age int not null check (age>15 and age<30)
)
在Sql Server、Orcale、MS Access、My Sql 都支持的添加 check 语法:
Create table myCheck
(
id nvarchar(32) not null,
age int not null,
constraint checkName check (age<15 and age>30)
)
在Sql Server、Orcale、MS Access、My Sql 的表已存在情况下,向表添加check约束的语法:
Alter table myCheck
add check (id='celly'); --这样定义是系统自定义 check约束名称。
Alter table myCheck
add constraint checkName check(id='celly'); --这样定义是自己自定义 check约束名称。
在 Sql Server、Orcale、MS Access 删除表已存在的 check 约束的语法:
Alter table myCheck
drop constraint checkName
6、Default :用于设置新记录的默认值。
在Sql Server、Orcale、MS Access、My Sql 添加default约束的语法:
Create table myDefault
(
id int,
name nvarchar(32) default 'celly'
)
在My Sql 的已存在表中添加 字段默认值:
Alter table myDefault
Alter [id] set default 0
在 Sql Server、Orcale、MS Access 的已存在表中添加 字段默认值:
Alter table myDefault
Alter column [id] set default 0
在 My Sql 中删除字段默认值语法:
Alter table myDefault
Alter ColumnName drop default

2.hibernate关联映射

http://blog.csdn.net/hanhan313/article/details/8113191

Oracle primary,unique,foreign 区别,Hibernate 关联映射的更多相关文章

  1. Hibernate关联映射(一对多/多对多)

    版权声明:翀版 https://blog.csdn.net/biggerchong/article/details/843401053.  Hibernate关联映射上接Hibernate持久化类:h ...

  2. Hibernate关联映射关系

    Hibernate关联映射关系 一.双向一对多关联映射关系:当类与类之间建立了关联,就可以方便的从一个对象导航到另一个或另一组与它关联的对象(一对多双向关联和多对一双向关联是完全一样的) 1.1创建实 ...

  3. 第六章 Hibernate关联映射

    第六章 hibernate关联映射一.本章知识点分为2部分:1.关联关系:单向多对一关联关系,双向一对多关联关系(含一对多关联关系),多对多关联关系2.延迟加载:类级别加载策略,一对多加载策略,多对一 ...

  4. 【学习笔记】Hibernate关联映射(Y2-1-6)

    Hibernate关联映射 关联映射就是将关联关系映射到数据库里,在对象模型中就是一个或多个引用. 1.单向多对一关联 准备数据库 部门表和员工表 其中部门表有两列 部门编号和名称 员工表有三列 员工 ...

  5. 第三章Hibernate关联映射

    第三章Hibernate关联映射 一.关联关系 类与类之间最普通的关系就是关联关系,而且关联是有方向的. 以部门和员工为列,一个部门下有多个员工,而一个员工只能属于一个部门,从员工到部门就是多对一关联 ...

  6. (转)Hibernate关联映射——对象的三种关系

    http://blog.csdn.net/yerenyuan_pku/article/details/70148618 Hibernate关联映射——对象的三种关系 Hibernate框架基于ORM设 ...

  7. (转)Hibernate关联映射——一对多(多对一)

    http://blog.csdn.net/yerenyuan_pku/article/details/70152173 Hibernate关联映射——一对多(多对一) 我们以客户(Customer)与 ...

  8. Java三大框架之——Hibernate关联映射与级联操作

    什么是Hibernate中的关联映射? 简单来说Hibernate是ORM映射的持久层框架,全称是(Object Relational Mapping),即对象关系映射. 它将数据库中的表映射成对应的 ...

  9. Hibernate关联映射(转载)

    原文:http://www.cnblogs.com/huxi/archive/2009/12/15/1624988.html 以简单的两个类为例: User(int id, String name)  ...

随机推荐

  1. HTML 全局属性_02

    New : HTML5 新属性. 属性 描述 accesskey 设置访问元素的键盘快捷键. class 规定元素的类名(classname) contenteditableNew 规定是否可编辑元素 ...

  2. 有关项目上潜在需要的移动端GIS系统源码整理,待后续更新

    GPS Tools For Android 前言: GPS数据在做GIS开发时的一份宝贵的数据,在不侵犯他人隐私的情况下通过互联网的模式收集GPS是成本最为低廉的一种模式. 背景: 现在公司在做一个项 ...

  3. 【caffe-windows】 caffe-master 之 matlab接口配置

    平台环境: win10 64位 caffe-master  vs2013 Matlab2016a 第一步: 打开\caffe-master\windows下的CommonSettings.props文 ...

  4. sql 2008 R2添加对MySql的远程服务器链接

    (1).我的sql 2008 R2所在的系统为Windows server 2008 *64 (2).MySQL所在的系统为Windows server 2003 *86 我想要实现的是在sql 20 ...

  5. jexus

    Jexus web server V5.1 安装配置要点 一.Jexus简介:Jexus web server for linux 是一款基于.NET兼容环境,运行于Linux/unix操作系统之上, ...

  6. Libevent 定时器

    先摘一点网上的介绍 libevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,内部使用select.epoll.kqueue等系统调用管理事件机制.著名分布式缓存软件 ...

  7. 给日志添加“复制”效果

    给日志添加如上效果的实现方法: 在日志编辑页面,源代码中,添加如下代码,包裹住 目标内容style1: <div class="cnblogs_code"><di ...

  8. [JavaScript 随笔] 垃圾回收

    在 JavaScript 中,由于垃圾回收是自动进行的,所以人们在编码时可能不太会注意这方面.但事实是,一些 webapp 在使用一段时间后,会出现卡顿的现象,特别是那些单页应用,包括 WebView ...

  9. Oracle 查询类似 select top 的用法

    --查询前10条数据select * from MID_EHR_STAFF where rownum<10;--查询第5~10条的记录,minus(减)select * from MID_EHR ...

  10. brackets快捷键使用

    ctrl+b 当选中一个文本时,会出现相同的文本,被高亮显示 按ctrl+b 相同的文本就全部获得了焦点 这样就可以同时更改这些相同的文本ctrl+e    打开或关闭快速编辑alt+u 注释ctrl ...