[Sec 1. 기본 SQL 작성]
SQL문의 특징
- 여러 줄에 나누어 입력이 가능하다.
- 문장 끝에는 세미콜론(;)을 붙인다.
- 키워드는 대소문자를 구분하지 않는다.
- 정렬순서의 기본값은 오름차순이다.
DDL (데이터 정의어)
- 객체 유형
: 스키마, 도메인, 테이블, 뷰, 인덱스 - 조작 방법
- CREATE : 데이터베이스 객체 생성 (CREATE .. AS ..)
- ALTER : 기존에 생성된 데이터베이스 객체의 구조 변경
- DROP : 데이터베이스 객체 삭제
- TRUNCATE : 테이블의 모든 데이터 삭제, 구조만 남김
- 제약 조건
: PRIMARY KEY(개체 무결성), FOREIGN KEY(참조 무결성), UNIQUE, NOT NULL, CHECK
DML (데이터 조작어)
- 조작 방법
- SELECT : 데이터 조회
SELECT * FROM TABLE / WHERE .. AND .. / GROUP BY .. HAVING .. / ORDER BY ..
** Wild Card : %, _ → LIKE과 함께 쓰임 - UPDATE : 테이블의 기존 데이터 갱신
UPDATE TABLE SET .. WHERE - INSERT : 테이블에 데이터 추가
INSERT INTO TABLE(A, B) VALUES (’A’, ‘B’) - DELETE : 테이블에서 데이터 삭제
DELETE FROM TABLE WHERE
- SELECT : 데이터 조회
DCL (데이터 제어어)
- 조작 방법
- GRANT : 사용자에게 권한을 부여
GRANT [주고자 하는 권한] ON [테이블] TO [사용자] (WITH GRANT OPTION)
** WITH GRANT OPTION : 지정된 권한을 다른 유저에게 부여할 수 있도록 함 - REVOKE : 사용자로부터 권한을 회수
REVOKE [회수하고자 하는 권한] ON [테이블] TO [사용자] (CASCADE)
** CASCADE : 사용자가 부여한 모든 사용자의 권한도 같이 회수
- GRANT : 사용자에게 권한을 부여
TCL (트랜잭션 제어어)
- COMMIT : 트랜잭션 정상 처리 시, 그 결과를 데이터베이스에 반영하는 명령어
- ROLLBACK : 오류 발생 시 변경 사항을 되돌리고 데이터를 이전 상태로 복구하는 명령어
- SAVEPOINT : 트랜잭션 중 특정 지점에 대해 저장점을 생성하는 명령어
트랜잭션 : 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위, 또는 한꺼번에 모두 수행되어야 할 일련의 연산들
- 성질(ACID)
- 원자성(Atomicity) : 트랜잭션 내 모든 연산은 모두 반영/모두 미반영이어야 한다.
- 일관성(Consistency) : 트랜잭션 완료 후에는 DB가 일관된 상태를 유지해야 한다.
- 격리성·독립성(Isolation) : 동시에 실행되는 여러 트랜잭션은 서로 간섭할 수 없다.
- 영속성(Durability) : 트랜잭션이 한 번 COMMIT되면, 그 결과는 영구적으로 반영된다.
- 상태
- 활동(Active) : 트랜잭션이 실행 중이지만 아직 완료되지 않은 상태
- 부분 완료(Partially Commited) : 트랜잭션의 마지막 연산이 실행된 직후의 상태, 모든 연산의 처리는 끝났지만 최종 결과를 데이터베이스에 반영하지 않은 상태
- 완료(Committed) : 트랜잭션이 성공적으로 완료되어 변경 사항이 데이터베이스에 영구적으로 반영된 상태
- 실패(Failed) : 트랜잭션 실행에 오류가 발생하여 중단된 상태
- 철회(Aborted) : 트랜잭션이 실패하여 롤백이 이루어진 상태, 트랜잭션 재시작 가능
[Sec 2. 고급 SQL 작성]
- 집합 연산자 : 여러 개의 SQL 쿼리 결과를 결합하는 데 사용
조인을 사용하지 않고 연관된 데이터 조회
SELECT 절의 칼럼수가 동일해야, 같은 위치에 있는 칼럼들은 데이터 타입 호환이 가능해야
- 종류 : UNION, UNION ALL, INTERSECT, EXCEPT(MINUS)
- 조인 : 두 개 이상의 테이블을 결합하여 데이터를 검색하는 방법
관련 있는 칼럼 기준으로 행을 합쳐주는 연산
주로 Primary Key 또는 Foreign Key를 이용하여 두 테이블 연결
- Inner Join : 공통으로 존재하는 데이터만 추출, 공통 칼럼 별개로
- Natural Join : 동일한 이름의 칼럼을 기준으로 자동 조인, 공통 칼럼 하나로
- Full Outer Join : 좌측 및 우측 테이블의 데이터 모두 포함, 중복 데이터는 하나로
- Left Outer Join : 좌측 테이블 기준 외부 조인
- Right Outer Join : 우측 테이블 기준 외부 조인
- Cross Join : 두 테이블 데이터의 모든 조합을 변환, 조인 조건이 없는 조인
- 서브쿼리 : SELECT 문 안에 또 다른 SELECT 문이 포함된 형태
- 그룹 내 집계 함수(Aggregation Function) : 여러 행의 값을 집계하여 단일 값으로 반환하는 함수
- SELECT절이나 HAVING절에만 사용 가능
- 종류 : SUM, AVG, MAX, MIN, COUNT
- OLAP(실시간 데이터 분석 처리, On-Line Analytical Processing)
- 롤업(Roll-Up) : 작은 단위 → 큰 단위 이동
- 드릴다운(Drill-Down) : 큰 단위 → 작은 단위 세분화
- 드릴어크로스(Drill-Across) : 큐브 간 전환
- 드릴스루(Drill-Through) : 상세 데이터에 접근
- 슬라이스(Slice, Slicing) : 축을 중심으로 차원 자르기
- 다이스(Dice, Dicing) : 부분 큐브 선택
- 피벗(Pivot) : 데이터 축 회전
'Data Analysis > 정보처리기사' 카테고리의 다른 글
| [4과목 프로그래밍 언어 활용] 01. 서버 프로그램 구현 (0) | 2024.04.19 |
|---|---|
| [3과목 데이터베이스 구축] 04. SQL 응용 (0) | 2024.04.19 |
| [3과목 데이터베이스 구축] 02. 물리 데이터베이스 설계 (1) | 2024.04.18 |
| [3과목 데이터베이스 구축] 01. 논리 데이터베이스 설계 (0) | 2024.04.18 |
| [2과목 소프트웨어 개발] 05. 인터페이스 구현 (0) | 2024.04.18 |