SQL의 기본 뼈대, SELECT절과 FROM절
SELECT문은 데이터베이스에 보관되어 있는 데이터를 조회하는 문법이다. 기본 형식은 아래와 같다.
SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름]
FROM [조회할 테이블 이름];
만약 테이터의 모든 열을 조회하고자 할 떄는 간단하게 *(애스터리스크)를 통해 출력할 수 있다.
SELECT * FROM EMP;
사원번호, 이름, 사원이 속한 특정한 열만 출력 하고 싶다면 아래와 같이 출력하면 된다.
SELECT EMPNO, ENAME, DEPTNO
FROM EMP;
SELECT는 가장 많이 쓰이는 SQL문법중 하나이므로 꼭 기억하도록 하자.
중복 데이터를 삭제하는 DISTINCT
데이터를 조회하다보면, 중복된 데이터가 출력될 때가 있다. 만약 중복을 원하지 않다면 DISTINCT 문법을 사용하여 데이터를 출력할 수 있다.
SELECT DISTINCT DEPTNO
FROM EMP;
열이 한 개일 경우 해당 열의 중복을 제거하고자 위와 같은 문법을 사용했다. 30,20,10은 중복되는 데이터인데, DISTINCT 덕분에 각각 한번 씩만 출력되고 있다.
SELECT DISTINCT JOB, DEPTNO
FROM EMP;
두 개의 열에 중복을 허용하고 싶지 않다면 위와 같은 코드를 통해 결과 데이터를 얻을 수 있다. 만약 중복을 허용하면서 모든 데이터를 출력하고 싶다면 어떻게할까? DISTINCT대신 ALL을 써주면 된다.
SELECT ALL JOB, DEPTNO
FROM EMP;
별칭 설정하기
SQL문에서는 편의성을 위해 열의 이름을 임의로 지정할 수 있다. 본래 이름 대신 붙이는 이름을 별칭(alias)라고 한다.
SELECT ENAME, SAL, SAL*12+COMM, COMM
FROM EMP;
열 'SAL*12+COMM' 연봉의 의미를 한눈으로 파악하기에는 어려움이 있다. 만약 annual salary(연봉)의 약어인 'ANNSAL'으로 표현한다면, 조금더 열을 파악하는 데 수월 하지 않을까?
SELECT ENAME, SAL, SAL*12+COMM AS ANNSAL, COMM
FROM EMP;
'AS ANNSAL'을 사용하여 연봉인 열의 의미를 눈에 쉽게 파악할 수 있게했다. 이처럼 SQL은 열을 약어로 표현할 수 있다. 별칭을 지정하는 다양한 방식에 대해 알아보자.
별칭을 지정하는 방식
사용방법 | 설명 |
SAL*12+COMM ANNSAL | 연산 및 가공된 문장 이후 한 칸 띄우고 별칭 지정 |
SAL*12+COMM "ANNSAL" | 연산 및 가공된 문장 이후 한 칸 띄우고 별칭을 큰따옴표("")로 묶어 지정 |
SAL*12+COMM AS ANNSAL | 연산 및 가공된 문장 이후 한 칸 띄운 후 'AS', 한 칸 뒤에 별칭 지정 |
SAL*12+COMM AS "ANNSAL" | 연산 및 가공된 문장 이후 한 칸 띄운 후 'AS', 한 칸 뒤에 별칭을 큰 따옴표("")로 묶어 지정 |
별칭을 지정하는 방시에서는 위와 같이 4가지 방식이 있다. 그중에서도 3번 째 방식 AS뒤에 별칭을 지정하는 방식이 실무에서 가장 많이 사용된다. 조회해야 할 열이 수십, 수백 개일 경우 어떤 단어가 별칭인지 알아보기 위해, 그리고 큰 따옴표를 사용하지 않으려는 프로그래머들 습관 떄문이다.
ORDER BY
데이터를 조회할 때 시간, 이름, 순서 또는 다른 기준으로 원하는 순서로 데이터를 출력할 때 ORDER BY를 사용한다.
기본형식
SELECT [조회할 열1 이름], [열2 이름], ..., [열N 이름]
FROM [조회할 테이블 이름]
.
.
.
ORDER BY [정렬하려는 열 이름(여러 열 지정 가능)] [정렬 옵션];
ORDER BY는 오름차순 혹은 내림차순을 사용할 수 있다.
오름차순과 내림차순
SELECT * FROM EMP
ORDER BY SAL;
오름차순을 사용할 때는 ORDER BY 다음 정렬하려는 열 이름 뒤에 'ASC' 적어준다. ORDER BY는 기본값이 오름차순이기 떄문에 'ASC'를 생략할 수 있다.
SELECT * FROM EMP
ORDER BY SAL DESC;
반대로 내림차순을 사용할 때는 정렬하려는 열 뒤에 'DESC'를 붙여준다. 단, 생략은 허용하지 않는다.
출처:Do it! 오라클 배우는 데이터베이스 입문(저자:이지훈, 출판사:이지스퍼블리싱)
'DB > Oracle' 카테고리의 다른 글
[오라클 함수] NULL 처리 함수 (0) | 2022.02.10 |
---|---|
[오라클 함수] 형 변환 함수 (0) | 2022.02.09 |
[오라클 함수] 날짜 함수 (0) | 2022.02.09 |
[오라클 함수] 문자함수 (0) | 2022.02.07 |
WHERE절과 연산자 (0) | 2022.01.27 |