Oracle primary,unique,foreign 区别,Hibernate 关联映射
生活随笔
收集整理的這篇文章主要介紹了
Oracle primary,unique,foreign 区别,Hibernate 关联映射
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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
轉載于:https://www.cnblogs.com/kuiyeit/p/5334711.html
總結
以上是生活随笔為你收集整理的Oracle primary,unique,foreign 区别,Hibernate 关联映射的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js处理异常try{}catch(e){
- 下一篇: 当你从事不喜欢的事怎么办