티스토리 뷰

SQL

[SQL] 16. Sequence, Synonym

superkong1 2018. 2. 12. 12:19
반응형

16. Sequence, Synonym

앞에서 살펴본 ORACLE SQL의 데이터베이스 객체 중
남은 Sequence, Synonym를 알아보겠다.(Index는 양이 많아 별도로 정리)



Sequence

Sequence란 간단히 일련번호 생성기로 말할 수 있으며,
번호를 중복하지 않고 순서대로 생성하는 DB Object이다.

일반적으로 각 행에 고유해야 하는 Primary key값을 생성하는 경우에 Sequence를 생성한다.

Sequence를 생성하는 코드는 아래와 같다.
create sequence 시퀀스명;
start with 시작숫자
increment by 증가숫자
maxvalue 최대숫자
minvalue 최소숫자
cache 캐쉬에 올려놓을 데이터숫자

예제) 사원번호(empono)와 사원이름(ename)이 있는 emp386 테이블을 만들고,
사원이름은 전부 'scott'으로,
사원번호는 새로 생성한 sequence로 1~5번까지 입력하시오!


① Table 생성
create table emp386
( empno number(10),
ename varchar2(10) ) ;


② Sequence 생성
create sequence seq123;

sequence와 함께 사용하는 명령어 중 currval과 nextval이 있는데,
currval은 현재의 sequence 값,
nextval은 다음의 sequence 값을 출력한다.

sequence가 제대로 만들어졌는지 확인하려면
select seq123.nextval from dual;
을 입력한다. (아직 한번도 실행하지 않았기 때문에 다음 값이 1임)

처음 실행 시 왜 currval로 확인하지 않는지 의문이 있을 수 있다.
이는 sequence를 한 번도 실행하지 않은 상태에서는 currval 입력 시 에러가 발생하기 때문이다.
sequence를 한 번 실행 한 후에는 currval 입력해도 현재 시퀀스 확인할 수 있다.

위 명령어를 한 번 더 실행한다면 그 값은 2로 변경된다. (앞에서 한 번 실행했으므로 현재 값은 1임)

→ Sequence는 한 번 실행해야 시작값으로 설정되며, 실행될 때마다 값이 변경됨


③ 데이터 입력 insert into emp386 values(seq123.currval, 'scott');
이후 확인해보면

사실 sequence 생성 후 insert문에 바로 nextval을 이용해 넣으면
1부터 차례대로 들어가지만, 계속 에러(2부터 들어감)가 발생하여 위와 같이 진행하였다.
sequence를 지울 때에는 drop을 이용하면 된다.



Synonym

Synonym은 동의어라는 뜻으로 어떤 table이나 view의 다른 이름을 생성해주며,
보통 긴 table명을 줄일 때 사용한다.

긴단하게 emp테이블이 있을때 이를 e라는 Synonym을 만들어 간편하게 사용하려면
create synonym e
for emp;

select * from e;
으로 만들어주면 된다.

지울때에는 drop synonym 이름으로 삭제하며,
만약 원본 table인 emp테이블을 삭제하면 동의어인 e의 데이터도 함께 사라진다.

=================이 글은 Markdown을 활용해 작성하였습니다=================

반응형

'SQL' 카테고리의 다른 글

[SQL] 18. 정규식 함수  (0) 2018.02.14
[SQL] 17. index  (0) 2018.02.13
[SQL] 15. View  (0) 2018.02.09
[SQL] 14. ORACLE SQL의 Data Type  (0) 2018.02.07
[SQL] 13. 데이터 정의 언어(DDL문)  (0) 2018.02.06
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함