일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 스프링 쇼핑몰
- 파일 업로드
- spring 쇼핑몰
- 로그인 기능
- 스프링 게시판
- 정규표현식
- ResponseEntity
- BCrypt 적용
- 스프링 쇼핑몰 프로젝트
- Bcrypt
- 쇼핑몰 포트폴리오
- 회원가입 기능
- 스프링 프로젝트
- 쇼핑몰 프로젝트
- 로그아웃 기능 구현
- 스프링 파일 삭제
- 스프링 이미지
- 스프링 포트폴리오
- 스프링 프로젝트 기본 설정
- arraylist
- spring 프로젝트
- 스프링 업로드
- 스프링 HikariCP
- 스프링 메일 전송
- oracle 설치방법
- 삭제 구현
- 스프링 프로젝트 설정
- 인증번호 전송
- 스프링 게시판 구현
- 이미지 출력
- Today
- Total
Kim VamPa
[Oracle 기본사용법][03] SELECT(WHERE,ORDER BY, OFFSET, FETCH) 본문
"생활코딩 Oracle"을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.
목표
- 저번 '[Oracle 기본사용법][02]'글에서 사용한 SELECT를 기반으로 응용 명령문들을 공부합니다.
- SELECT에 덧 붙여 WHERE, ORDER BY, OFFSET, FETCH에 대해 이해하고 "SQL Plus"를 사용해서 직접 실습해봅니다.
*해당 글의 실습은 Oracle XE버젼을 환경을 바탕으로 진행 행하였습니다..
목차
1. SELECT & WHERE
2. SELECT & ORDER BY
3. SELECT & OFFSET & FETCH(페이징 명령어)
0. 실습에 사용하는 표(Table)
앞의 글 [02]의 표를 기준으로 하겠습니다.
[표 1]
테이블 이름 : topic
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. SELECT & WHERE
SELECT 검색대상컬럼 FROM 테이블명 WHERE 컬럼조건;
- 특정 테이블에 조건을 만족하는 대상컬럼을 검색합니다.
- 조건이 두 개 이상 일시 첫 번째 조건 뒤에 'AND(둘다만족)' / 'OR(둘 중 하나 이상 만족)'을 덧붙이고 조건을 쓰면 됩니다.
실습
1. topic테이블(표1)에서 모든 칼럼을 대상으로 id가 1을 만족하는 행을 검색합니다.
SELECT * FROM topic WHERE id = 1;
- 결과창을 보면 ID가 1(파랑 밑줄)인 행만 검색된 걸 볼 수 있습니다.
2. topic테이블(표1)에서 모든 칼럼을 대상으로 id가 1보다 큰 조건을 만족하는 행을 검색합니다.
SELECT * FROM topic WHERE id > 1;
- 결과를 보면 id가 1보다 큰 2와 3을 가진 행이 검색된 것을 볼 수 있습니다.
3. topic테이블(표1)에서 id, title, created칼럼을 대상(description칼럼 제외)으로 id가 1을 만족하는 행을 검색합니다.
SELECT id, title, created FROM topic WHERE id = 1;
- 결과창을 보시면 id, title, created 칼럼만 검색된 것을 볼 수 있습니다.
- 조건이 id가 1인 행만 검색된 걸 볼 수 있습니다.
2. SELECT * ORDER BY
SELECT 검색대상칼럼 FROM 테이블명 ORDER BY 기준칼럼 DESC;
- 기준칼럼을 기준으로 내림차순
SELECT 검색대상칼럼 FROM 테이블명 ORDER BY 기준칼럼 ASC;
- 기준칼럼을 기준으로 오름차순
- ORDER BY 명령을 덧붙이면 정렬(오름차순, 내림차순)돼서 검색이 됩니다.
- ASC는 생략이 가능합니다.(기본값이 ASC 이기 때문입니다.)
실습
1. 토픽 테이블(표1)에서 모든 칼럼을 대상으로 id칼럼 기준 내림차순 검색합니다.
SELECT * FROM topic ORDER BY id DESC;
- id 기준으로 내림차순(3->2->1)필터링된 검색 결과를 보실 수 있습니다.
2. 토픽 테이블(표1)에서 모든 칼럼을 대상으로 id칼럼 기준 오름차순 검색합니다.
SELECT * FROM topic ORDER BY id ASC;
SELECT * FROM topic ORDER BY id;
- id기준으로 오름차순(1->2->3)필텅링된 결과를 보실 수 있습니다.
- ASC를 생략해도 똑같은 결과가 뜹니다.(그림 2-3)
3. SELECT & OFFSET * FETCH(페이징 명령어)
1. SELECT 검색대상칼럼 FROM 테이블명 OFFSET 숫자 ROWS;
2. SELECT 검색대상칼럼 FROM 테이블명 OFFSET 숫자1 ROWS
FETCH NEXT 숫자2 ROWS ONLY;
*OFFSET-FETCH 명령어는 Oracle 데이터베이스 12 버전 이후부터 사용이 가능한 명령어입니다.
- 1번 OFFSET은 검색될 결과물(SELECT 검색 대상 칼럼 테이블명)에서 첫행부터 지정 행(숫자 ROWS)까지 제외를 요청하는 명령어입니다.
(EX. '5 ROWS' 일 경우 검색될 결과물에서 5행까지는 제외한 결과물이 검색됩니다.)
- 2번 FETCH는 OFFSET을 실행(SELECT 검색대상칼럼 FROM 테이블명 OFFSET 숫자1 ROWS)한 후 지정 갯수행(숫자2 ROWS)만큼 필터일을 요청하는 명령어입니다.
- FETCH 명령어는 OFFSET 뒤에서만 사용이 가능합니다.
실습
1. topic테이블(표1)에서 모든 칼럼을 대상으로 1번째 행을 제외한 결과물 요청합니다.
SELECT * FROM topic OFFSET 1 ROWS;
- 결과를 보시면 본래는 id칼럼이 1,2,3 인행이 나와야 하지만 첫 번째 행(id =1)인 행을 제외한 결과가 나온 것을 보실 수 있습니다.
2. topic테이블(표1)에서 모든 칼럼을 대상으로 0번째 행을 제외한 결과물 중에서 1개의 행을 검색합니다.
SELECT * FROM topic OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY;
- OFFSET 까지 명령어 결과로는 3개의행(id =1,2,3)의 결과가 나와야 합니다
- 그 결과물 중 1개의 행(FETCH NEXT 1 ROWS ONLY)이 검색되신 것을 보실 수 있습니다.
Reference
Date
- 2020.04.05 작성
'공부 > 데이터베이스' 카테고리의 다른 글
[Oracle 기본사용법][05]시퀀스(SEQUENCE) (0) | 2020.04.08 |
---|---|
[Oracle 기본사용법][04] PRIMARY KEY(기본키) (0) | 2020.04.07 |
[Oracle 기본사용법][02] CREATE(테이블 생성),INSERT(데이터 삽입) (0) | 2020.04.04 |
[Oracle 기본사용법][01]사용자(USER)생성, 스키마(SCHEMA) 생성 (0) | 2020.04.03 |
[윈도우 10]Oracle Database XE 설치방법 (0) | 2020.04.03 |