SQL 중 가장 많이 사용되는 SELECT
SELECT 문은 사용자가 원하는 형태로 데이터를 검색하기 위한 언어입니다.
SELECT 구문
SELECT * FROM table // 해당 table의 모든 컬럼 출력
SELECT col1, col2, col3 FROM table // 해당 table의 col1, col2, col3을 출력
SELECT DISTINCT col1 FROM tabel // col1에 있는 중복 행을 제거하고 출력
SELECT SUM(col1) AS sum_col1 FROM tabel // col1의 합을 출력 컬럼 이름은 sum_col1으로
SELECT 절에는 열 이름 또는 열에 대해 여러 가지 연산자를 사용한 표현식이 올 수 있습니다.
이때 테이블에 정의된 모든 행과 열을 보고 싶을 때 * 기호를 사용하면 됩니다.
결과에서 중복 행을 제거하고 싶을 때는 해당 열에 DISTINCT를 사용하며,
출력하는 열의 이름을 변경하기 위해 열 이름에 별칭(AS)을 사용할 수 있습니다.
(1) 모든 열 선택
SELECT * FROM table;
(2) 특정 열 선택
SELECT col1, col2, col3 FROM table;
(3) 중복 행 제거
SELECT DISTINCT col1 FROM table
(4) 산술식 사용
데이터를 표시하는 방식을 수정하거나 계산을 수행할 경우 산술 연산자를 사용하여 숫자, 날짜 데이터에 대한 표현식을 작성할 수 있습니다. 산술식에는 열 이름, 상수 숫자 값, 산술 연산자가 포함될 수 있으며 FROM 절을 제외한 SQL 문의 모든 절에서 산술 연산자를 사용할 수 있습니다.
-- 사원의 아이디, 사원의 이름, 월급의 * 12를 하여 연봉을 보여주는 SELECT 문입니다
SELECT emp_id, emp_name, salary * 12 FROM emp_table;
(5) 날짜데이터 연산
-- 사원 아이디, 사원 이름, 입사일, 입사일 + 30일을 출력하는 SELECT문
SELECT emp_id, emp_name, hiredate, hiredate+30 FROM emp_table;
이렇게 날짜에도 산술 연산자를 사용하여 더하고 뺄 수 있으며, 이때 정수는 일(日)에 해당됩니다.
또한 날짜에서 다른 날짜를 빼서 날짜 간의 일 수를 알 수 있습니다.
(6) NULL 값의 사용과 산술식
전화번호, 주민등록번호 등 꼭 값이 입력되어야 하는 열이 있는가 하면, 값이 없어도 되는 열도 있습니다. 해당 열에 값이 없다면 그 값을 NULL이라고 부릅니다. NULL은 알 수 없는 값, 사용할 수 없는 값, 할당할 수 없는 값, 적용할 수 없는 값을 의미합니다. NULL은 0이나 공백과는 전혀 다른 값입니다. 0은 숫자이고, 공백은 하나의 문자입니다. NULL은 0, " "(공백)과 전혀 다른 값입니다.
NULL 주의 할 점
산술식에서 사용되는 열에서 특정 값이 널이면 결과에서 해당 행의 산술식의 결과 또한 NULL이 되는 것을 꼭 알기
열 머리글과 열 별칭 (Column Alias)
- SELECT 문의 결과에서 열의 머리글은 기본적으로 대문자로 표시됩니다. 표현식에 의해 생성된 열은 SALARY * 12, HIREDATE+30과 같이 표시됩니다.
- 출력 결과를 이해하기 쉽게 하기 위해 열의 이름이나 표현식을 다른 이름으로 변경할 수 있습니다. SELECT 목록에서 열 이름, 표현식과 별칭 사이에 공백 또는 AS를 넣어 지정합니다.
- 기본적으로 별칭도 열 머리글처럼 대문자로 표시되며, 별칭이 공백 또는 특수 문자를 포함하거나 대소문자를 구분할 경우에는 별칭을 큰 따옴표로 묶어야 합니다.
SELECT emp_name, salary * 12 AS annual_salary;
SELECT emp_name, salary * 12 annual_salary;
SELECT emp_name, salary * 12 AS "Annual Salary";
연결 연산자 (||)
하나의 열을 두 개의 세로선(||)을 사용하여 다른 열, 산술식 또는 상수 값에 연결하면 이 연산자의 좌우에 있는 열이 결합되어 하나의 열로 출력됩니다.
SELECT emp_name || position AS "Employee's Position" FROM emp_table;
공백 포함 열 연결
SELECT emp_name || ' ' || position FROM emp_table;
SQL Tip
- SQL 문은 대소문자를 구분하지 않습니다.
- 하나 이상의 줄에 입력할 수 있으며 종료 문자 ;를 입력하여 명령문을 완료하고 실행할 수 있습니다.
- 키워드는 다음 줄에 나눠 쓰거나 약어로 쓸 수 없습니다.
- 절은 읽기 쉽고 편집하기 쉽도록 서로 다른 줄에 쓰는 것이 좋습니다.
- 좀 더 읽기 쉬운 SQL 문을 작성하기 위해 들여쓰기를 사용합니다.
- 키워드는 대문자로 입력하고 테이블 이름, 열 등은 소문자로 입력하는 것이 일반적입니다.