- 들어가기에 앞서 SQL의 종류에 대한 글을 선행하고 오시는걸 추천드립니다 :)
001. 테이블에서 특정 열(COLUMN) 선택하기
SELECT 절은 테이블로 부터 출력하고 싶은 열(column) 이름을 콤마(,)로 구분하여 작성합니다.
FROM 절은 데이터를 저장하고 있는 테이블 명을 작성합니다.
select 출력하고 싶은 열의 이름들
from 테이블 명;
SELECT절과 FROM절은 한 줄로 작성해도 되고 여러 줄로 나누어 작성해도 됩니다. 하지만 SQL이 점점 길어지게 되므로 가급적SELECT절과 FROM절을 별도의 라인에 쓰는걸 권장합니다.
모든 코딩에 순서가 있듯이, SQL에도 순서가 존재합니다. SELECT절보다 FROM절을 먼저 쓰고 싶을 수도 있지만 항상 FROM절보다 SELECT절을 먼저 써야하며 바꿔 쓸 경우 에러가 발생합니다.
또한 문장이 끝나는 곳엔 세미콜론(;)을 씁니다. 세미콜론은 문장이 끝남을 의미하기 때문에 문장이 끝나고 세미콜론을 쓰지 않을경우 에러가 발생합니다.(일반적으로 SQL developer에서 실행하면 경고는 하지만 실행은 됩니다ㅎㅎ)
SELECT ENAME FROM EMP; -- 한줄로 작성해도 됩니다!
FROM EMP SELECT ENAME; -- 잘못된 예 (순서는 항상 SELECT - FROM 순)
SELECT ENAME FROM EMP -- 뭐가 잘못되었을까요?
Q. 사원 테이블(emp)에서 사원 번호(empno)와 이름(name)과 월급(sal)을 출력하라
A.
테이블 = 사원 → FROM 절
출력하고 싶은 열 = 사원번호, 이름, 월급 → SELECT 절
SELECT EMPNO, ENAME, SAL
FROM EMP;
002. 테이블에서 모든 열(COLUMN) 출력하기
테이블을 처음 마주했을때, 과연 이 테이블엔 어떤 정보가 들어있을까? 그럼 테이블에 어떤 컬럼이 있는지 확인하고 싶잖아요? 이 처럼 테이블의 전체 열(column)들을 모두 출력하고 싶을 때 SELECT 바로 다음에 *(별표)를 작성하면 전체 열(column)들을 조회할 수 있습니다.
SELECT *
FROM 테이블명;
상황에 따라 모든 컬럼을 출력하고 맨 끝에 다시 한번 특정 칼럼을 한번 더 출력해야하는 경우가 있습니다. 또는 컬럼이 너무 많아 한눈에 보기 위해 한번 더 출력해야하는 경우 *(별표) 앞에 '테이블명.'을 붙여 작성하고 그 다음 한번 더 출력하고자 하는 컬럼명을 작성합니다.
SELECT 테이블명.*, 컬럼명
FROM EMP;
Q. 사원 테이블을 모든 열(column)들을 전부 출력하라
A.
SELECT *
FROM EMP;
003. 컬럼 별칭을 사용하여 출력되는 컬럼명 변경하기
컬럼명은 전부 영어이기도 하고 단어가 너무 길면 줄여서 쓰기도 하는데 보는 사람은 이게 무슨 정보인지 잘 모를수도 있잖아요? 그럴땐 출력되는 컬럼명 다음에 AS를 작성하고 출력하고 싶은 컬럼명을 기술하면 됩니다. 이것을 컬럼 별칭(colunm alias)이라고 합니다.
SELECT 컬럼1 AS 별칭1, 컬럼2 AS 별칭2
FROM 테이블명;
이런 별칭을 사용할때 주의할 점이 있습니다. 만약 대소문자를 구분하여 컬럼 별칭을 출력하고자 할 때는 컬럼 별칭 양쪽에 더블 퀘테이션 마크(" ")를 감싸줘야 합니다. 이 외에도 공백문자를 출력하거나, 특수문자($, _, # 만 가능)를 출력할 때 더블 퀘테이션 마크(" ")로 감싸줘야 합니다. 다음은 더블 퀘테이션 마크로 감싼 예시입니다.
SELECT SAL AS "Salary"
FROM EMP;
Q. 사원 테이블의 사원 번호와 이름, 월급을 출력하는데 컬럼명을 한글로 '사원 번호'. '사원 이름'으로 출력하라.
A.
테이블 = EMP
출력하고 싶은 열 = EMPNO → 사원번호 , ENAME →이름, 월급
SELECT EMPNO AS 사원번호 , ENAME AS 사원이름, SAL
FROM EMP;
N O T E 별칭, 이럴때 유용해요!
SELECT EMPNO, SAL *(1 + 1.5)
FROM EMP;
위에 이 코드, SQL에서 실행하면 다음과 같이 출력됩니다.
수식을 사용할 경우 출력되는 컬럼명도 수식으로 출력됩니다. 그럴 때 수식명이 아닌 한글 '연말보너스'로 컬럼명을 출력하고 싶다면 수식 뒤에 'AS'를 작성하고 컬럼 별칭을 사용하면 됩니다.
SELECT EMPNO, SAL * (1 + 1.5) AS 연말보너스
FROM EMP;
004. 연결 연산자 사용하기( | | )
SQL은 결과로 테이블을 출력해주는데 테이블은 너무 딱딱하고 "OOO님의 월급은 3000만원입니다 " 처럼 직관적으로 정보를 확인하고 싶을때 연결 연산자 (concatenation operator)를 이용하면 컬럼과 컬럼을, 또는 컬럼과 문자열을 연결하여 출력할 수 있습니다. (** 문자열은 작은 따옴표로 묶어줍니다)
SELECT 컬럼1 || 컬럼2
FROM 테이블명;
문자열과 컬럼을 같이쓰는 방법은 예시를 통해 확인해보겠습니다.
-- EX) ENAME의 월급은 SAL달러 입니다.
SELECT ENAME || '의 월급은 ' || SAL || '달러 입니다.'
FROM EMP;
연결 연산자를 이용하여 칼럼들을 서로 연결하였다면 컬럼 별칭은 맨 마지막에 사용해야 합니다
-- EX) ENAME의 월급은 SAL달러 입니다. > '급여정보'로 컬럼명 변경하기
SELECT ENAME || '의 월급은 ' || SAL || '달러 입니다.' AS 급여정보
FROM EMP;
Q. 사원테이블의 이름과 월급을 서로 붙여서 출력하라
A.
SELECT ENAME || SAL
FROM EMP;
아직 입문파트라 어렵지 않고 충분히 쉽게 따라올 수 있습니다!
질문은 댓글로 남겨주세요 :)