2020. 8. 13. 11:42ㆍSQL/SQLD - SQL 기본 및 활용
# SQL 네 번째 : 기출문제 오답 및 개념 정리
#2019년 3월 16일 시행 시험 개념및 오답 정리 - SQL 기본 및 활용
1. ALTER문 구성
-ALTER TABLE 테이블명 ADD COLUMN(칼럼 추가)
-ALTER TABLE 테이블명 DROP COLUMN(칼럼 삭제)
테이블에서 필요 없는 칼럼을 삭제, 데이터가 있으나 없으나 삭제가능
한 번에 하나의 칼럼만 삭제 가능하며 칼럼 삭제 후 최소 하나 이상의 칼럼이 테이블에 존재해야한다.
-ALTER TABLE 테이블명 MODIFY COLUMN(칼럼 수정)
테이블에 존재하는 칼럼의 데이터 유형, 디폴트 값 NOT NULL 제약조건에 대한 변경을 한다.
-ALTER TABLE 테이블명 RENAME COLUMN TO(칼럼명 수정)
-ALTER TABLE 테이블명 ADD CONSTRAINT(제약 조건 추가)
-ALTER TABLE 테이블명 DROP CONSTRAINT(제약 조건 삭제)
2. SQL문 종류
1) DDL : Data Definition Language (테이터 정의어)
테이블과 같은 데이터 구조, 데이터 틀을 정의하는데 사용되는 명령어, 구조를 생성, 변경, 삭제
명령어 : CREATE, ALTER, DROP, RENAME, TRUNCATE
2) DML : Data Manipulation Lan-guage(데이터 조작어)
데이터를 조회, 검색, 입력, 수정, 삭제를 수행하는 명령어
명령어 : SELECT, INSERT, UPDATE, DELETE
3) DCL : Data Control Language (데이터 제어어)
데이터베이스에 접근, 객체들을 사용하도록 권한을 주고 회수하는 명령어
명령어 : GRANT, REVOKE
4) TCL : Transaction Control Lan-guage(트렌젝션 제어어)
논리적인 작업 단위를 묶어서 데이터들을 제어하는 명령어
명령어 : COMMIT, ROLLBACK, SAVEPOINT
3. RANGE BETWEEN start_point AND end_point
- start_point는 end_ponint와 같거나 작은값이 들어간다.
- Default 값은 RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW이다.
- UNBOUNDED PRECEDING : star_point만 들어갈 수 있으면, 파티션의 첫 번째 로우이다.
- UNBOUNDED FOLLOWING : end_point만 들어갈 수 있으며, 파티션의 last row가 된다.
- CURRENT ROW : star, end_point 둘 다 가능, 윈도우는 CURRENT ROW에서 start하거나 end 한다.
4. key의 개념
key는 데이터 베이스에서 조건에 만족하는 튜플을 찾거나 순서대로 정렬할 때 다른 튜플들과 구별할 수 있는 유일한 기준이 되는 속성이다.
key의 종류
1) 기본키(Primary key)
-후보키 중에서 선택한 Main key로 한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성값이다.
-Null 값을 가질 수 없다(개체 무결성의 첫 번째 조건)
-기본키로 정의된 속성에는 동일한 값이 중복되어 저장될 수 없다.(개체 무결성의 두 번째 조건)
2)후보키(Candidate key)
-릴레이션을 구성하는 속성들 중에서 튜플을 유일하게 식별할 수 있는 속성들의 부분 집합이다.
-모든 릴레이션은 반드시 하나 이상의 후보키를 가져야 한다.
-릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족한다.
3)대체키(Alternate key)
-후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키들을 의미한다.
-보조키라고도 불린다.
4)슈퍼키(Super Key)
-한 릴레이션 내에 존재하는 속성들의 집합으로 구성된 키이다.
-릴레이션을 구성하는 모든 튜플 중 슈퍼키로 구성된 속성의 집합에서는 동일한 값이 나타나지 않는다.
즉, 릴레이션을 구성하는 모든 튜플에 대해 유일성은 만족하지만 최소성은 만족하지 않는다.
5)외래키(Foreign key)
-관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의
기본키와 같은 값을 가지는 R1 릴레이션의 속성을 의미
-외래키는 참조되는 릴레이션의 기본키와 대응되어 릴레이션 간에 참조 관계를 표현하는 데 사용된다.
-외래키로 지정되면 참조 테이블의 기본키에서 없는 값은 입력할 수 없다(참조 무결성 조건)
5.계층형 조회(Connect by)
-Connect by는 트리(Tree) 형태의 구조롤 질의를 수행하는 것으로
START WITH구는 시작 조건을 의미하고 CONNECT BY PRIOR는 조인 조건이다.
-Root 노드로부터 하위 노드의 질의를 실행한다.
-계층형 조회에서 MAX(LEVEL)을 사용하여 최대 계층 수를 구할 수 있다.
즉, 계층형 구조에서 마지막 Leaf Node의 계층값을 구한다.

-위의 예를 보면 4*LEVEL-1이 있다. LEVEL 값이 Root이면 1이 된다. 따라서 4*(1-1)=0이 된다.
-즉, Root일 때는 LPAD(',',0)이므로 아무런 의미가 없다.
-하지만, LEVEL 값이 2가 되면 4*(2-1)=4가 된다. LPAD('',4)이므로 왼쪽 공백 4칸을 화면에 찍는다.
-결과적으로 LPAD는 트리 형태로 보기 위해서 사용한 것이다.
-왜냐하면 LEVEL 값은 Root에 1을 되돌리고 그다음 자식은 2, 그리고 그다음 자식은 3이 나오기 때문이다.
6.CONNECTY BY 키워드
-LEVEL : 검색 항목의 깊이를 의미한다. 즉,계층구조에서 가장 상위 레벨이 1이 된다.
-CONNECT_BY_ROOT : 계층구조에서 가장 최상위 값을 표시한다.
-CONNECT_BY_ISLEAF : 계층구조에서 가장 최하위를 표시한다.
-SYS_CONNECT_BY_PATH : 계층구조의 전체 전개 경로를 표시한다.
-NOCYCLE : 순환구조가 발생지점까지만 전개된다.
-CONNECT_BY_ISCYCLE : 순환구조 발생 지점을 표시한다.
7.그룹 함수 (Group Function)
1)ROLLUP : GROUP BY 칼럼에 대해서 Subtotal을 만들어 준다. (전체 합계)
ex) GROUP BY ROLLUP(부서번호) -> 부서별 전체 합계 계산
(컬럼의 순서가 바뀌면 결과도 바뀐다.)
2)GROUPING SETS : GROUP BY에 나오는 칼럼의 순서와 관계없이 다양한 소계를 만들 수 있다.
GROUPING SETS : GROUP BY에 나오는 칼럼의 순서와 관계없이 개별적으로 모두 처리한다.
ex) GROUP BY GROUPING SESTS(부서번호, 직업);
-> 부서번호별 합계와 직업별 합계가 개별적으로 조회됨.
(전체합계 안나옴, 컬럼 순서 상관 없음)
3)CUBE : CUBE 함수에 제시한 칼럼에 대해서 결합 가능한 모든 집계를 계산한다.
다차원 집계를 제공하여 다양하게 데이터를 분석할 수 있게 한다
ex) GROUP BY CUBE(부서번호, 직업);
-> 부서별 합계, 직업별 합계, 부서별 직업별 합계, 전체합계 조회됨.
'SQL > SQLD - SQL 기본 및 활용' 카테고리의 다른 글
SQLD 시험 대비 개념 마지막 정리 (0) | 2020.09.03 |
---|---|
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 30회 시행 (0) | 2020.09.01 |
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 34회 시행 (0) | 2020.08.27 |
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 33회 시행 (0) | 2020.08.17 |
SQLD 자격증 SQL 기본 및 활용 기출문제 / SQL시험 31회 시행 (0) | 2020.08.09 |