约束

2018-10-24  本文已影响0人  咔狼

约束

添加方式

建表时添加
建表后添加
  1. ALTER TABLE 表名 ADD CONSTRAINT 自定义约束规则名 约束类型(约束列)
ALTER TABLE STUDENT ADD CONSTRAINT PK_STU_ID PRIMARY KEY(ST_ID);
ALTER TABLE STUDENT ADD CONSTRAINT UN_STU_NAME UNIQUE(ST_NAME);
ALTER TABLE T_CLASS ADD CONSTRAINT UN_CLASS_CNO UNIQUE(C_NO);

主键约束

CREATE TABLE T_USER(
       T_ID NUMBER(4) CONSTRAINT PK_USER_ID PRIMARY KEY,
       T_NAME VARCHAR2(20)
);

唯一约束

CREATE TABLE T_USER(
       T_ID NUMBER(4) CONSTRAINT UN_USER_NAME UNIQUE,
       T_NAME VARCHAR2(20)
);

外键约束

CREATE TABLE T_CUSTOMER (
       F_ID NUMBER(5) CONSTRAINT PK_CUSTOMER_ID PRIMARY KEY,
       F_NAME VARCHAR2(30)
);

CREATE TABLE T_ORDER (
       F_ID NUMBER(10) CONSTRAINT PK_ORDER_ID PRIMARY KEY,
       F_CUSTOMER_ID NUMBER(5) CONSTRAINT FK_ORDER_ID REFERENCES T_CUSTOMER(F_ID)
);
ALTER TABLE T_STU ADD CONSTRAINT FK_STU_CNO
FOREIGN KEY (C_NO) REFERENCES T_CLASS(C_NO);
级联关系
ALTER TABLE T_STU ADD CONSTRAINT FK_STU_CNO
FOREIGN KEY (C_NO) REFERENCES T_CLASS(C_NO) ON DELETE CASCADE;
ALTER TABLE T_STU ADD CONSTRAINT FK_STU_CNO
FOREIGN KEY (C_NO) REFERENCES T_CLASS(C_NO) ON DELETE SET NULL;

检查约束

ALTER TABLE STUDENT ADD CONSTRAINT CK_STU_SEX
CHECK(((ST_SEX='男') OR (ST_SEX='女')) AND (ST_SEX IS NOT NULL));

非空约束

CREATE TABLE T_USER(
       T_ID NUMBER(4),
       T_NAME VARCHAR2(20) NOT NULL
);
ALTER TABLE STUDENT MODIFY ST_NAME NOT NULL;

建表栗子

CREATE TABLE T_CUSTOMER (
       F_ID NUMBER(5) CONSTRAINT PK_CUSTOMER_ID PRIMARY KEY,
       F_NAME VARCHAR2(30) CONSTRAINT UN_CUSTOMER_NAME UNIQUE NOT NULL,
       F_PROVINCE VARCHAR2(20) NOT NULL,
       F_CITY VARCHAR2(20) NOT NULL,
       F_PHONE CHAR(11) NOT NULL,
       F_DESCRIPTION VARCHAR2(30),
       F_CREATETIME DATE DEFAULT SYSDATE NOT NULL
);

CREATE TABLE T_ORDER (
       F_ID NUMBER(10) CONSTRAINT PK_ORDER_ID PRIMARY KEY,
       F_AMOUNT NUMBER(26, 2) CONSTRAINT CK_ORDER_NAME CHECK (F_AMOUNT > 0) NOT NULL,
       F_CUSTOMER_ID NUMBER(5) CONSTRAINT FK_ORDER_ID REFERENCES T_CUSTOMER(F_ID),
       F_CREATETIME DATE DEFAULT SYSDATE NOT NULL
);
上一篇下一篇

猜你喜欢

热点阅读