라일락 꽃이 피는 날

[Oracle] 데이터 출력 본문

프로그래밍/Oracle

[Oracle] 데이터 출력

eunki 2022. 5. 25. 00:15
728x90

1. 테이블에서 특정 열(COLUMN) 선택

select 보고 싶은 컬럼명 
    from 테이블명;

select 절에는 보고 싶은 컬럼명을 쓰고, from 절에는 테이블명을 기술한다.

→ 테이블명으로부터 컬럼명을 선택(검색)한다.

 

 

 

예제. 사원 테이블에서 이름, 월급, 직업을 출력

select ename, sal, job
    from emp;

select 절과 from 절은 다른 라인에 쓰는 것을 추천한다.

select 절 다음에 from 절을 기술할 때, 들여쓰기를 해서 가독성을 높인다.

 

 

 

2. 테이블에서 모든 열(COLUMN) 출력

 

예제. 사원 테이블의 모든 컬럼을 출력

select * 
    from emp;

* (asterisk) : 모든 컬럼을 다 출력하는 키워드

 

 

 

3. 컬럼 별칭을 사용하여 출력되는 컬럼명 변경

컬럼 별칭을 사용하면 컬럼명 대신에 다른 이름으로 컬럼명을 출력할 수 있다. (as는 생략 가능)

컬럼 별칭에 공백 문자나 특수 문자를 넣고 싶다면 양쪽에 더블 쿼테이션 마크(”)를 둘러줘야 한다.

 

 

 

예제. 사원이름과 월급을 출력하는데, 컬럼명을 한글로 사원이름과 월급으로 출력

select ename as "사원이름", sal as "월급"
    from emp;

 

 

 

4. 연결 연산자 사용 (||)

연결 연산자는 두 개의 컬럼 값을 서로 연결할 때 사용하는 연산자이다.

검색한 결과를 이해되기 쉬운 문장으로 출력하고 싶을 때, 연결 연산자를 사용하면 유용하다.

 

 

 

예제. 이름과 월급을 서로 연결해서 출력

select ename || sal
    from emp;
select ename || '의 월급은 ' || sal
    from emp;

 

 

 

5. 중복된 데이터를 제거해서 출력 (DISTINCT)

 

예제. 중복을 제거해서 직업을 출력

select distinct job
    from emp;

 

 

 

6. 데이터를 정렬해서 출력 (ORDER BY)

select 보고 싶은 컬럼명
    from 테이블명
    order by 정렬하고 싶은 컬럼명 asc/desc;

asc : 낮은 값부터 높은 값 순으로 출력 (오름차순)

desc : 높은 값부터 낮은 값 순으로 출력 (내림차순)

 

 

 

예제 1. 이름과 월급을 출력하는데, 월급이 낮은 사원부터 높은 사원 순으로 출력

select ename, sal
    from emp
    order by sal asc;
select ename, sal
    from emp
    order by 2 asc;

컬럼명이 복잡할 때, 선택한 컬럼명 순서에 따라 숫자로 사용한다.

 

 

 

예제 2. 이름, 월급, 입사일을 출력하는데, 컬럼명을 전부 한글로 출력하고 월급이 낮은 사원부터 출력

select ename as "이름", sal as "월급", hiredate as "입사일"
    from emp
    order by 월급 asc;

컬럼 별칭을 order by 절에 사용해도 되는 이유는 SQL을 실행하는 실행 순서 때문이다.

오라클이 내부적으로 실행하는 실행 순서가 from → select → order by 이다.

 

 

 

예제 3. 부서 번호, 직업, 이름을 출력하는데, 부서 번호와 직업을 ascending하게 출력

select deptno, job, ename
    from emp
    order by deptno asc, job asc;

 

 

 

예제 4. 이름과 관리자 번호를 출력하는데, 관리자 번호가 높은 사원부터 출력하고 null 값은 마지막에 나오게 출력

select ename, mgr
    from emp
    order by mgr desc nulls last;

nulls last 는 null 을 나중에 나오게 하는 것이고, nulls first 는 null 을 먼저 나오게 하는 것이다.

 

 

 

예제 5. 이름과 관리자 번호를 출력하는데, 관리자 번호가 높은 사원부터 4개만 출력

select ename, mgr
    from emp
    order by mgr desc fetch first 4 rows only;

fetch first n rows only : 정렬된 결과에서 위에 n개의 행만 출력

 

 

 

7. 데이터를 검색해서 출력 (WHERE)

특정 검색 조건에 해당하는 데이터만 검색하고 싶다면 where 절을 사용해야 한다.

검색하고 싶은 조건을 where 절에 기술하면 된다.

select 컬럼명
    from 테이블명
    where 검색 조건

코딩 순서 : select → from → where

오라클이 내부적으로 수행하는 실행 순서 : from → where → select

 

 

 

예제 1. 월급이 3000인 사원들의 이름과 월급을 출력

select ename, sal
    from emp
    where sal = 3000;

 

 

 

예제 2. 직업이 SALESMAN인 사원들의 이름과 직업을 출력

select ename, job
    from emp
    where job = 'SALESMAN';

숫자는 양쪽에 싱글 쿼테이션 마크(’)를 사용하지 않아도 되는데,

문자와 날짜는 양쪽에 싱글 쿼테이션 마크(’)를 둘러줘야 한다.

 

SQL은 대소문자를 구분하지 않지만 데이터는 대소문자를 구분한다.

따라서 데이터가 대문자로 테이블에 들어있으면 대문자로 검색해야 하고,

데이터가 소문자로 테이블에 들어있으면 소문자로 검색해야 한다.

 

 

 

예제 3. 81년 11월 17일에 입사한 사원들의 이름과 입사일을 출력

select ename, hiredate
    from emp
    where hiredate = '81/11/17';
728x90