관계대수 : 절차적 방법
- 순수 관계 연산자
- Select(σ) : 주어진 조건을 만족하는 튜플 선택, 수평적 부분 집합(행 선택)
- Project(π) : 속성 리스트에 주어진 속성 값만을 추출, 수직적 부분 집합(열 선택)
- Join(⋈) : 두 릴레이션에서 연관된 튜플들을 결합하여 새로운 릴레이션 생성
- Division(÷) : 두 릴레이션 A, B에 대해 B 릴레이션의 모든 조건을 만족하는 튜플들을 릴레이션 A에서 분리해 내어 프로젝션 하는 연산
- 일반집합 연산자
- Union(∪)
- Intersection(∩)
- Difference(-)
- Cartesian Product(×)
: SELECT * FROM A, B → 튜플 수는 곱하기/ 속성 수는 더하기
- SELECT문과 관계대수
SELECT 속성 FROM 테이블 WHERE 조건 ; ↔ π 속성 ( σ 조건 (테이블) ) - INNER JOIN과 관계대수
SELECT SNO, NAME FROM T1 INNER JOIN T2 ON T1.SNO = T2.SNO ;
↔ π SNO, NAME ( T1 ⋈ T1.SNO = T2.SNO T2 ) - Division 예제 1
- Division 예제 2
관계 해석 : 비절차적 방법(결과만 명시), 수학의 Predicate Calculus에 기반을 둠
- 연산자 : OR(∨), AND(∧), NOT(⌉)
- 정량자 : For All(∀), At Least(∃)
DDL(Data Definition Language)
- CREATE : 테이블/인덱스/뷰/트리거 생성
- CREATE TABLE 테이블명
- CREATE INDEX 인덱스명 ON 테이블명(칼럼1, 칼럼2)
- CREATE VIEW 뷰명 AS SELECT - FROM - WHERE -
- CREATE TRIGGER 트리거명 BEFORE/AFTER 삽입/삭제/갱신 ON 테이블명 (FOR EACH ROW)
- DROP : 테이블/뷰/인덱스 삭제
- DROP TABLE 테이블명
- DROP VIEW 뷰명
- DROP INDEX 인덱스명
- ALTER : 속성(칼럼) 변경
- 속성 추가 : ALTER TABLE 테이블명 ADD
- 속성 변경 : ALTER TABLE 테이블명 MODIFY
- 속성 삭제 : ALTER TABLE 테이블명 DROP COLUMN
- 인덱스 변경 : ALTER INDEX 인덱스명 RENAME TO/REBUILD/UNUSABLE
- TRUNCATE : 테이블 초기화(구조 남아있음)
- TRUNCATE [TABLE] 테이블명
DML(Data Manipulation Language)
- INSERT : 명시된 속성에 값 삽입
- INSERT INTO TABLE(COL1, COL2) VALUES('A', 1)
- 주소록 테이블에서 거래처번호가 null이 아닌 레코드를 모두 거래처 테이블에 삽입한다.
INSERT INTO 거래처 SELECT * FROM 주소록 WHERE 거래처번호 IS NOT NULL ;
- UPDATE : 튜플 변경
- UPDATE TABLE SET 변경내용 WHERE 조건
- '인사'로 시작하는 모든 부서에 속한 직원들의 봉급을 10% 올리고자한다.
UPDATE 직원 SET 봉급 = 봉급 * 1.1 WHERE 부서번호 IN (
SELECT 부서번호 FROM 부서 WHERE 부서명 LIKE '인사%') ;
- DELETE : 튜플(행) 삭제
- DELETE FROM TABLE WHERE 조건
- SELECT
- SELECT * FROM TABLE WHERE 조건 AND/OR 조건
GROUP BY - HAVING 집계함수(SUM, AVG, COUNT, MIN, MAX)
ORDER BY - ASC/DESC ; - 중복을 제거하고 검색 : SELECT DISTINCT 속성 FROM TABLE ;
- UNION은 중복 제거/ UNION ALL은 중복 안 제거 → 아래에 이어 붙이는 것(칼럼 수 같아야 함)
- COUNT(*)은 행을 셈/ COUNT(칼럼명)은 NULL값을 제외한 행을 셈
- INNER JOIN/ OUTER JOIN/ CROSS JOIN
- WHERE 속성 IN ('A', 'B')/ NOT IN ('A', 'B')
- 하나라도 높은 : WHERE 속성 > ANY (SELECT 속성 FROM TABLE WHERE 조건) ;
모두 높은 : WHERE 속성 > ALL (SELECT 속성 FROM TABLE WHERE 조건) ; - 해당 조건에 포함되는 : WHERE EXISTS (SELECT * FROM TABLE WHERE 조건)
해당 조건에 포함되지 않는 : WHERE NOT EXISTS (SELECT * FROM TABLE WHERE 조건) - GROUP BY 부서번호 → 부서번호가 NULL값인 것도 추출
WHERE 부서번호 IN → NULL값 인식 불가, 추출 불가
- SELECT * FROM TABLE WHERE 조건 AND/OR 조건
DCL(Data Control Language)
- GRANT : 데이터베이스 사용자의 사용 권한을 부여
- GRANT 권한 ON 테이블명 TO 사용자명
- GRANT 권한 ON 테이블명 TO PUBLIC (모든 사용자에게 권한 부여)
- WITH GRANT OPTION : 다른 사용자에게 해당 권한을 부여할 수 있는 권한도 부여
- REVOKE : 이미 부여된 데이터베이스 객체의 권한을 취소
- REVOKE 권한 ON 테이블명 FROM 사용자명
- CASCADE : 객체가 다른 객체에게 부여한 권한까지 모두 회수
'Data Analysis > 정보처리기사' 카테고리의 다른 글
[수제비 2022 기출 1~3회] 출제 개념 정리 (0) | 2024.04.27 |
---|---|
[시험장 들어가기 전] 꼭 암기해야 할 필수 개념 정리 (0) | 2024.04.27 |
[수제비 2021 기출 1~3회] 출제 개념 정리 (1) | 2024.04.26 |
[수제비 2020 기출 1~4회] 출제 개념 정리 (1) | 2024.04.26 |
[수제비 Final 실전모의고사 6~10회] 출제 개념 정리 (0) | 2024.04.24 |