Post

데이터베이스 구축 - SQL 응용

#절차형 SQL

절차 지향적인 프로그램이 가능한 SQL

종류: 트리거, 사용자 정의 함수, 프로시저

#SQL

SQL 문법 분류

■ 데이터 정의어 (DDL)

테이블이나 관계의 구조를 생성하는데 사용
CREATE, ALTER, DROP, TRUNCATE

■ 데이터 조작어 (DML)

데이터베이스에 저장된 자료들을 입력, 수정, 삭제, 조회하는 언어
SELECT, INSERT, UPDATE, DELETE

■ 데이터 제어어 (DCL)

데이터 보안, 무결성 유지, 병행 제어, 회복을 위해 사용하는 제어용 언어
GRANT, REVOKE

WHERE문 조건

■ 비교 : =, <, <=, >, >=, <> (<>: 다름)

■ 범위: BETWEEN ~ AND

■ 집합: IN, NOT IN

■ 패턴: LIKE

  • LIKE와 같이 사용하는 와일드 문자
    • +: 문자열 연결
    • %: 0개 이상의 문자열과 일치
    • []: 1개의 문자와 일치
    • [^]: 1개의 문자와 불일치
    • _: 특정 위치의 1개의 문자와 일치

■ NULL: IS NULL, IS NOTE NULL

■ 복합조건: AND, OR, NOT

DML (Data Manipulation Language)

■ SELECT

데이터의 내용을 조회할 때 사용하는 명령어

SELECT [ALL | DISTICT] 속성명1, 속성명2...
  FROM 테이블명, 테이블명2...
[WHERE 조건]
[GROUP BY 속성명1, 속성명2...]
[HAVING 그룹조건]
[ORDER BY 속성 [ABS | DESC]]
  • SELECT절: 검색하고자 하는 속성명, 계산식
    • DISTINCT: 중복 제거
  • FROM절: 테이블명
  • WHERE절: 검색할 조건
  • GROUP BY절: 속성값을 그룹으로 분류할 때
  • HAVING절: GROUP BY에 의해 분류한 그룹에 대한 조건
  • ORDER BY절: 정렬 (ASCDESC)

■ INSERT

데이터의 내용을 삽입할 때 사용하는 명령어

속성과 데이터 개수, 데이터 타입이 일치해야 함

INSERT INTO 테이블명(속성명)
VALUES (데이터)

■ UPDATE

데이터의 내용을 변경할 때 사용하는 명령어

WHERE 절을 통해 어떤 조건이 만족할 경우에만 특정 칼럼의 값을 수정하는 용도로 많이 사용됨

UPDATE 테이블명
SET 속성명 = 데이터
WHERE 조건

■ DELETE

데이터의 내용을 삭제할 때 사용하는 명령어

모든 레코드를 삭제할 때는 WHERE절 없이 DELETE만 사용 (레코드를 삭제해도 테이블이 남아있어 테이블 전체를 삭제하는 DROP 명령어와는 다름)

DELETE FROM 테이블명
WHERE 조건

DCL (Data Control Language)

■ 데이터 제어어 기능

  • 데이터 보안
  • 무결성 유지
  • 병행수행 제어
  • 회복

■ GRANT

사용자 권한 부여

WITH GRANT OPTION: 다른 사용자에게 부여할 수 있는 권한

GRANT 권한 TO 사용자
GRANT 권한 ON 테이블 TO 사용자
GRANT 권한 ON 테이블 TO 사용자 WITH GRANT OPTION

■ REVOKE

사용자 권한 회수

CASCADE CONSTRAINTS: WITH GRANT OPTION으로 부여된 권한까지 회수 가능

REVOKE 권한 FROM 사용자
REVOKE 권한 ON 테이블 FROM 사용자
REVOKE 권한 ON 테이블 TO 사용자 CASCADE CONSTRAINTS

■ COMMIT

트랜잭션 확정

■ ROLLBACK

업데이트 오류 발생 시 이전 상태로 되돌림

■ SAVEPOINT

세이브 포인트 지정

INSERT INTO A VALUES(1);
COMMIT; -- COMMIT 명령어 동작 시 기존 명령어가 DB에 영구적으로 삽입
INSERT INTO A VALUES(2)
ROLLBACK; -- ROLLBACK 명령어 동작시 COMMIT 이후 명령어는 원상 복구

윈도 함수

행과 행 간의 관계를 쉽게 정의하기 위해 만든 함수

SELECT 함수명
  OVER
  ([PARITITION BY 칼럼1, ...]
  [ORDER BY 컴럼A, ...])
FROM 테이블명

■ 집계 함수

  • COUNT: 복수 행의 줄 수를 구하는 함수
  • SUM: 복수 행의 해당 칼럼에 대한 합계를 구하는 함수
  • AVG: 복수 행의 해당 칼럼간의 평균에 대한 평균을 구하는 함수
  • MAX: 최댓값을 구하는 함수
  • MIN: 최솟값을 구하는 함수
  • STDDEV: 표준편차를 구하는 함수
  • VARIANCE: 분산을 구하는 함수
This post is licensed under CC BY 4.0 by the author.