Oracle作业02-约束

一、SQL代码

--创建客户表(T_CUSTOMER)
CREATE TABLE T_CUSTOMER(
       C_ID INT CONSTRAINT PK_C_ID PRIMARY KEY,       
       C_NAME VARCHAR2(30) NOT NULL CONSTRAINT UN_C_NAME UNIQUE,
       C_PROVINCE VARCHAR2(20) NOT NULL,
       C_CITY  VARCHAR2(20) NOT NULL,
       C_PHONE CHAR(11) NOT NULL,
       C_DESCRIPTION VARCHAR2(30),
       C_CREATETIME DATE DEFAULT SYSDATE NOT NULL-- 默认为系统时间
)

--为T_CUSTOMER添加表名和字段的相关说明 COMMENT ON
COMMENT ON TABLE T_CUSTOMER IS '客户表';
COMMENT ON COLUMN T_CUSTOMER.C_ID IS '客户编号';
COMMENT ON COLUMN T_CUSTOMER.C_NAME IS '客户名称';
COMMENT ON COLUMN T_CUSTOMER.C_PROVINCE IS '省份';
COMMENT ON COLUMN T_CUSTOMER.C_CITY IS '城市';
COMMENT ON COLUMN T_CUSTOMER.C_PHONE IS '手机号码';
COMMENT ON COLUMN T_CUSTOMER.C_DESCRIPTION IS '描述';
COMMENT ON COLUMN T_CUSTOMER.C_CREATETIME IS '创建时间';

--查询表说明
SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='T_CUSTOMER';
--查询字段说明
SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME='T_CUSTOMER';

--插入数据:编号:1,客户名称:潭州学院,省份: 湖南,城市: 长沙,手机 : 13888888888, 描述:这家公司不错,创建时间:系统默认
INSERT INTO T_CUSTOMER(C_ID,C_NAME,C_PROVINCE,C_CITY,C_PHONE,C_DESCRIPTION) 
VALUES(1,'潭州学院','湖南','长沙','13888888888','这家公司不错');

--插入数据:编号:2,客户名称:软件开发公司,省份:广东,城市: 深圳,手机 : 13888888889, 描述:软件,创建时间:系统默认
INSERT INTO T_CUSTOMER(C_ID,C_NAME,C_PROVINCE,C_CITY,C_PHONE,C_DESCRIPTION) 
VALUES(2,'软件开发公司','广东','深圳','13888888889','软件');

SELECT * FROM T_CUSTOMER;

--创建订单表(T_ORDER)
CREATE TABLE T_ORDER(
       O_ID INT CONSTRAINT PK_O_ID PRIMARY KEY,
       O_AMOUNT NUMBER(26,2) CONSTRAINT CH_O_AMOUNT CHECK(O_AMOUNT > 0),
       --行级定义外键约束的格式:注意行级定义没有出现FOREIGH KEY这两个关键字
       --以下出现FOREIGH KEY的行级定义外键约束是错误的,把FOREIGH KEY删掉就成功了
       --O_CUSTOMER_ID INT CONSTRAINT FK_O_CUSTOMER_ID FOREIGH KEY REFERENCES T_CUSTOMER(C_ID),
       O_CUSTOMER_ID INT CONSTRAINT FK_O_CUSTOMER_ID REFERENCES T_CUSTOMER (C_ID),
       O_CREATETIME TIMESTAMP DEFAULT SYSDATE NOT NULL -- 默认系统时间
)

--为T_ORDER添加表名和字段的相关说明 
COMMENT ON TABLE T_ORDER IS '订单表';
COMMENT ON COLUMN T_ORDER.O_ID IS '订单编号';
COMMENT ON COLUMN T_ORDER.O_AMOUNT IS '订单金额';
COMMENT ON COLUMN T_ORDER.O_CUSTOMER_ID IS '客户编号';
COMMENT ON COLUMN T_ORDER.O_CREATETIME IS '下单时间';

--查询表说明
SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAME='T_ORDER';
--查询字段说明
SELECT * FROM USER_COL_COMMENTS WHERE TABLE_NAME='T_ORDER';

--添加订单信息到T_ORDER(订单)表中
--订单编号:2014110101, 订单金额: 999.98, 客户编号:1,  创建时间: 系统默认
INSERT INTO T_ORDER(O_ID,O_AMOUNT,O_CUSTOMER_ID) VALUES(2014110101,999.98,1);
--订单编号:2014110102, 订单金额: 1999.98, 客户编号:2,  创建时间: 系统默认
INSERT INTO T_ORDER(O_ID,O_AMOUNT,O_CUSTOMER_ID) VALUES(2014110102,1999.98,2);

SELECT * FROM T_ORDER;

二、运行结果相关截图:

(1)T_CUSTOMER表的VIEW视图

(2)T_ORDER表的VIEW视图

(3)T_CUSTOMER表插入数据后查询结果:

(4)T_ORDER表插入数据后查询结果:

(5)T_CUSTOMER表的约束(非空约束请看其VIEW视图)

(6)T_ORDER表的约束非空约束请看其VIEW视图)

(7)查看T_CUSTOMER表的表说明

(8)查看T_CUSTOMER表的字段说明

(9)查看T_ORDER表的表说明

(10)查看T_ORDER表的字段说明