1. SELECT문의 기능 (사영:射影, 선택, 결합)
SELECT문은 관계형 데이터베이스에서 데이터를 조회하는 가장 기본적인 명령어이다. SELECT문의 주요 기능은 사영(Projection), 선택(Selection), 결합(Join) 세 가지로 나뉜다.
- 사영(Projection): 테이블에서 필요한 열(Column)만 선택하여 조회하는 기능
- SELECT column1, column2 FROM table_name;
- 예제: SELECT name, age FROM employees; (이름과 나이만 조회)
- 선택(Selection): 특정 조건을 만족하는 행(Row)만 조회하는 기능
- SELECT * FROM table_name WHERE condition;
- 예제: SELECT * FROM employees WHERE department = 'HR'; (HR 부서의 직원만 조회)
- 결합(Join): 두 개 이상의 테이블을 연결하여 데이터를 조회하는 기능
- SELECT * FROM table1, table2 WHERE table1.id = table2.id;
- 예제: SELECT e.name, d.department_name FROM employees e, departments d WHERE e.department_id = d.department_id; (직원과 부서 정보 결합 조회)
2. SELECT문의 기본 구문
오라클 SQL의 SELECT문 기본 형식은 다음과 같다.
SELECT [DISTINCT] 컬럼명
FROM 테이블명
[WHERE 조건]
[GROUP BY 그룹핑할 컬럼]
[HAVING 그룹핑 조건]
[ORDER BY 정렬할 컬럼];
예제:
SELECT DISTINCT department_id
FROM employees
WHERE salary > 5000
ORDER BY department_id DESC;
3. SQL문 작성 규칙
- 오라클 SQL은 대소문자를 구별하지 않는다. (SELECT와 select는 동일)
- SQL 문장은 ;(세미콜론)으로 끝나야 한다.
- SQL*Plus, SQLcl 등에서는 ;이 필요하지만, 일부 툴에서는 없어도 실행됨
- PL/SQL 블록에서는 /이 필요
- 일반적인 SQL 문은 ;이 없어도 실행될 수 있지만, 여러 개의 SQL 문이 있을 경우 구분을 위해 필요함
- 문자열 및 날짜 리터럴은 싱글쿼트('') 를 사용해야 한다. ('2024-01-01')
- 별칭(Alias)을 사용할 때 공백이 포함되면 큰따옴표("") 로 감싸야 한다.
4. 산술 연산자
오라클 SQL에서 지원하는 기본적인 산술 연산자는 다음과 같다.
연산자 의미 예제
+ | 덧셈 | SELECT salary + 1000 FROM employees; |
- | 뺄셈 | SELECT salary - 500 FROM employees; |
* | 곱셈 | SELECT salary * 1.1 FROM employees; |
/ | 나눗셈 | SELECT salary / 2 FROM employees; |
5. NULL 값 처리
- NULL 값이 포함된 산술 연산: NULL 값이 포함되면 연산 결과도 NULL이 된다.
SELECT salary + NULL FROM employees; -- 결과: NULL
- 문자열 연결 연산자(||)와 NULL: NULL 값이 포함되면 문자열로 처리된다.
SELECT 'Employee: ' || name || ' (ID: ' || NULL || ')' FROM employees; -- 결과: 'Employee: John (ID: )'
6. 연결 연산자
- || (문자열 연결 연산자): 두 개 이상의 문자열을 연결할 때 사용
SELECT first_name || ' ' || last_name AS full_name FROM employees;
- 결과 예시: John Doe, Jane Smith
7. 리터럴
- 오라클 SQL에서 리터럴(literal) 은 숫자, 문자열, 날짜 등의 고정된 값 을 의미한다.
- 문자 리터럴 및 날짜 리터럴: 싱글 쿼트(')로 감싼다.
SELECT 'Hello, World' FROM dual; SELECT TO_DATE('2024-02-09', 'YYYY-MM-DD') FROM dual;
열(Column) 이름 규칙
- 열 이름은 기본적으로 대문자로 표시되며, SQL 실행 시 별칭을 지정하지 않으면 자동으로 대문자로 변환된다.
- 숫자 데이터는 오른쪽 정렬되며, 문자와 날짜 데이터는 왼쪽 정렬된다.
인용부호(" vs q 대체 인용 부호)
- 큰따옴표("): 열 이름 또는 별칭에 공백이나 특수문자가 포함될 경우 사용
SELECT "Employee Name" FROM employees;
- 대체 인용 부호 q: 문자열 내에 '(싱글쿼트)를 포함해야 할 때 사용
SELECT q'[I'm a Developer]' FROM dual; -- 결과: I'm a Developer
8. DISTINCT 키워드
- DISTINCT는 중복을 제거하고 유일한 값만 출력할 때 사용
SELECT DISTINCT department_id FROM employees;
DISTINCT vs UNIQUE 차이점
- DISTINCT는 조회 시 중복 제거, UNIQUE는 제약 조건으로 사용됨.
-- DISTINCT 사용 예제 (중복 제거) SELECT DISTINCT job_id FROM employees; -- UNIQUE 사용 예제 (제약 조건) CREATE TABLE test_table ( id NUMBER UNIQUE, -- 중복 허용 안 함 name VARCHAR2(50) );
9. iSQL*Plus
iSQL*Plus란?
- 오라클에서 제공하는 SQL 실행 도구 중 하나
- 웹 기반 인터페이스로 SQL 문을 실행하고 결과를 볼 수 있음
인터페이스 구성 화면
- SQL 입력 창, 실행 결과 창, 명령 버튼 등이 포함됨
스크립트 로드
- @ 또는 START 명령어를 사용하여 SQL 스크립트를 실행 가능
@C:\sql_scripts\query.sql;
이력 페이지
- 실행했던 SQL 문장의 기록을 관리하여 다시 실행 가능