SQL 기본 문법

jiji·2023년 10월 20일
0

DataBase

목록 보기
2/14

DDL

CREATE TABLE문

CREATE TABLE employees ()

테이블 복사

CREATE TABLE tb_emp_copy
AS SELECT * FROM tb_emp;

제약조건 (constraints)

제약조건설명예시
PRIMARY KEY테이블의 각 행을 고유하게 식별할 수 있는 키PRIMARY KEY (id)
UNIQUE열의 모든 값이 고유한지 확인(중복 X)UNIQUE (email)
FOREIGN KEY다른 테이블의 기본 키에 대한 참조를 설정하여 관계를 정의FOREIGN KEY (department_id) REFERENCES departments(department_id)
CHECK열의 값이 특정 조건을 만족하는지 확인CHECK (salary > 0)
NOT NULL열의 값이 NULL이 아닌지 확인NOT NULL

ALTER TABLE

DROP TABLE

테이블 완전 삭제

DROP TABLE employees;

TRUNCATE TABLE

테이블 내 모든 데이터 삭제(오직 데이터만)

TRUNCATE TABLE employees

RENAME

테이블 이름 변경

RENAME employees TO staff;

DML

SELECT

SELECT first_name, last_name, salary FROM employees;

INSERT

INSERT INTO employees (...)
VALUES (...);

UPDATE

UPDATE employees
SET salary = salary * 1.1
WHERE employee_id = 1;

DELETE

DELETE FROM employees
WHERE employee_id = 1;

WHERE

연산자 우선순위

: NOT > AND > OR

부정

<> / != / ^=

논리 연산자 and / or / not

  • AND 두 개의 조건이 모두 참일 때 참입니다.
  • OR 두 개의 조건 중 하나 이상이 참일 때 참입니다.
  • NOT 조건의 결과를 부정합니다.

IN 연산자

여러 개의 값을 비교 - or 대체(또는)

NOT IN

WHERE job_id IN ('IT_PROG', 'SA_REP');

WHERE job_id NOT IN ('IT_PROG', 'SA_REP');

LIKE 연산자

  • 문자열 패턴을 검색(검에 주로 사용)
  • 와일드 카드 매핑 (%: 0글자 이상, _: 딱 1글자)
  • %: 0개 이상의 문자와 일치합니다. (글자수 상관 없음)
  • _: 한 개의 문자와 일치합니다. ( _개수 만큼)
WHERE EMP_NM LIKE '%심%';  --이름에 '심'이 포함

WHERE EMP_NM LIKE '이__'  -- 이름이 '이ㅇㅇ' 인 경우

NOT LIKE

AND EMP_NM NOT LIKE '이%'

BETWEEN 연산자

범위 지정

WHERE salary BETWEEN 5000 AND 8000;

IS NULL 연산자

: 이 연산자는 해당 열(column)의 값이 NULL인 행(row)을 선택합니다. 예를 들어, employees 테이블에서 commission_pct 열의 값이 NULL인 직원들을 선택하려면 다음과 같이 IS NULL을 사용할 수 있습니다.

SELECT employee_id, first_name, last_name
FROM employees
WHERE commission_pct IS NULL;

WHERE commission_pct IS NOT NULL;

WHERE commission_pct = NULL;

IFNULL

SELECT IFNULL(Column, "Null일 경우 대체 값") FROM 테이블명; 

GROUP BY

주요 집계 함수

함수 이름설명사용 예시
AVG열의 평균 값을 반환합니다.AVG(salary)
COUNT열의 행 수를 반환합니다. NULL 값은 카운트에 포함되지 않습니다.COUNT(employee_id)
MAX열의 최대 값을 반환합니다.MAX(revenue)
MIN열의 최소 값을 반환합니다.MIN(revenue)
SUM열의 합계 값을 반환합니다.SUM(salary)
STDDEV열의 표준 편차 값을 반환합니다.STDDEV(salary)
VARIANCE열의 분산 값을 반환합니다.VARIANCE(salary)

HAVING

HAVING 절은 SQL 쿼리에서 GROUP BY 절과 함께 사용되며, 그룹화된 결과에서 특정 조건을 만족하는 그룹만을 필터링하는 데 사용됩니다. 이는 WHERE 절이 개별 행을 필터링하는 것과 유사하지만, HAVING 절은 그룹화된 결과에 대한 필터링을 수행합니다.

SELECT
    department_id,
    COUNT(employee_id) AS employee_count,
    AVG(salary) AS average_salary
FROM
    employees
GROUP BY
    department_id
HAVING
    COUNT(employee_id) >= 5;

ORDER BY

💡 ASC 오름차순 (기본값) / DESC 내림차순

LIMIT

ORDER BY PRICE DESC
LIMIT 3  -- 위에서 3번째 까지 출력

LIMIT 2,5; -- 3번째 부터 5개 출력

0개의 댓글