728x90
반응형
관계형 데이터베이스
- 데이터베이스의 발전
- 1960s, 파일 구조를 통해 데이터를 저장하고 관리
- 1970s, 계층형 데이터베이스, 망향 데이터베이스 상용화
- 1980s, 관계형 데이터베이스 상용화, oracle 사용 시작
- 1990s, 객체 관계형 데이터베이스로 발전
- 관계형 데이터베이스
- 1970, 영국의 수학자 E.F.Codd 박사가 처음 소개
- 정규화를 통한 이상현상 제거, 동시성 관리, 병행 제어를 통한 동시 공유
- SQL
- DML(데이터 조작어): SELECT, INSERT, UPDATE, DELETE
- DDL(데이터 정의어): CREATE, ALTER, DROP, RENAME
- DCL(데이터 제어어): GRANT, REVOKE
- TCL(트랜잭션 제어어): COMMIT, ROLLBACK
- TABLE
- 행과 칼럼의 2차원 구조를 가진 데이터 저장 장소
- 정규화: 테이블을 분할하여 데이터의 정합성을 확보하고, 불필요한 중복을 줄이는 프로세스
- ERD
- 구성요소: 엔티티, 관계, 속성
DDL
- 데이터 유형
- CHARACTER: 고정 길이 문자열 (CHAR)
- VARCHAR: 가변 길이 문자열
- NUMBRIC: 숫자 정보 (orale: NUMBER / SQL Server: 10가지 이상)
- DATETIME: 날짜와 시각 정보 (oracle: DATE, SQL Server: DATETIME)
- CREATE TABLE
- 테이블명, 칼럼명: 문자로 시작, 길이의 한계 존재, 예약어 사용 불가, 특수문자는 ‘_’, ‘$’, ‘#’ 만 허용
- 대소문자를 구분하지 않음
- DATETIME 유형은 별도로 크기를 지정하지 않음
- 문자 데이터는 최대 길이 표시
- CONSTRAINT(제약조건)
- PRIMARY KEY: 기본키 정의(고유키+NOT NULL)
- UNIQUE KEY: 고유키 정의(NULL 가능)
- NOT NULL
- CHECK: 범위 제한(논리식 지정)
- FOREIGN KEY: 참조 무결성 제약 옵션 선택 가능
- 테이블 구조 확인
- 오라클: DESCRIBE 테이블명; or DESC 테이블명;
- SQL Server: sp_helo ‘dbo.테이블명’
- CTAS(Create Table As Select)
- SELECT 문장을 활용해 테이블 생성
- 칼럼별로 데이터 유형을 재정의할 필요 없음, not null 제외한 제약조건 사라짐
- ALTER TABLE
- ADD/DROP COLUMN: 칼럼 추가/삭제
- 칼럼 위치 지정 불가
- 삭제 후 최소 하나 이상의 칼럼이 존재해야 함, 복구 불가능
- MODIFY COLUMN: 칼럼 수정
- 칼럼의 데이터 유형(널일때 가능), 디폴트 값, NOT NULL조건에대해 변경 가능
- 칼럼 크기 늘릴 수는 있지만 줄이기 불가 (아무 행도 없거나 NULL값만 있으면 줄이기 가능)
- RENAME COLUMN: oracle등 일부에서만 동작
- ADD/DROP CONSTRAINT: 제약조건 추가/삭제
- FK조건 설정
- ADD/DROP COLUMN: 칼럼 추가/삭제
- RENAME TABLE
- SQL Server: sp_rename을 이용해 테이블명 변경
- DROP TABLE
- CASCADE CONSTRAINT: 참조되는 제약조건에 대해서도 삭제
- SQL Server에서는 CASCADE 옵션이 존재하지 않으며, 삭제 전 참조하는 조건이나 테이블 우선 삭제
- TRUNCATE TABLE
- 테이블 자체가 아닌 모든 행 제거, 저장 공간을 재사용하도록 해제
- auto commit (복구 불가능)
DML
- INSERT, UPDATE, DELETE: 트랜잭션 처리를 별도로 해야 함
- SELECT: 데이터 조회
- DISTINCT: 중복제거
- 연산자
- 합성 연산자: ‘||’, CONCAT(A, B)
TCL
- 트랜잭션: 데이터베이스의 논리적 연산 단위
- COMMIT: 변경 작업 완료, 데이터베이스에 반영
- 변경된 행은 잠금(LOCKING)이 설정되어 다른 사용자가 변경할 수 없음 → 데이터베이스에 반영 시 잠금이 풀려 조작 가능
- SQL Server: 기본적으로 AUTO COMMIT 모드
- ROLLBACK: COMMIT 이전의 변경 사항 취소
- SAVEPOINT
- 현 시점에서 저장점까지 트랜잭션 일부만 롤백
WHERE절
- 조인 조건이나 결과 제한을 위한 조건 기술
- FTS(Full Table Scan): 조건이 없는 문장, 튜닝의 1차적 검토 대상
- 비교 연산자, SQL 연산자, 논리 연산자
- 우선순위: () → not → 비교 → and → or
- ROWNUM: 임시 일련번호, 고유한 키나 인덱스 값 생성 가능
- TOP 절: 출력되는 행의 수 제한 가능
- PERCENT: 처음 Expression%의 행만 반환
- WITH TIES: ORDER BY 절이 지정된 경우 사용 가능
함수
- 내장 함수
- 단일행 함수
- 문자형, 숫자형, 날짜형, 변환형, NULL 관련
- SELECT, WHERE, ORDER BY 절에 사용 가능
- SUBSTR(str, m, n): m 위치에서 n개의 문자 길이
- CEIL: 최소 정수, FLOOR: 최대 정수, ROUND: 반올림, TRUNC: 버림
- 명시적 변환, 암시적 변환(자동)
- NVL, ISNULL: 널이면 두번째 출력
- NULLIF: 같으면 널, 다르면 첫번째 출력
- COALESCE: 널이 아닌 최초의 표현식
- 다중행 함수
- 집계 함수: SUM, COUNT, AVG 등
- 통계 정보: NULL 값 제외하고 수행
- 그룹 함수
- GROUP BY: 별칭 사용 불가능
- HAVING: 집계 함수 사용 가능
- ORDER BY: oracle에서는 NULL을 가장 큰 값으로 간주, 별칭 사용 가능, 집계 함수 사용 가능
- 윈도우 함수
- 집계 함수: SUM, COUNT, AVG 등
- 단일행 함수
- 사용자 정의 함수
조인
- EQUI JOIN(등가조인)
- 두 컬럼 값이 정확하게 일치하는 경우
- WHERE절에 ‘=‘ 연산자 사용
- NON EQUI JOIN(비등가조인)
- 두 컬럼 값이 정확하게 일치하지 않는 경우
- WHERE절에 BETWEEN, >, ≤ 등 연산자 사용
728x90
반응형
'Note > Certificate' 카테고리의 다른 글
[SQLD] SQLD 자격검정 시험 핵심 요약 (feat. 노랭이책) (0) | 2021.06.21 |
---|---|
[SQLD] 2과목 요약 정리: 2-2 SQL 활용 (0) | 2021.06.21 |
[SQLD] 1과목 요약 정리: 1-2 데이터 모델과 성능 (0) | 2021.06.21 |
[SQLD] 1과목 요약 정리: 1-1 데이터 모델링의 이해 (0) | 2021.06.21 |
[ADsP 시험] 제29회 데이터분석 준전문가(ADsP) 독학 후기 (0) | 2021.06.19 |
Uploaded by Notion2Tistory v1.1.0