📘 7단원 : SQL 응용 - 데이터베이스 기본, 응용 SQL 작성하기, 절차형 SQL 활용하기, 데이터 조작 프로시저 최적화
📘 트랜잭션의 개념
인가받지 않은 사용자로부터 데이터를 보호하기 위해 DBMS가 가져야 하는 특성이자, 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
🐥 ACID
🐥 활부완실철
== 이번달 할부(활부)금 완전 싫죠~(완실철)
🐥 커롤체
🐥 로 낙타다
📘 로그 기반 회복 기법
🐥 회로체크
📘 체크 포인트 회복 기법 : 장애 방생 시 검사점 이후에 처리된 트랜잭션만 장애 발생 이전의 상태로 복원
📘 그림자 페이징 회복 기법 : 데이터베이스 트랜잭션 수행 시 복제본을 생성하여 복구
데이터를 정의하는 언어
📘 도메인 : 하나의 속성이 가질 수 있는 원자값들의 집합
📘 스키마 : 데이터베이스의 구조, 제약조건 등을 담고 있는 기본적인 구조
📘 테이블 : 데이터의 저장 공간
📘 뷰 : 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
📘 인덱스 : 검색을 빠르게 하기 위한 데이터 구조
🐥 도스테뷰인
🐥 순해비함 단결클
CRATE + ALTER + DROP + TRUNCATE
🐥 크알드트
== 크리스마스를 위한 계란 알 두 트럭
❤️ 컬럼 추가
ALTER TABLE 사원 ADD 전화번호 VARCHAR(11) UNIQUE;
❤️ 컬럼 수정
ALTER TABLE 사원 MODIFY 전화번호 VARCHAR(11) UNIQUE;
❤️ 컬럼 삭제
ALTER TABLE 사원 DROP 생년월일;
❤️ 테이블 삭제
DROP TABLE 사원;
❤️ 테이블 내 데이터 삭제
TRUNCATE TABLE 사원;
🧡 뷰 생성
CREATE VIEW 사원뷰 AS
SELECT 사번, 이름
FROM 사원
WHERE 성별 = 'M';
🧡 뷰 교체
CREATE OR REPLACE VIEW 사원 AS
조회쿼리;
🧡 뷰 삭제
DROP VIEW 사원;
💛 인덱스 생성
CREATE INDEX 사번인덱스 ON 사원(사번);
💛 인덱스 수정
ALTER INDEX 사번인덱스 ON 사원(사번);
💛 인덱스 삭제
DROP INDEX 사번인덱스;
데이터 조작어
SELECT + INSERT + UPDATE + DELETE
🐥 세인업데
== 내 친구 세인이 집에 업데
📘 패턴 : LIKE
📘 내부 조인
SELECT A.컬럼, A.컬럼2, B.컬럼1, B.컬럼2
FROM 테이블1 A JOIN 테이블2 B
ON 조인조건
WHERE 검색조건
📘 왼쪽 외부 조인
SELECT A.컬럼, A.컬럼2, B.컬럼1, B.컬럼2
FROM 테이블1 A LEFT JOIN 테이블2 B
ON 조인조건
WHERE 검색조건
💚 데이터 삽입
INSERT INTO 학생(학번, 성명, 학년, 수강과목)
VALUES (6677,'장길산',3,'수학');
💚 데이터 변경
UPDATE 학생
SET 주소 = '인천'
WHERE 이름 = '장길산';
💚 데이터 삭제
DELETE FROM 학생
WHERE 이름 = '장길산';
데이터 제어어
GRANT + REVOKE
💙 권한 부여
GRANT UPDATE ON 학생 TO 장길산;
💙 권한 회수
REVOKE UPDATE ON 학생 FROM 장길산;
총합, 평균 등의 데이터 분석을 위해 복수 행 기준의 데이터를 모아서 처리하는 것을 목적으로 하는 다중 행 함수
📘 ROLLUP 함수
SELECT DEPT, JOB, SUM(SALARY)
FROM DEPT_SALARY
[WHERE~]
GROUP BY ROLLUP(DEPT, JOB);
[HAVING~][ORDER BY~]
📘 CUBE 함수 : 결합 가능한 모든 값에 대해 다차원 집계를 생성하는 그룹 함수
📘 GROUPING SETS 함수 : 집계 대상 컬럼들에 대한 개별 집계를 구하고 순서와 무관한 결과 도출 가능
📘 윈도 함수 개념
데이터베이스를 사용한 온라인 분석 처리 용도로 사용하기 위해 표준 SQL에 추가된 함수
OLAP 함수라고도 부른다
📘 윈도 함수 분류
🐥 순행비
선언부 + 시작/종료부 + 제어부 + SQL + 예외부 + 반환부
🐥 디비컨 SET
== DB 컨닝 세트
선언부 + 시작/종료부 + 제어부 + SQL + 예외부 + 실행부
🐥 디비컨 SER
== DB 컨설팅
선언부 + 이벤트부 + 시작/종료부 + 제어부 + SQL + 예외부
🐥 디이비컨 SE
== D~B 컨닝 세트
📘 옵티마이저 개념
옵티마이저는 SQL을 가장 빠르고 효율적으로 수행할 최적의 처리경로를 생성해주는 DBMS의 핵심 내부 엔진
📘 옵티마이저 유형
규칙기반 옵티마이저(RBO) + 비용기반 옵티마이저(CBO)
📘 힌트 사용
옵티마이저가 항상 최선의 실행 계획을 수립할 수 없어 명시적인 힌트를 제공한다.
< DDL 함수 >
❤️ 컬럼 추가
ALTER TABLE 사원 ADD 전화번호 VARCHAR(11) UNIQUE;
❤️ 컬럼 수정
ALTER TABLE 사원 MODIFY 전화번호 VARCHAR(11) UNIQUE;
❤️ 컬럼 삭제
ALTER TABLE 사원 DROP 생년월일;
❤️ 테이블 삭제
DROP TABLE 사원;
❤️ 테이블 내 데이터 삭제
TRUNCATE TABLE 사원;
🧡 뷰 생성
CREATE VIEW 사원뷰 AS
SELECT 사번, 이름
FROM 사원
WHERE 성별 = 'M';
🧡 뷰 교체
CREATE OR REPLACE VIEW 사원 AS
조회쿼리;
🧡 뷰 삭제
DROP VIEW 사원;
💛 인덱스 생성
CREATE INDEX 사번인덱스 ON 사원(사번);
💛 인덱스 수정
ALTER INDEX 사번인덱스 ON 사원(사번);
💛 인덱스 삭제
DROP INDEX 사번인덱스;
< DML 함수 >
💚 데이터 삽입
INSERT INTO 학생(학번, 성명, 학년, 수강과목)
VALUES (6677,'장길산',3,'수학');
💚 데이터 변경
UPDATE 학생
SET 주소 = '인천'
WHERE 이름 = '장길산';
💚 데이터 삭제
DELETE FROM 학생
WHERE 이름 = '장길산';
< DCL 함수 >
💙 권한 부여
GRANT UPDATE ON 학생 TO 장길산;
💙 권한 회수
REVOKE UPDATE ON 학생 FROM 장길산;
DDL 명령어에 CRATE / 행 순서 함수에 LEG 오타 있네요