728x90
반응형
SMALL
DQL(Data Query Language) - SELECT
데이터를 조회하는 SQL문으로 특정 테이블의 데이터를 조회할 수 있다. 그렇게 조회된 결과를 Result Set이라고 한다.
표현법
SELECT 조회할 컬럼 정보 (컬럼명, 리터럴, 함수식, 연산식, * 등)
FROM 테이블명
WHERE 조건식
GROUP BY 그룹화
HAVING 그룹화 후 그룹에 대한 조건
ORDER BY 정렬조건
SELECT문에서 SELECT 절과 FROM절을 제외한 나머지 절은 생략이 가능한 절들이다. 하지만 순서가 바뀌면 안 된다.
SELECT문 각 절의 순서
1 | FROM | 가장 먼저 조회할 테이블을 찾는다. |
2 | WHERE | 해당 테이블에서 데이터를 조회하기 전 조건을 설정한다. |
3 | GROUP BY | 그룹화를 설정한다. |
4 | HAVING | 그룹에 대한 조건을 설정한다. |
5 | SELECT | 조회할 컬럼을 작성한다. |
6 | ORDER BY | 조회된 데이터들의 정렬 조건을 설정한다. |
SELECT문 예시
전체 데이터 조회
SELECT * FROM EMPLOYEE;
* 기호를 사용하여 해당 테이블의 모든 컬럼을 조회할 수 있다.
특정 컬럼만 조회
SELECT EMP_NAME, EMAIL, PHONE, HIRE_DATE, SALARY
FROM EMPLOYEE;
조회할 컬럼들을 쉼표(,)로 구분지어 나열하여 특정 컬럼들만 조회할 수 있다.
중복 없이 조회
컬럼에 포함된 데이터 중 중복된 값이 있을 경우 중복 값을 제외하고 출력할 때는 DISTINCT 키워드를 사용하여 조회할 수 있다.
SELECT DISTINCT JOB_CODE
FROM EMPLOYEE;
연산과 별칭 사용하기
SELECT
EMP_NAME AS 사원명,
SALARY AS 급여,
(SALARY * 12) AS 연봉,
BONUS AS 보너스,
((SALARY + (SALARY * BONUS)) * 12) AS "보너스 포함 연봉"
FROM EMPLOYEE;
컬럼에는 기본 컬럼명 뿐만 아니라 산술연산도 사용할 수 있고 해당 컬럼 혹은 연산식에 별칭을 부여할 수 있다.
- 별칭을 사용하는 4가지 방법
- 컬럼명 별칭
- 컬럼명 AS 별칭
- 컬럼명 "별칭"
- 컬럼명 AS "별칭"
WHERE 절을 사용하여 조건 설정
비교연산자 구분 | 연산자 | |
대소비교 | > < >= <= | |
동등비교 | 같은지 비교 | = |
다른지 비교 | != <> ^= |
SELECT EMP_NAME AS "사원명", SALARY AS "급여", DEPT_CODE AS "부서코드"
FROM EMPLOYEE
WHERE DEPT_CODE = 'D1';
SELECT EMP_NAME AS "사원명", SALARY AS "급여", DEPT_CODE AS "부서코드"
FROM EMPLOYEE
WHERE DEPT_CODE<> 'D1';
-- WHERE DEPT_CODE ^= 'D1';
-- WHERE DEPT_CODE != 'D1';
추가로 위의 결과들 중에 NULL 값들이 표시되고 있는 것 결과들이 있다. 이렇게 NULL이 포함되지 않은 데이터를 조회하고 싶을 때는 NULL 관련 비교 연산자를 사용할 수 있다.
=> NULL인 경우의 데이터는 IS NULL, NULL이 아닌 경우의 데이터는 IS NOT NULL로 비교 할 수 있다.
SELECT
EMP_NAME AS 사원명,
SALARY AS 급여, BONUS AS 보너스,
(SALARY * 12) AS 연봉,
((SALARY + (SALARY * BONUS)) * 12) AS "보너스 포함 연봉"
FROM EMPLOYEE
WHERE BONUS IS NOT NULL;
리터럴 사용
리터럴은 값 자체를 의미한다. 다음과 같이 사용할 수 있다.
SELECT EMP_NAME AS "사원명", SALARY AS "급여", '원' AS "원"
FROM EMPLOYEE;
728x90
반응형
LIST
'데이터베이스' 카테고리의 다른 글
[ORACLE] 함수 - 단일행 함수와 그룹 함수 (0) | 2025.03.12 |
---|---|
[ORACLE] SQL - ORDER BY (ASC/DESC) (0) | 2025.03.12 |
[ORACLE] SELECT - 연산자, 연산자 우선순위 (0) | 2025.03.12 |
[ORACLE] SQL - DQL, DML, DDL, DCL, TCL (0) | 2025.03.11 |
[ORACLE] 관계형 데이터베이스(RDB) (0) | 2025.02.28 |