1.INDEX
▶테이블의 컬럼에 인덱스 생성
CREATE INDEX 인덱스이름
ON 테이블(컬럼);
CREATE INDEX PER_PAY_IDX
ON PERSONNEL(PAY);
인덱스 확인
SELECT * FROM USER_INDEXES;
▶PK생성시 INDEX 동시 생성
NON-CLUSTERED로 생성 : 정렬X
CREATE TABLE AAA
(ID NUMBER(4) CONSTRAINT AAA_ID_IDX PRIMARY KEY,
NAME CHAR(10));
SELECT * FROM USER_CONSTRAINTS;
SELECT * FROM USER_INDEXES;
INSERT INTO AAA VALUES (3,'K');
INSERT INTO AAA VALUES (2,'N');
INSERT INTO AAA VALUES (1,'E');
INSERT INTO AAA VALUES (4,'O');
PRIMARY KEY를 통해 생성한 인덱스는 PRIMARY KEY를 삭제하면 같이 지워짐
ALTER TABLE AAA
DROP PRIMARY KEY;
SELECT * FROM USER_CONSTRAINTS;
SELECT * FROM USER_INDEXES;
2.SEQUENCE : 일련번호
▶자동으로 번호를 붙여줌
▶시작값, 끝값, 증가/증감값 을 정해줌
▶일련번호의 역할X : 1 2 3 4 5 6 7 →4 삭제 → 1 2 3 5 6 7
▶고유값을 정해 줌
▶ROWNUM
SELECT ROWNUM,PNAME FROM PERSONNEL;
▶SEQUENCE 생성
CREATE SEQUENCE DIV_DNO
START WITH 시작번호
INCREMENT BY 증가 번호
MAXVALUE 마지막번호 / NOMAXVALUE : 마지막 값X
CYCLE / NOCYCLE : 반복O 1,2,3,...99,100,1,2,3,...99,100,1,2... / 반복X
CACHE / NOCACHE : 메모리에 일정 인덱스 숫자를 저장. 다 쓰면 다시 일정숫자를 올림 / 그러지 않음
CREATE SEQUENCE DIV_DNO
START WITH 90
INCREMENT BY 1
MAXVALUE 99
NOCYCLE
NOCACHE;
생성된 SEQUENCE 확인
SELECT * FROM USER_SEQUENCES;
NEXTVAL/CURRVAL
○NEXTVAL : SEQUENCE의 다음번호(SEQUENCE이름.NEXTVAL)
SELECT DIV_DNO.NEXTVAL FROM DUAL;
○CURRVAL : SEQUENCE의 현재번호(SEQUENCE이름.CURRVAL)
SELECT DIV_DNO.CURRVAL FROM DUAL;
INSERT INTO DIVISION VALUES
(DIV_DNO.NEXTVAL,'AA','123','AA');
INSERT INTO DIVISION VALUES
(DIV_DNO.NEXTVAL,'BB','123','BB');
▶SEQUENCE 수정
ALTER SEQUENCE DIV_DNO
INCREMENT BY 1
MAXVALUE 999
NOCYCLE
NOCACHE;
ALTER SEQUENCE DIV_DNO
INCREMENT BY 10;
이 열에 대해 지정된 전체 자릿수보다 큰 값이 허용됩니다.
INSERT INTO DIVISION VALUES
(DIV_DNO.NEXTVAL,'CC','123','CC');
→DIV의 최댓값은 99 / NEXTVAL 값은 112
ALTER SEQUENCE DIV_DNO
INCREMENT BY 1
MAXVALUE 999
NOCYCLE
CACHE 20;
▶SEQUENCE 삭제
DROP SEQUENCE PER_PNO;
MY-SQL에서 INDEX 생성
CREATE TABLE AA
(ID INT IDENTIFY(1,1), 1부터 시작해서 1씩 증가
NAME CHAR(10));
CREATE TABLE AA
(ID INT AUTO_INCREMENT, 1부터 시작해서 1씩 증가/중복값 허용X
NAME CHAR(10));
'STUDY > ORACLE' 카테고리의 다른 글
Oracle 9일차(3)-문제 (0) | 2019.01.18 |
---|---|
Oracle 9일차(2)-PL/SQL (0) | 2019.01.18 |
Oracle 8일차 (0) | 2019.01.16 |
Oracle 7일차- ALTER,MODIFY, DROP, COMMENT,GRANT, REVOKE, (0) | 2019.01.16 |
Oracle 6일차(2)-문제 (0) | 2019.01.16 |
댓글