SQL Server,Oracle,DB2上约束建立语句对比_Oracle_数据库_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 数据库 > Oracle > SQL Server,Oracle,DB2上约束建立语句对比

SQL Server,Oracle,DB2上约束建立语句对比

 2013/8/10 1:21:47    程序员俱乐部  我要评论(0)
  • 摘要:上次我们介绍了:SQLServer,Oracle,DB2索引建立语句的对比,本文我们介绍一下SQLServer,Oracle,DB2上约束建立语句的对比,接下来我们就开始介绍。约束用于强制行数据满足特定的商业规则(数据类型是强制列的数据满足规则)约束有五种类型:NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECKSQLSERVER上的NOTNULL约束:CREATETABLEU_emp(empnobigint,enameVARCHAR(10)NOTNULL
  • 标签:Server ORA 建立 SQL Oracle 约束

上次我们介绍了:SQL Server,Oracle,DB2索引建立语句的对比,本文我们介绍一下SQL Server,Oracle,DB2上约束建立语句的对比,接下来我们就开始介绍。

约束用于强制行数据满足特定的商业规则(数据类型是强制列的数据满足规则)

约束有五种类型:

NOT NULL

UNIQUE

PRIMARY KEY

FOREIGN KEY

CHECK

SQL SERVER上的NOT NULL约束:

    class="dp-xml">
  1. CREATE TABLE U_emp(  
  2. empno bigint,  
  3. ename VARCHAR(10) NOT NULL,  
  4. job VARCHAR(9),  
  5. mgr bigint,  
  6. hiredate DATE,  
  7. sal decimal(7,2),  
  8. comm decimal(7,2),  
  9. deptno decimal(7,2) NOT NULL); 

ORACLE上的NOT NULL约束:

  1. CREATE TABLE emp(   
  2. empno NUMBER(4),   
  3. ename VARCHAR2(10) NOT NULL,   
  4. job VARCHAR2(9),   
  5. mgr NUMBER(4),   
  6. hiredate DATE,   
  7. sal NUMBER(7,2),   
  8. comm NUMBER(7,2),   
  9. deptno NUMBER(7,2) NOT NULL); 

DB2上的NOT NULL约束:

  1. CREATE TABLE U_emp(  
  2. empno INTEGER,  
  3. ename VARCHAR(10) NOT NULL,  
  4. job VARCHAR(9),  
  5. mgr INTEGER,  
  6. hiredate DATE,  
  7. sal DECIMAL(7,2),  
  8. comm DECIMAL(7,2),  
  9. deptno DECIMAL(7,2) NOT NULL); 

SQL SERVER上的UNIQUE约束:

  1. CREATE TABLE U_dept(  
  2. deptno INTEGER,  
  3. dname VARCHAR(14),  
  4. loc VARCHAR(13),  
  5. CONSTRAINT dept_dname_uk UNIQUE(dname)); 

ORACLE上的UNIQUE约束:

  1. CREATE TABLE dept(   
  2. deptno NUMBER(2),   
  3. dname VARCHAR2(14),   
  4. loc VARCHAR2(13),   
  5. CONSTRAINT dept_dname_uk UNIQUE(dname)); 

DB2上的UNIQUE约束:

  1. CREATE TABLE U_dept(  
  2. deptno INTEGER,  
  3. dname VARCHAR(14) not null,  
  4. loc VARCHAR(13),  
  5. CONSTRAINT dept_dname_uk UNIQUE(dname)); 

SQL SERVER上的PK 约束:

  1. CREATE TABLE P_dept(  
  2. deptno INTEGER,  
  3. dname VARCHAR(14),  
  4. loc VARCHAR(13),  
  5. CONSTRAINT dept_dname_uk1 UNIQUE (dname),  
  6. CONSTRAINT dept_deptno_pk1 PRIMARY KEY(deptno)); 

ORACLE上的PK约束

  1. CREATE TABLE dept(   
  2. deptno NUMBER(2),   
  3. dname VARCHAR2(14),   
  4. loc VARCHAR2(13),   
  5. CONSTRAINT dept_dname_uk UNIQUE (dname),   
  6. CONSTRAINT dept_deptno_pk PRIMARY KEY(deptno)); 

DB2和的PK约束:

  1. CREATE TABLE P_dept(  
  2. deptno INTEGER not null,  
  3. dname VARCHAR(14) not null,  
  4. loc VARCHAR(13),  
  5. CONSTRAINT dept_dname_uk1 UNIQUE (dname),  
  6. CONSTRAINT dept_deptno_pk1 PRIMARY KEY(deptno)); 

SQL SERVER上的FK 约束:

  1. CREATE TABLE F_emp(  
  2. empno INTEGER,  
  3. ename VARCHAR(10) NOT NULL,  
  4. job VARCHAR(9),  
  5. mgr INTEGER,  
  6. hiredate DATE,  
  7. sal DECIMAL(7,2),  
  8. comm DECIMAL(7,2),  
  9. deptno INTEGER NOT NULL,  
  10. CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)  
  11. REFERENCES p_dept (deptno)); 

ORACLE上的FK约束:

  1. CREATE TABLE emp(   
  2. empno NUMBER(4),   
  3. ename VARCHAR2(10) NOT NULL,   
  4. job VARCHAR2(9),   
  5. mgr NUMBER(4),   
  6. hiredate DATE,   
  7. sal NUMBER(7,2),   
  8. comm NUMBER(7,2),   
  9. deptno NUMBER(7,2) NOT NULL,   
  10. CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)   
  11. REFERENCES dept (deptno));  

DB2上的FK约束:

  1. CREATE TABLE F_emp(  
  2. empno INTEGER,  
  3. ename VARCHAR(10) NOT NULL,  
  4. job VARCHAR(9),  
  5. mgr INTEGER,  
  6. hiredate DATE,  
  7. sal DECIMAL(7,2),  
  8. comm DECIMAL(7,2),  
  9. deptno INTEGER NOT NULL,  
  10. CONSTRAINT emp_deptno_fk FOREIGN KEY (deptno)  
  11. REFERENCES p_dept (deptno)); 

FK约束的几个特点:

1.FOREIGN KEY:在表级定义时需要

2.REFERENCES:指定主表及其主键

3.ON DELETE CASCADE:级联删除选项

SQL SERVER上的CHECK约束:

  1. create table test ( deptno bigint constraint emp_deptno_ck check (deptno   
  2. between 10 and 99)) 

ORACLE上的CHECK约束:

  1. create table test ( deptno number(2) constraint emp_deptno_ck check (deptno  
  2. between 10 and 99))  

DB2 上的CHECK约束:

  1. create table test ( deptno number(2) constraint emp_deptno_ck check (deptno  
  2. between 10 and 99))  

关于SQL Server,Oracle,DB2上约束建立语句的对比就介绍到这里了,希望本次的介绍能够对您有所收获!

发表评论
用户名: 匿名