约束:就是指对插入数据的各种限制,约束既可在建表的时候直接声明,也可以为已经建好的表添加约束。
视图:就是一个封装了各种复杂查询的语句,就称之为视图。
索引:是一种用于提升查询效率的数据库对象
。通过快速定位数据的方法,来减少磁盘的 I/O 操作。索引信息与表独立存放,并且Oracle 数据库自动使用和维护索引。
一、约束
1)非空约束
CREATE TABLE TEST
(
ID VARCHAR2(36) NOT NULL, // 该字段不能为空
NAME VARCHAR2(200)
)
/
INSERT INTO TEST(NAME) VALUES ('jane'); // [23000][1400] ORA-01400: 无法将 NULL 插入 ("SNOW_ZY"."TEST"."ID")
2)主键约束
CREATE TABLE TEST
(
ID VARCHAR2(36) PRIMARY KEY, // 不能重复、不能为空
NAME VARCHAR2(200)
)
/
INSERT INTO TEST(ID, NAME) VALUES ('123', 'jane');
INSERT INTO TEST(ID, NAME) VALUES ('123', 'jane'); // [23000][1] ORA-00001: 违反唯一约束条件 (SNOW_ZY.SYS_C00124287)
3)唯一约束
CREATE TABLE TEST
(
ID VARCHAR2(36) UNIQUE, // 值不能重复 (空值除外)
NAME VARCHAR2(200)
)
/
INSERT INTO TEST(ID, NAME) VALUES ('123', 'jane');
INSERT INTO TEST(ID, NAME) VALUES ('123', 'jane'); // [23000][1] ORA-00001: 违反唯一约束条件 (SNOW_ZY.SYS_C00124287)
4)条件约束
CREATE TABLE TEST
(
ID VARCHAR2(36),
NAME VARCHAR2(200),
AGE NUMBER CHECK ( AGE BETWEEN 0 AND 150) // 插入的数据必须是满足某些条件
)
/
INSERT INTO TEST(ID, NAME, AGE) VALUES ('123', 'jane', 100);
INSERT INTO TEST(ID, NAME, AGE