Oracle从入门到总裁:https://blog.csdn.net/weixin_67859959/article/details/135209645
编写包含约束的数据库
-- 删除数据表
DROP TABLE purcase PURGE ;
DROP TABLE product PURGE ;
DROP TABLE customer PURGE ;
-- 创建数据表
CREATE TABLE product(
productid VARCHAR2(5) ,
productname VARCHAR2(20) NOT NULL ,
unitprice NUMBER ,
category VARCHAR2(50) ,
provider VARCHAR2(50) ,
CONSTRAINT pk_productid PRIMARY KEY(productid) ,
CONSTRAINT ck_unitprice CHECK (unitprice>0)
) ;
CREATE TABLE customer (
customerid VARCHAR2(5) ,
name VARCHAR2(20) NOT NULL ,
location VARCHAR2(50) ,
CONSTRAINT pk_customerid PRIMARY KEY(customerid)
) ;
CREATE TABLE purcase (
customerid VARCHAR2(5) ,
productid VARCHAR2(5) ,
quantity NUMBER ,
CONSTRAINT fk_customerid FOREIGN KEY(customerid) REFERENCES customer(customerid) ON DELETE CASCADE ,
CONSTRAINT fk_productid FOREIGN KEY(productid) REFERENCES product(productid) ON DELETE CASCADE ,
CONSTRAINT ck_quantity CHECK (quantity BETWEEN 0 AND 20)
) ;
分析代码,可以看出,这段代码共创建了 3 个数据表
其中 product 数据表在 productid 字段上创建了主键约束
在 unitprice 字段上创建了检查约束
在 productname 字段上创建了非空约束
在customer 数据表 customerid 字段上创建了主键约束
在 name 字段上创建了非空约束
在 purcase数 据 表 customerid 字 段 上 创 建 了 外 键 约 束
与 customer 数 据 表 的 customerid 字 段 建 立 关 联
在productid 字段上也建立外键约束
与 product 数据表的 productid 字段建立关联
此外在 quantity 字段上建立检查约束