序列和索引

序列

CREATE SEQUENCE SEQ_01

INCREMENT BY 10

START WITH 120

MAXVALUE 9999

NOCACHE

NOCUCLE;

CREATE SEQUENCE SEQ_01

INCREMENT BY -10

START WITH -120

MINVALUE 9999

NOCACHE

NOCYCLE;

NOCACHE不缓存

NOCYCLE不循环

SELECT SEQ_01.NETVAL FROM DUAL;

SELECT SEQ_01.CURRVAL FROM DUAL;

CREATE TABLE T27(X NUMBER,Y NUMBER)

CREATE TABLE T28(X NUMBER PRIMARY KEY,Y NUMBER)

INSERT INTO T27 VALUES(SEQ_01.CURRVAL,1);

SELECT * FROM T27;

INSERT INTO T28 VALUES(SEQ_01.NEXTVAL) 这里因为是主键 所以只能插入下一个序列

DROP SEQ_01;删去序列

SELECT SEQUENCE_NAME,MIN_VALUE,MAX_VALUE,INCREMENT_BY,LAST_NUMBER FROM USER_SEQUENCES;

INSERT INTO T1 VALUES(SQC01.CURRVAL,’dd’)

索引

索引与表相互独立 通过使用快速路径访问方法来快速定位数据,可以减少磁盘IO

自动创建:在定义主键和UNIQUE约束后系统自动在相应的列上创建唯一性索引

手动创建:用户可以在其他列上创建非唯一的索引,以加速查询

CREATE INDEX IND_01 ON T28(Y);

CREATE INDEX IND_02 ON T27(X,Y);

什么情况创建索引:

列中数据值分布范围广泛

列中包含大量空值

列经常在WHERE子句或连接条件中出现

表经常被访问而且数据量很大,访问的数据大概占数据总量的2%到4%

删除索引 DROP INDEX IND_01

从数据字典中删除索引

DROP INDEX EMP_LAST_NAME_IDX;

创建一个序列SEQ_01,每次增加15,从10开始,最大值200,不循环,缓存在20个内存里

CREATE SEQUENCE SEQ01

INCREMENT BY 15

START WITH 10

MAX VALUE 200

NOCYCLE

CACHE 20

创建一个表T28,X,Y列均为NUMBER

CREATE TABLE T28(X NUMBER,Y NUMBER)

使用序列SEQ_01插入T28的X列,插入五行

INSERT INTO T28(SEQ_O1.NEXTVAL,NULL)

创建一个索引IND_01在T28的Y列

CREATE INDEX IND_01 ON T28(Y)

给T28增加一个列,Z,类型是DATE

ALTER TABLE T28 ADD(Z DATE)

把Z列改成A列,改名之后查看效果

ALTER TABLE RENAME COLUMN Z TO A

给A列增加CHECK约束,大于100

ALTER TABLE T28 ADD CONSTRAINT CHE_01 CHECK(A>100)

删除A列并级联删除约束

ALTER TABLE T28 DROP COLUMN A CASCADE CONSTRAINT

创建对象的同义词

通过创建同义词简化对象访问(一个对象的另一个名字),使用同义词您可以:

方便访问其他用户的对象

缩短对象名字的长度

CREATE SYNONYM D_SUM

FOR DEPT_SUM_VU

CREATE SYNONYM SY_01 FOR V1

SELECT * FROM SY_01

原文地址:https://www.cnblogs.com/kawashibara/p/9038207.html