-
SQL 분류
1)DDL
- 스키마, 도메인, 테이블, 뷰, 인덱스를 정의 / 변경 / 삭제
- CREATE / ALTER / DROP
2) DML
- 데이터의 실질적 처리
- SELECT, INSERT, DELETE, UPDATE
3)DCL
- 보안, 무결성, 회복, 병행 제어
- COMMIT, ROLLBACK, SAVEPOINT // GRANT, REVOKE (사용권한 부여 / 취소)
*
DDL - DB 관리자나 설계자가 사용
DML - 사용자와 시스템 간의 인터페이스 제공
DCL - DB 관리에 사용
DDL
1)CREATE
- CREATE SCHEMA [스키마명] AUTHORIZATION [사용자명]
- CREATE DOMAIN [도메인명] AS [데이터타입]
- CREATE VIEW [뷰명] AS [SELECT문]
- CREATE INDEX [인덱스명] ON [테이블명(속성명 DESC)]
- CREATE TABLE [테이블명] (이름 VARCHAR(15) NOT NULL)
*VARCHAR(15) = 15 '글자'
2)ALTER
- ALTER ADD: 속성(열) 추가
- ALTER ALTER: 속성의 디폴트값 변경
- ALTER DROP COLUMN : 속성 삭제
3)DROP
- CASCADE: 제거 대상을 참조하는 다른 개체를 모두 제거
- RESTRICT: 제거 대상을 참조하는 다른 개체가 존재시 제거 취소
4)TRUNCATE
- 전체 튜플 삭제 (테이블 초기화)
- ROLLBACK 불가
*DROP = 테이블 삭제, DELETE & TRUNCATE = 튜플 삭제 = 테이블 구조는 남아있음
DCL
GRANT [사용자등급] TO [사용자명]
REVOKE [사용자등급] FROM [사용자명]
GRANT [권한리스트] ON [개체] TO [사용자명]
권한: ALL, SELECT, INSERT, DELETE, UPDATE, ALTER
개체: 테이블명
*GRANT OPTION: 부여받은 권한 재부여
*CASCADE: 해당 사용자가 재부여한 권한들도 취소
DML
SELECT ~ FROM ~ WHERE
INSERT ~ INTO ~ VALUES
UPDATE ~ SET ~ WHERE
DELETE ~ FROM ~ WHERE
UNION: 합집합 (중복은 한번만)
UNION ALL: 합집합
INTERSECT: 교집합
EXCEPT: 차집합
INNER JOIN: EQUI JOIN (=) + NON-EQUI JOIN (>)
*중복항 한번만 표현= natural join
*조건 없는 inner join = cross join
WHERE a.no = b.no
FROM a NATURAL JOIN b
FROM a JOIN b USING(no)
OUTER JOIN
WHERE a.no = b.no(+) *left
WHERE a.no(+) = b.no *right
+ SELF JOIN
절차형 SQL
1)프로시저
DECLARE
BEGIN
- SQL (DML, DCL)
- CONTROL(조건문 반복문)
- EXCEPTION
- TRANSACTION
END
CREATE / DROP / EXECUTE or EXEC or CALL
2)트리거
DECLARE
EVENT (DML 감지)
BEGIN
- SQL (DML)
- CONTROL
- EXCEPTION
END
*DCL 사용 불가
*BEFORE AFTER
*CREATE TRIGGER 'ON'
3)사용자 정의 함수
DECLARE
BEGIN
- SQL (SELECT)
- CONTROL
- EXCEPTION
- RETURN(필수)
END
+DBMS 접속 기술: JDBC + ODBC + MyBatis (XML)
+SQL 테스트: DESCRIBE (DESC) + SHOW ERRORS
->정적: 커서, 반복문, 빠름, 사전 검사 가능
->동적: 문자열, 로직, 느림, 사전 검사 불가능
데이터 전환
- 데이터를 추출(Extract) -> 변환(Transfer) -> 적재(Loading) = ETL
'자격증 > 정처기' 카테고리의 다른 글
4-2 응용 sw 기초 기술 활용 (0) 2023.05.20 4-1 프로그래밍 언어 활용 (0) 2023.05.20 3-2 물리 데이터베이스 설계 (0) 2023.05.19 3-1 논리 데이터베이스 설계 (0) 2023.05.18 2-4 인터페이스 구현 (0) 2023.05.18