일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BCrypt 적용
- 스프링 프로젝트 설정
- 쇼핑몰 프로젝트
- 스프링 메일 전송
- 스프링 이미지
- 스프링 포트폴리오
- 스프링 HikariCP
- 정규표현식
- 스프링 업로드
- arraylist
- 파일 업로드
- 스프링 파일 삭제
- 스프링 프로젝트
- 로그아웃 기능 구현
- Bcrypt
- oracle 설치방법
- 삭제 구현
- 인증번호 전송
- 이미지 출력
- 쇼핑몰 포트폴리오
- 로그인 기능
- spring 쇼핑몰
- 스프링 쇼핑몰 프로젝트
- 스프링 게시판 구현
- ResponseEntity
- 스프링 쇼핑몰
- 회원가입 기능
- 스프링 프로젝트 기본 설정
- 스프링 게시판
- spring 프로젝트
- Today
- Total
Kim VamPa
[Oracle 기본사용법][05]시퀀스(SEQUENCE) 본문
"생활코딩 Oracle"을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- 시퀀스가 무엇인지 이해합니다.
- 시퀀스를 직접 sQL Plus 에서 사용해봅니다.
*해당 글의 실습은 Oracle XE 버전을 환경을 바탕으로 진행 행하였습니다..
목차
1. 시퀀스(SEQUENCE)
2. 실습
3. 시퀀스 현재값
1. 시퀀스(SEQUENCE)
시퀀스란 자동으로 순차적 증가하는 순번을 반환하는 데이터베이스 객체.
[Oracle 기본사용법]포스팅에서 지속적으로 사용한 테이블을
id | title | description | created |
1 | ORACLE | ORACLE is ... | 2020.04.03 |
2 | MySQL | MySQL is .... | 2020.04.03 |
3 | NoSQL | NoSQL is ... | 2020.04.03 |
해당 표를 보시면 id컬럼은 보시면 다른 레코드 들을 구분 할 수 있는 식별자의 역할을 위해서 의도적으로 순차적으로 1씩 증가 시킨 것을 볼 수 있습니다. 다음 레코드가 만들어진다면 4 이고, 새로 만든다면 계속 1씩 증가 할 것 입니다. 본래는 아래 명령어와 같이 직접 번호를 입력
INSERT INTO topic (id, title, description, created) values(4, 'MSSQL', 'MSSQL IS ...', SYSDATE);
해주 어야만 합니다. 시퀀스는 레코드를 새로 생성(INSERT INTO)할때마다 사용자가 값을 일일이 계산해서 주지 않더라도 자동으로 +1 된 값을 추가시켜줍니다.
사용방법
시퀀스를 사용하기 위해선 먼저 "시퀀스를 생성"하는 명령어가 먼저 선행되어야합니다.
- SEQ_TOPIC는 생성 하는 시퀀스의 이름 입니다.
CREATE SEQUENCE 시퀀스명;
생성되어진 시퀀스를 삽입할 데이터 명령문에 사용하면됩니다. 다음 명령문은 아래 실습에서 사용할 시퀀스를 사용한 명령문입니다.
INSERT INTO topic (SEQ_TOPIC.NEXTVAL, 'MSSQL', 'MSSQL IS ...', SYSDATE);
2. 실습
지금까지 지속적으로 만들었떤 아래의표를 시퀀스를 통해 만들어 보겠습니다.
id | title | description | created |
1 | ORACLE | ORACLE is ... | 2020.04.03 |
2 | MySQL | MySQL is .... | 2020.04.03 |
3 | NoSQL | NoSQL is ... | 2020.04.03 |
1. 먼저 테이블을 만듭니다. (앞선 포스팅에서 생성햇던 명령문과 동일합니다.
CREATE TABLE topic(
id NUMBER NOT NULL,
title VARCHAR2(50) NOT NULL,
description VARCHAR(4000),
created DATE NOT NULL,
CONSTRAINT PK_TOPIC PRIMARY KEY(id)
);
2. 사용할 시퀀스를 생성합니다.
CREATE SEQUENCE SEQ_TOPIC;
3. 데이터 삽입문을 실행합니다. . 기존 포스팅에서 계속 사용햇던 명령은 id칼럼에 직접 번호를 부여해서 데이터를 넣엇지만 이번엔 시퀀스 객체를 삽입하겠습니다.
INSERT INTO topic (id, title, description, created) values(SEQ_TOPIC.NEXTVAL, 'ORACLE', 'ORACLE is...', SYSDATE);
INSERT INTO topic (id, title, description, created) values(SEQ_TOPIC.NEXTVAL, 'MySQL', 'MySQL is...', SYSDATE);
INSERT INTO topic (id, title, description, created) values(SEQ_TOPIC.NEXTVAL, 'SQL Server', 'SQL Server is...', SYSDATE);
INSERT INTO topic (id, title, description, created) values(SEQ_TOPIC.NEXTVAL, 'MSSQL', 'MSSQL is...', SYSDATE);
INSERT INTO topic (id, title, description, created) values(SEQ_TOPIC.NEXTVAL, 'MongoDB', 'MongoDB is...', SYSDATE);
4. 명령문 commit;을 실행합니다. 실행하지 않는다면 데이터베이스에 온전히 등록되지 않습니다.
COMMIT;
5. 시퀀스를 사용한 데이터가 어떤 형식으로 삽입되었는지 SELECT 문을 통해서 확인합니다.
SELECT id, title FROM topic;
- 우리는 id 데이터에 시퀀스명을 삽입했음에도 불구하고 1, 2, 3, 4, 5가 자동으로 삽입되었음을 알 수 있습니다.
*주의사항
테이블에 시퀀스를 사용하지 않고 데이터 삽입을 한 상태에에서 시퀀스문을 사용한 데이터 삽입문을 사용한다면 에러가 날 수 있습니다. 따라서 테이블을 생성해서 첫 데이터 삽입때부터 시퀀스를 사용하거나, 아니면 데이터를 모두 지운뒤 첫 행부터 사용해야 합니다.
Reference
Date
- 2020.04.08 작성
'공부 > 데이터베이스' 카테고리의 다른 글
[Oracle SQL Developer][01] SQL Developer 설치방법 (0) | 2020.04.10 |
---|---|
[Oracle 기본사용법][06]오라클에서의 서버(Server)와 클리아언트(client)란? (0) | 2020.04.09 |
[Oracle 기본사용법][04] PRIMARY KEY(기본키) (0) | 2020.04.07 |
[Oracle 기본사용법][03] SELECT(WHERE,ORDER BY, OFFSET, FETCH) (0) | 2020.04.05 |
[Oracle 기본사용법][02] CREATE(테이블 생성),INSERT(데이터 삽입) (0) | 2020.04.04 |