SQL : 관계대수와 관계해석을 기초로 한 혼합 데이터 언어
< 종류 >
1. DDL
● 스키마, 도메인, 테이블, 뷰, 인덱스를 정의/변경/삭제 시 사용
● 논리/물리적 데이터 구조 사상 정의
● DB 관리자나 DB 설계자가 사용
- CREATE SCHEMA
● 스키마 이름과 소유권자나 허가권자 정의
[ 표기 형식 ]
- CREATE DOMAIN
● 속성에서 취할 수 있는 값의 범위가 전체 데이터 타입의 값이 아니고 일부분일 때, 그 값의 범위를 도메인으로 정의
[ 표기 형식 ]
- CREATE TABLE
● 속성명, 속성의 데이터 타입, 기본 값, NOT NULL 여부 지정
[ 표기 형식 ]
- CREATE VIEW
● SELECT문을 서브 쿼리로 사용하여 SELECT문의 결과로서 뷰 생성
● 서브 쿼리인 SELECT문에는 UNION이나 ORDER BY 절 사용 X
[ 표기 형식 ]
- CREATE INDEX
[ 표기 형식 ]
[ 설명 ]
● UNIQUE
-> 사용될 때 : 중복 값이 없는 속성으로 인덱스 생성
-> 생략될 때 : 중복 값을 허용하는 속성으로 인덱스 생성
● 정렬 여부 지정
-> ASC : 오름차순
-> DESC : 내림차순
- ALTER TABLE
[ 표기 형식 ]
[ 설명 ]
● ADD : 새로운 속성( 열 ) 추가
● ALTER : 특정 속성의 Default 값 변경
● DROP COLUMN : 특정 속성 삭제
- DROP
● 스키마, 도메인, 기본/뷰 테이블, 인덱스, 제약 조건 등 제거
[ 표기 형식 ]
[ 설명 ]
● CASCADE : 제거할 요소를 참조하는 다른 모든 개체를 함께 제거
● RESTRICTED : 다른 개체가 제거할 요소를 참조중일 때는 제거 취소
2. DML
● 질의어를 통하여 저장된 데이터를 실질적으로 처리하는데 사용
● DB 사용자와 DB 관리 시스템 간 인터페이스 제공
< 종류 >
- 검색문 : 조건에 맞는 튜플 검색
[ 표기 형식 ]
[ 설명 ]
● PREDICATE
-> DISTINCT : 중복된 튜플이 있으면 그 중 한 개만 검색
-> DISTINCTROW : 중복된 튜플 제거, 한 개만 검색( 튜플 전체 대상 )
● FROM : 테이블 명 기술
● WHERE : 검색할 조건
[[ 조건 연산자 ]]
1. LIKE 연산자
-> % : 모든 문자를 대표함
-> _ : 문자 하나를 대표함
-> # : 숫자 하나를 대표함
2. NULL 사용
-> NULL 인 값 : IS NULL
-> NULL이 아닌 값 : IS NOT NULL
● ORDER BY : 특정 속성을 기준으로 정렬하여 검색
● Window 함수
-> ROW_NUMBER() : 각 레코드에 대한 일련 번호 반환
-> RANK() : 순위를 반환, 공동 순위 반영
-> DENSE_RANK() : 공동 순위 무시하고 순위 부여
-> PARTITION BY : Window 함수가 적용될 범위로 사용할 속성 지정
-> ORDER BY : PARTITION 안에서 정렬 기준으로 사용할 속성 지정
[[ 예시 ]]
1. <상여금> 테이블에서 '상여내역'별로 '상여금'에 대한 일련 번호를 구하시오( 단. 순서는 내림차순, 속성명은 'NO'로 할 것 )
-> SELECT 상여내역, 상여금,
ROW_NUMBER() OVER ( PARTITION BY 상여내역 ORDER BY 상여금 DESC ) AS NO
FROM 상여금;
- 하위 질의 : 조건절에 주어진 질의를 먼저 수행 후 그 검색 결과를 조건절의 피연산자로 사용
[ 예시 ]
● '취미'가 "나이트 댄스"인 사원의 '이름'과 '주소'를 검색하시오.
-> SELECT 이름, 주소
FROM 사원
WHERE 이름 = ( SELECT 이름 FROM 여가활동 WHERE 취미 = '나이트 댄스');
- 삽입문 : 새로운 튜플 삽입
[ 표기 형식 ]
- 삭제문 : 특정 튜플( 행 ) 삭제
[ 표기 형식 ]
- 갱신문 : 특정 튜플 내용 변경
[ 표기 형식 ]
- JOIN : 2개의 테이블에 대해 연관된 튜플들을 결합하여, 하나의 새로운 릴레이션 반환
[ 종류 ]
1. INNER JOIN
● 조건이 없는 INNER JOIN을 수행 시 CROSS JOIN과 동일한 결과
-> CROSS JOIN : 교차 조인, 반환되는 테이블의 행의 수 = 두 테이블의 행 수 곱
-> EQUI JOIN : 공통 속성을 기준으로 = 비교에 의해 같은 값을 가지는 행을 연결하여 결과 생성
( 동일한 속성 2번 나타나는데 NATURAL JOIN 시 동일한 속성 한번만 표기 )
-> NON-EQUI JOIN : JOIN 조건에 = 이 아닌 나머지 비교 연산자 사용
2. OUTER JOIN
● JOIN 조건에 맞지 않는 튜플도 결과로 출력
-> LEFT OUTER JOIN : 좌측 릴레이션이 기준이 되어 좌측 릴레이션에 있는 튜플 모두 표시, 우측 릴레이션에는 관련 있는 튜플만 표시
-> RIGHT OUTER JOIN : 우측 릴레이션이 기준이 되어 우측 릴레이션에 있는 튜플 모두 표시, 좌측 릴레이션에서는 연관된 튜플만 표시
3. DCL
● 데이터의 보안, 무결성, 회복, 병행 수행 제어 등 정의
● 데이터 관리 목적
< 종류 >
- GRANT : 권한 부여
[ 표기 형식 ]
1. 사용자 등급 지정
2. 테이블 및 속성에 대한 권한 부여
[ 설명 ]
● WITH GRANT OPTION : 부여받은 권한을 다른 사용자에게 다시 부여할 수 있는 권한을 부여함
- REVOKE : 권한 취소
[ 표기 형식 ]
1. 사용자 등급 해제
2. 테이블 및 속성에 대한 권한 취소
[ 설명 ]
● GRANT OPTION FOR : 다른 사용자에게 권한을 부여할 수 있는 권한을 취소함
● CASCADE : 권한 취소 시 권한을 부여받았던 사용자가 다른 사용자에게 부여한 권한도 연쇄적으로 취소함
- COMMIT : 변경된 모든 내용을 DB에 반영
[ 표기 형식 ]
- ROLLBACK : COMMIT 되지 않은 변경된 모든 내용들을 취소하고 DB를 이전 상태로 되돌리는 명령
- SAVEPOINT : 트랜잭션 내 ROLLBACK 할 위치인 저장점을 지정
'자격증 > 정보처리기사 - 필기' 카테고리의 다른 글
데이터베이스 구축 - 데이터 전환 (0) | 2020.02.21 |
---|---|
데이터베이스 구축 - SQL 활용 (0) | 2020.02.20 |
데이터베이스 구축 - 물리 데이터베이스 설계 (0) | 2020.02.16 |
데이터베이스 구축 - 논리 데이터베이스 설계 (0) | 2020.02.12 |
소프트웨어 개발 - 인터페이스 구현 (1) | 2020.02.07 |