[Oracle] SELECT에 대해 알아보기

2022. 5. 6. 13:58·DB/Oracle
목차
  1. 들어가기 전에
  2. SELECT(조회)
  3. 셀렉션(selection), 프로젝션(projection), 조인(join)
  4. SELECT문의 기본 구조
  5. DISTINCT (중복 데이터 제거)
  6. 별칭(alias) 설정하기
  7. ORDER BY (원하는 순서로 출력 데이터 정렬)
  8. WHERE (조건절)
  9. 참고 자료
728x90
반응형

들어가기 전에

이 포스팅은 오라클로 배우는 데이터베이스 입문(이지훈 저)을 읽으면서 기억하고자 하는 내용 및 추가적으로 알아본 내용을 담았습니다. 책 전체 내용을 보시고 싶으신 분은 책을 구매하시어 읽어보시길 바랍니다.

SELECT(조회)

SELECT문은 데이터베이스에 저장되어 있는 데이터를 조회할 때 사용됩니다. SELECT문은 출력 데이터를 선정하는 방식에 따라 크게 3가지(셀렉션, 프로젝션, 조인)로 나뉩니다.

먼저 간단하게 이 3가지 방식에 대해 알아보겠습니다.

셀렉션(selection), 프로젝션(projection), 조인(join)

셀렉션, 프로젝션, 조인 기본 개념

SELECT문의 기본 구조

SELECT  [조회하고자 하는 column 이름1], [조회하고자 하는 column 이름2] ...
FROM    [조회하고자 하는 table 이름] [조회하고자 하는 table의 별칭(선택)];
구문 설명 넣을 내용
SELECT SELECT절은 조회할 열을 지정함 조죄할 열 이름 또는 출력할 데이터를 하나 이상 지정할 수 있으며, 전체 열에 대해 출력하고자 할 경우 *(asterisk)를 넣어 전체 열을 지정할 수 있음
FROM FROM절은 조회할 테이블을 지정함 조회할 테이블 이름을 넣음
  • SQL문의 마지막은 ;(세미콜론)이 들어와야 합니다.
  • SELECT 절에서 테이블 전체의 컬럼을 조회할 경우 *(asterisk)를 사용할 수 있지만, 실무에서는 보통 출력할 열을 하나하나 입력합니다.
    • 만약, 테이블 구조가 변경되었음을 인지하지 못한 채 *로 사용하고 있으면 해당 변화에 따른 코드 수정이 어려울 수 있습니다.
    • 또한, *로 사용할 경우 각 컬럼들이 어떤 순서로 출력될지 알 수 없습니다.

DISTINCT (중복 데이터 제거)

SELECT  DISTINCT [조회하고자 하는 column 이름1], [조회하고자 하는 column 이름2] ...
FROM    [조회하고자 하는 table 이름];
  • SELECT 절에 DISTINCT를 넣으면, 데이터를 조회한 후 중복을 제거합니다.

조회하는 열이 한개인 경우의 DISTINCT(왼쪽), 조회하는 열이 두개 이상인 경우의 DISTINCT(오른쪽)

실제로 DISTINCT를 넣어 조회를 해보면 위와 같은 결과를 확인할 수 있습니다.

  • 조회하는 대상(SELECT절의 대상)에 대해 중복을 제거하기 때문에 여러 열에 대해 조회를 할 경우 해당 열들이 모두 중복되어야만 제거됨을 확인할 수 있습니다.

별칭(alias) 설정하기

SELECT문을 실행하면, SELECT절에 명시한 열 이름이 결과의 컬럼명으로 나타남을 확인할 수 있습니다. 이러한 컬럼명은 임의로 지정하여 사용할 수 있으며, 이런 이름을 별칭이라고 합니다. 별칭을 사용하는 이유는, 여러 컬럼들을 이용하여 연산한 값을 조회하고자 할 경우, 결과의 컬럼명이 너무 길거나 어떤 의미인지 알기 어려울 때 주로 사용합니다. 또한, 어떤 연산을 통해 해당 값이 도출되었는지를 숨기고자 할 경우 사용합니다.

아래 예시는, 기존 EMP 테이블에 존재하는 EMPNO(사원 번호), SAL(한달 급여), COMM(급여 외 추가 수당)과 연간 총 수입인 SAL*12+COMM을 연산한 결과를 반환한 것입니다. 왼쪽 그림에서는 연간 총 수입에 대해 따로 별칭을 지정하지 않아 SAL*12+COMM으로 뜬 것을 볼 수 있으며, 오른쪽 그림에서는 해당 컬럼에 별칭을 지정하여 별칭으로 뜬 것을 확인할 수 있습니다.

별칭 지정하지 않은 경우(왼쪽)와 별칭 지정한 경우(오른쪽)

  • 참고로, WHERE절은 조건을 걸어주는 것으로 COMM 컬럼의 경우 NULL이 들어가 있는 경우 연간 총 수입 값이 NULL로 뜨고 있어 COMM이 NULL이 아닌 경우에 대해서만 조회하기 위해 조건을 걸어주었습니다.
  • 별칭을 지정하는 방식은 아래와 같이 4가지 방식이 있습니다.
    • [별칭을 지정하고자 하는 대상] [별칭]
    • [별칭을 지정하고자 하는 대상] "[별칭]"
    • [별칭을 지정하고자 하는 대상] AS [별칭]
      • 실무에서 주로 사용하는 방법으로, AS를 통해 별칭을 한눈에 보기 위함입니다.
      • 또한, 큰따옴표(")의 경우, 프로그래밍 언어에서 주로 문자열 데이터의 시작과 끝을 알리는 기호로 사용되어 어떤 용도인지 구분하는 작업이 필요하여 이 방식을 주로 사용합니다.
    • [별칭을 지정하고자 하는 대상] AS "[별칭]"

ORDER BY (원하는 순서로 출력 데이터 정렬)

ORDER BY 절의 경우, 데이터를 조회할 때에 원하는 정렬 방식으로 출력하기 위해 사용합니다. ORDER BY 절은 SELECT문을 작성할 때 가장 마지막 부분에 작성합니다.

SELECT   [조회하고자 하는 column 이름1], [조회하고자 하는 column 이름2] ...
FROM     [조회하고자 하는 table 이름]
.
.
.
ORDER BY [정렬하고자 하는 열 이름(여러 열 지정 가능)] [정렬 옵션];
구문 설명 넣을 내용
ORDER BY ORDER BY절에 지정한 열은 먼저 지정한 열을 우선으로 정렬함 정렬 옵션을 넣지 않을 경우, 오름차순(ASC) 정렬 정렬하고자 하는 열 이름을 하나 이상 지정 정렬 옵션은 오름차순(ASC) 또는 내림차순(DESC)

하나의 열을 기준으로 정렬(왼쪽), 여러 열을 기준으로 정렬(오른쪽)

  • 위 오른쪽 그림의 경우, 첫 번째로 명시된 DEPTNO를 기준으로 오름차순 정렬을 한 뒤, 동일한 DEPTNO 값을 가진 레코드들을 SAL을 기준으로 내림차순 한 것입니다.
    • 즉, ORDER BY에 지정한 열은 먼저 지정한 열을 우선으로 정렬합니다.
  • ORDER BY 절을 사용한 정렬은 꼭 필요한 경우가 아니라면 사용하지 않는 것이 좋습니다. 특정 기준에 따라 데이터를 정렬하는 것은 많은 자원을 사용하여 서비스 응답 시간이 느려질 수 있습니다.

WHERE (조건절)

SELECT문으로 데이터를 조회할 때에 WHRER절을 이용하면 특정 조건을 기준으로 원하는 레코드들을 출력할 수 있습니다. WHERE절이 존재하면, 조회할 테이블의 각 행에 WHERE절의 조건식을 대입하여 결과가 참일 경우에만 출력합니다.

SELECT  [조회하고자 하는 column 이름1], [조회하고자 하는 column 이름2] ...
FROM    [조회하고자 하는 table 이름]
WHERE   [조회할 행을 선별하기 위한 조건식];
구분 설명 넣을 내용
WHERE 조회 시 사용할 조건 조건식

WHERE절을 사용할 때에는 AND와 OR을 활용해 여러 조건식을 조합해서 사용할 수 있습니다.

WHERE절에 OR 조건 넣기(왼쪽), WHERE절에 AND 조건 넣기(오른쪽)

참고 자료

  • 오라클로 배우는 데이터베이스 입문(이지훈 저)
728x90
반응형

'DB > Oracle' 카테고리의 다른 글

[Oracle] Oracle Function(오라클 함수) - 문자 함수  (0) 2022.05.07
[Oracle] Oracle Database에서 사용되는 연산자 종류 알아보기  (0) 2022.05.06
[Oracle, macOS] Docker를 이용한 Oracle Database 11gR2 XE 설치 및 실행하기(SQLPlus, DataGrip 접속 및 SCOTT 계정 생성)  (1) 2022.05.05
[Oracle] 데이터베이스 기본 개념 및 관계형 데이터베이스 알아보기  (0) 2022.05.05
[Oracle, macOS] Docker를 이용한 Oracle Database 18c XE 설치 및 실행하기(SQLPlus)  (1) 2021.08.17
  1. 들어가기 전에
  2. SELECT(조회)
  3. 셀렉션(selection), 프로젝션(projection), 조인(join)
  4. SELECT문의 기본 구조
  5. DISTINCT (중복 데이터 제거)
  6. 별칭(alias) 설정하기
  7. ORDER BY (원하는 순서로 출력 데이터 정렬)
  8. WHERE (조건절)
  9. 참고 자료
'DB/Oracle' 카테고리의 다른 글
  • [Oracle] Oracle Function(오라클 함수) - 문자 함수
  • [Oracle] Oracle Database에서 사용되는 연산자 종류 알아보기
  • [Oracle, macOS] Docker를 이용한 Oracle Database 11gR2 XE 설치 및 실행하기(SQLPlus, DataGrip 접속 및 SCOTT 계정 생성)
  • [Oracle] 데이터베이스 기본 개념 및 관계형 데이터베이스 알아보기
EARTH_ROOPRETELCHAM
EARTH_ROOPRETELCHAM
반응형
EARTH_ROOPRETELCHAM
ROOPRETELCHAM
EARTH_ROOPRETELCHAM
전체
오늘
어제
  • 분류 전체보기 N
    • FRAMEWORK
      • Spring
    • PROGRAMMING LANGUAGE
      • KOTLIN
      • JAVA
      • Design Pattern
    • DB
      • PostgreSQL
      • MySQL
      • Oracle
    • SYSTEM & INFRA N
      • KAFKA N
      • NGINX
      • TOMCAT
      • ANSIBLE
      • DOCKER
      • LINUX
      • AWS
      • OPEN API
    • AI
      • AI Tools
      • Generative AI
    • IDE
      • eclipse
      • IntelliJ
    • DEVELOPMENT TOOLS
      • Git
      • Build Tool
    • TECH BOOK
    • SECURITY
      • CHROME
    • ALGORITHM
      • C++
      • Greedy
      • DFS(Depth First Search
      • BFS(Breath First Search
      • Recursion
    • MAC
      • DEVELOP
    • WINDOWS
      • TIP
    • PRODUCTS
      • IT
    • IT Knowledge

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

kotlin
Oracle
코틀린
스프링부트
자바
git
게시판프로젝트
mac
springboot
코틀린 완벽 가이드
effective kotlin
MYSQL
Spring
PostgreSQL
이펙티브 코틀린
IntelliJ
elastic beanstalk
coroutine
java
게시판

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.3
EARTH_ROOPRETELCHAM
[Oracle] SELECT에 대해 알아보기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.