SQL - DQL(SELECT) 1

2경빈·2024년 3월 20일
0

DB - SQL

목록 보기
1/24
post-thumbnail

오늘 학원에서 SQL의 DQL을 배웠다.
추가되는 내용이 많아서 계속 갱신될 예정

공부한 내용을 정리해보자.

SELECT 절
[문법]
SELECT 컬럼, 컬럼, ...
FROM 테이블명;

  • 데이터를 조회할 때 사용
  • SELECT를 통해 얻은 결과를 RESULT SET라고 한다.
  • 조회하려는 칼럼은 반드시 FROM 절에 기술한 테이블에 존재해야한다.
    '*' = 테이블의 모든 컬럼 조회

Ex) SELECT EMP_ID, EMP_NAME
FROM EMPLOYEE;

산술연산
SELECT 절에 칼럼명 입력 부분에서 산술 연산을 할 수 있다.
산술 연산 중 NULL값이 존재할 경우 결과값은 무조건 NULL

--연봉 (월급x12)
Ex) SELECT SALARY*12
FROM EMPLOYEE;

칼럼명에 별칭 지정
[문법]
칼럼명 AS 별칭
칼럼명 AS "별칭 "
칼럼명 별칭
칼럼명 "별칭 "

  • 별칭 지정시 공백, 특수문자가 포함될 경우 반드시 큰따움표로 감싸야한다.

  • 사용이유 : 산술연산 등으로 인해 칼럼명이 지저분해질 경우, 깔끔하게 정리하기 위해서 사용.

    리터럴
    SELECT 절에 리터럴을 사용하면 테이블에 존재하는 데이터처럼 조회가 가능하다.
    리터럴은 RESULT SET의 모든 행에 반복적으로 출력된다.

Ex) SELECT EMP_NAME, SALARY AS 급여 , '단위(원)' AS 급여단위
FROM EMPLOYEE;

DISTINCT
칼럼에 포함된 중복 값을 한번씩만 표시, SELECT 절에 한번만 사용 가능
여러개 칼럼을 대상으로 하면 모든 칼럼값이 중복되어야 제거한다.

Ex) SELECT DISTINCT JOB_CODE

연결 연산자
여러 컬럼 값을 하나의 컬럼인 것처럼 연결하거나, 칼럼과 리터럴을 연결할 수 있다.

Ex) SELECT DISTINCT EMP_ID, EMP_NAME, SALARY ||'원' AS "급여"
FROM EMPLOYEE;

WHERE 절
[문법]
SELECT 칼럼, 칼럼, ..., 칼럼
FROM 테이블명
WHERE 조건식;

  • 조회하고자 하는 테이블에서 해당 조건에 만족하는 결과만을 조회하고자 할 때 사용한다.
  • 조건식에는 다양한 연산자들을 사용할 수 있다.

비교 연산자

대소 비교 : >, <, > >=, <= 
동등 비교 : =            
같지 않다 : !=, ^=, <>   

Ex) SELECT DISTINCT EMP_ID, EMP_NAME, DEPT_CODE, SALARY
FROM EMPLOYEE
WHERE SALARY >= '4000000';

논리 연산자
AND

OR

NOT
BETWEEN AND
[문법]
WHERE 비교대상컬럼 BETWEEN 하한값 AND 상한값

  • WHERE 절에서 사용되는 구문으로 범위에 대한 조건을 제시할 때 사용한다.
  • 비교대상컬럼 값이 하한값 이상이고, 상한값 이하인 경우 TRUE를 리턴한다.

Ex)

LIKE
[문법]
WHERE 비교대상칼럼 LIKE '특정 패턴';

  • 비교하려는 칼럼 값이 지정된 특정 패턴에 만족할 경우 TRUE를 리턴한다.
  • 특정 패턴에는 '%', '_'를 와일드카드로 사용할 수 있다.

'%' :

  • 비교대상칼럼 LIKE '문자%' = 비교대상칼럼 값 중에 '문자'로 시작하는 모든 행을 조회한다.
  • 비교대상칼럼 LIKE '%문자' = 비교대상칼럼 값 중에 '문자'로 끝나는 모든 행을 조회한다.
  • 비교대상칼럼 LIKE '%문자%' = 비교대상칼럼 값 중에 '문자'가 포함되어 있는 모든 행을 조회한다.

Ex)

'_' :

  • 비교대상칼럼 LIKE '_문자' = 비교대상칼럼 값 중에 '문자'앞에 무조건 한 글자가 오는 모든 행을 조회한다.
  • 비교대상칼럼 LIKE '__문자' = 비교대상칼럼 값 중에 '문자'앞에 무조건 두 글자가 오는 모든 행을 조회한다.

Ex)

IS NULL / IS NOT NULL
[문법]
WHERE 비교대상칼럼 IS [NOT] NULL;

  • 칼럼 값에 NULL이 있을 경우 NULL 값 비교에 사용된다.
    IS NULL : 비교대상칼럼 값이 NULL인 경우 TRUE를 리턴한다.
    IS NOT NULL : 비교대상칼럼 값이 NULL이 아닌 경우 TRUE 리턴한다.

Ex)

IN
[문법]
WHERE 비교대상칼럼 IN('값', '값', '값', ..., '값');

  • 값 목록 중에 일치하는 값이 있을 때 TRUE 리턴한다.

ORDER BY
[문법]
SELECT 칼럼, 칼럼, ..., 칼럼
FROM 테이블명
WHERE 조건식
ORDER BY 정렬시키고자 하는 칼럼명|별칭|칼럼 순번
[ASC|DESC][NULLS FIRST | NULLS LAST];

  • SELECT 문에서 가장 마지막에 기입하는 구문으로 실행 또한 가장 마지막에 진행된다
  • ASC : 오름차순으로 정렬한다. (ASC 또는 DESC 생략 시 기본값)
  • DESC : 내림차순으로 정렬한다.
  • NULLS FIRST : 정렬하고자 하는 칼럼 값에 NULL이 있는 경우 해당 데이터 값을 맨 앞으로 정렬한다.
  • NULLS LAST : 정렬하고자 하는 칼럼 값에 NULL이 있는 경우 해당 데이터 값을 맨 뒤로 정렬한다.

Ex)

GROUP BY
그룹 기준을 제시할 수 있는 구문
여러 개의 값들을 하나의 그룹으로 묶어서 처리할 목적으로 사용한다.

Ex)

HAVING
그룹에 대한 조건을 제시할 때 사용하는 구문(주로 그룹 함수의 결과를 가지고 비교 수행)

  • 실행 순서
    5: SELECT 조회하고자 하는 칼럼명 AS "별칭" | 계산식 | 함수식
    1: FROM 조회하고자 하는 테이블명
    2: WHERE 조건식
    3: GROUP BY 그룹 기준에 해당하는 칼럼명 | 계산식 | 함수식
    4: HAVING 그룹에 대한 조건식
    6: ORDER BY 정렬 기준에 해당하는 칼럼명 | 별칭 | 칼럼 순번

Ex)

profile
eggs before hatching

0개의 댓글