我觉得不必要区分,这两种约束的唯一区别就是建表时定义的位置不同。
如:CREATE TABLE DEPT
       (DEPTNO NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
DNAME VARCHAR2(14) ,
LOC VARCHAR2(13) ) ;CREATE TABLE EMP
       (EMPNO NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ENAME VARCHAR2(10),
JOB VARCHAR2(9),
MGR NUMBER(4),
HIREDATE DATE,
SAL NUMBER(7,2),
COMM NUMBER(7,2),
DEPTNO NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT,
        CONSTRAINT CK_JOB CHECK(JOB IN('CLERK','SALESMAN','MANAGER','ANALYST')));在上面的约束中,约束PK_DEPT,PK_EMP,FK_DEPTNO都是列约束,而CK_JOB是表约束。
同意snowy_howe(天下有雪)所说的:列制约都可以用表制约来实现,但是限制多列的子句必然是表约束。
另外,列约束可以指定约束名称,如上面的约束PK_DEPT和PK_EMP。
查询约束的视图是USER_CONSTRAINTS。