COL owner FOR A10;
COL constraint_name FOR A15;
COL table_name FOR A10;
COL column_name FOR A10;
SELECT owner,constraint_name,table_name,column_name
FROM user_cons_columns;
OWNER CONSTRAINT_NAME TABLE_NAME COLUMN_NAM
---------- --------------- ---------- ----------
SCOTT SYS_C0011575 MEMBER EMAIL
SCOTT SYS_C0011574 MEMBER NAME
SCOTT FK_DEPTNO EMP DEPTNO
SCOTT PK_EMP EMP EMPNO
SCOTT PK_DEPT DEPT DEPTNO
DROP TABLE member PURGE;
CREATE TABLE member (
mid VARCHAR2(50),
name VARCHAR2(50),
age NUMBER(3),
sex VARCHAR2(10),
CONSTRAINT pk_mid PRIMARY KEY(mid),
CONSTRAINT ck_age CHECK(age BETWEEN 0 AND 255),
CONSTRAINT ck_sex CHECK(sex IN ('男','女'))
);
范例: 增加正确的数据
INSERT INTO member(mid,name,age,sex) VALUES ('ALPHA','ALPHA GO',0,'女');
INSERT INTO member(mid,name,age,sex) VALUES ('BETA','BETA GO',255,'男');
范例: 错误的数据
INSERT INTO member(mid,name,age,sex) VALUES ('GAMMA','GAMMA GO',-1,'不正常');
INSERT INTO member(mid,name,age,sex) VALUES ('DELTA','DELTA GO',256,'正常');
DROP TABLE member PURGE;
DROP TABLE book PURGE;
CREATE TABLE member (
mid VARCHAR2(50),
name VARCHAR2(50),
CONSTRAINT pk_mid PRIMARY KEY(mid)
);
CREATE TABLE book (
bid NUMBER,
title VARCHAR2(50),
mid VARCHAR2(50),
CONSTRAINT pk_bid PRIMARY KEY(bid)
);
创建了数据表之后向表中追加数据。
INSERT INTO member(mid,name) VALUES ('ALPHA','ALPHA GO');
INSERT INTO member(mid,name) VALUES ('BETA','BETA GO');
INSERT INTO book(bid,title,mid) VALUES (1001,'Introduction to Computer Science','ALPHA');
INSERT INTO book(bid,title,mid) VALUES (1002,'Introduction to Software Engineering','ALPHA');
INSERT INTO book(bid,title,mid) VALUES (1003,'Electronic engineering','BETA');
INSERT INTO book(bid,title,mid) VALUES (1004,'Digital circuits','BETA');
此时也有可能添加如下的数据。
INSERT INTO book(bid,title,mid) VALUES (1005,'computer network','GAMMA');
INSERT INTO book(bid,title,mid) VALUES (1006,'data structure','DELAT');
DROP TABLE member PURGE;
CREATE TABLE member (
mid VARCHAR2(50),
name VARCHAR2(50)
);
INSERT INTO member(mid,name) VALUES ('ALPHA','ALPHA GO');
INSERT INTO member(mid,name) VALUES ('ALPHA','BETA GO');
INSERT INTO member(mid,name) VALUES ('BETA',null);
1. 为表追加约束:
语法:ALTER TABLE 表名称 ADD CONSTRAINT 约束名称 约束类型(字段);
范例: 为member表追加主键约束
如果数据表之中的数据有违法主键的情况出现,那么该约束是无法添加的;
ALTER TABLE member ADD CONSTRAINT pk_mid PRIMARY KEY(mid);
以上语法是能够追加非空之外的约束,如果想要增加非空约束,只能够通过修改表结构的操作完成;
ALTER TABLE member MODIFY (name VARCHAR2(50) NOT NULL);