정보처리기능사 실기- SQL
1. DDL (Data Definition Language)
데이터베이스의 테이블, 스키마등을 정의하거나 수정, 제거
CREATE, ALTER, DROP등 존재
1-1. CREATE
[대괄호]는 있어도 되고 없어도 되는것
테이블정의 -
CREATE TABLE 테이블 이름 (
속성이름 데이터타입 [NOT NULL], // NOT NULL은 그 속성 널 값 금지
PRIMARY KEY(속성이름), //기본키 설정
UNIQUE(속성이름), //중복 금지
FOREIGN KEY(속성이름) REFRENCES 참조테이블(속성_이름) //외래키 지정 FOREIGN KEY와 REFERENCES는 세트
CONSTRAINT 제약조건_이름 CHECK(VALUE IN(속성이름=범위값) //속성의 범위 정의 (domain)
);
스키마정의-
CREATE SCHEMA 스키마_이름 AUTHORIZATION 사용자;
도메인정의-
CREATE DOMAIN 도메인_이름 데이터타입
[DEFAULT 기본값]
[CONSTRAINT 제약조건_이름 CHECK(VALUE IN(범위 값))];
인덱스정의-
CREATE [UNIQUE] INDEX 인덱스_이름
ON 태이블_이름(속성_이름 [ASC|DESC])
[CLUSTER];
뷰 정의-
CREATE VIEW 뷰명[(속성명[, 속성명,])]
AS SELECT문;
1-2 ALTER 새로운 속성 추가. 속성 변경, 속성 삭제
ALTER TABLE 테이블이름 ADD 속성이름 데이터타입 [DEFAULT];
ALTER 속성이름 [SET DEFAULT];
DROP 속성이름 [CASCADE|RESTRICT];
1-3 DROP 테이블, 스키마등 삭제
DROP TABLE 테이블_이름 [CASCADE|RESTRICT];
SCHEMA 스키마_이름 [CASCADE|RESTRICT];
DOMAIN 도메인_이름 [CASCADE|RESTRICT];
VIEW 뷰_이름 [CASCADE|RESTRICT];
INDEX 인덱스_이름;
CONSTRAINT 제약조건_이름;
CASCADE는 종속된거 까지 다 삭제, RESTRICT는 종속된거 있으면 삭제안함.
1-4 TRUNCATE는 DROP과 비슷하지만 데이터 구조는 유지함.
2. DML(Data Manipulation Language)
2-1. SELECT
SELECT-FROM-WHERE-GROUP BY-ORDER BY
검색할때 쓰는 함수: SUM AVG MAX MIN COUNT
조건문에 쓰는 연결: = , IN , <= , >= , % , _ , LIKE , IS
=는 결과가 한가지일때, IN은 결과가 여러가지일때 WHERE뒤에서 부속질의문에 사용(등호는 부속,조건문 모두 사용)
%나 _는 문자 매치를할때 %는 여러문자, _는 문자 1개를 대신하고 이걸로 비교할때는 =나 IS대신 LIKE 사용
NULL을 사용하는 경우 IS나 IS NOT을 사용함
HAVING은 GROUP BY와 함께 사용되며, 그룹에 대한 조건을 지정함. (그룹을 나눈뒤, 그 그룹들의 원소에 대해서 WHERE 쓰는걸 의미함)
DISTINCT는 중복 없이를 의미하고, 뒤에속성명이 들어간다.
2-2 INSERT
INSERT-INTO-VALUES
2-3 UPDATE
UPDATE-SET-WHERE
2-4 DELETE
DELETE-FROM-WHERE
3. DCL (Data Control Language)
COMMIT -수정유지 ROLLBACK - 연산 취소 GRANT - 권한부여 REVOKE -권한취소
4. 모든 SQL명령어에서 주요한 세트
FOREIGN KEY-REFERENCES
CONSTRAINT-CHECK
WHERE 조건
ORDER BY ASC|DESC
5. INDEX, VIEW, 다중테이블
4-1 INDEX: 각 행에다가 주소를 만들어서 파일로 만드는것. 데이터 검색속도가 향상됨. (보통 오름차순, 내림차순)
인덱스 구조: B-트리와 B+-트리가 존재 (B트리는 Binary search tree)
B+는 바이너리 서치트리와 비슷하지만 잎 노드에 모든 자식이 다 있는 트리라 보면됨.
(자식 하나당 값이 여러개 있을수 있음)
클러스티드 인덱스(정렬후 재구성) - 넌 클러스티드 인덱스 (정렬 없이 id 테이블만듬)
4-2 VIEW하나 이상의 테이블로부터 유도되어 만들어진 가상 테이블 -실제로 기억공간 차지하지 않음.
4-3 다중테이블 검색여러개의 명령어를 한번에 사용하는 방식
집합 연산자: UNION(합집합), UNION ALL(합집합, 중복되는건 두번), INTERSECT(교집합), MINUS(A-B 차집합)
사용예시:
SELECT * FROM 데이터베이스
UNION
SELECT * FROM 인공지능;
4-4 시스템 카탈로그- dB에 저장되어있는 정보와 정보들 간의 관계를 저장한 내용