-
270820 - 쪽지 시험SQL 2020. 8. 27. 09:04
쪽지 시험 대비
DB 정의
조직 내에서 필요로 하는 데이터들을 공동으로 사용할 수 있도록 중복을 최소화하여 통합 저장한 데이터 집합체를 의미한다.
- 공용 데이터 (Shared Data)
- 통합 데이터 (Integrated Data)
- 저장 데이터 (Stored Data)
- 운영 데이터 (Operated Data)
DB 특징
- 실시간 접근성
- 지속적인 변화
- 동시 공유
- 내용에 의한 참조
관계형 데이터 베이스(RDBMS) 용어
이름 나이 성별 학년 홍길동 19 남 1 이순신 20 남 2 임꺽정 22 여 3 Relation
: Table
Relation Instance
: Table 속에 구체적인 데이터 값을 갖고 있는 행들 전체를 의미
Relation Schema (이름, 나이, 성별, 학년)
: Attribute (속성) 이름들의 집합을 의미
Tuple (홍길동, 19, 남, 1)
: 테이블을 구성하는 각각의 행으로, Attribute의 모임으로 구성
(Tuple의 수를 cardinality, cardinal num, 대응수라고 칭한다.)
Domain (1, 2, 3)
: 하나의 Attribute가 취할 수 있는 같은 타입의 원자값들의 집합.
(Attribute 값의 적절성을 판단하는 시스템이 검사할 때 이용된다.)
SQL (Structured Query Language)
- 구조적인 질의 언어, DB 제어, 관리
- DB에서 자료를 검색 / 수정 / 삭제하는 DB 언어
- 독자적인 문법을 갖는 DB 표준 언어
1. DML (Data Manipulation Language)
- 조작어
- 사용자가 데이터를 실질적으로 처리하기 위해 주로 사용
- INSERT, UPDATE, DELETE
2. DQL (Data Query Language)
- 조회어
- 질의어로 간단히 쿼리문이라고도 한다.
- SELECT
3. DDL (Data Definition Language)
4. DCL (Data Control Language)
5. TCL (Transaction Control Language)
쪽지시험
DB란, 기업에서 데이터의 공유
조직 내에서 필요로 하는 데이터를 공동으로 사용할 수 있도록 중복을 최소화하여 통합 저장한 데이터 집합체를 의미.
-
공용 데이터
-
통합 데이터
-
저장 데이터
-
운영 데이터
A. 정보의 수정이 용이 (지속적인 변화)
B. 동기화가 빠름 (실시간 접근성)
C. 동시 공유
D. 내용에 의한 참조
DBMS 종류 4가지
-
계층형 데이터 베이스
-
네트워크형 데이터베이스
-
관계형 데이터베이스
-
NoSQL 데이터베이스
RELATION : TABLE
RELATION INSTANCE : values의 총 집합
RELATION SCHEMA : 속성값들의 집합
TUPLE : 한 행의 집합으로 속성값들의 집합으로 이루어 진다.
DOMAIN : 한 속성값이 가질 수 있는 value들
RDBMS 종류 8가지
-
ORACLE - ORACLE
-
MS-SQL SERVER - MICROSOFT
-
MY-SQL - ORACLE
-
DB2 - IBM
-
INFORMIX - IBM
-
SYBASE -SYBASE
-
DERBY - APACHE
-
SQLITE - OPENSOURCE
A. DML (Data Manipulation Language)
조작어
사용자가 데이터를 실질적으로 처리하기 위해 사용
CREATE> INSERT, UPDATE, DELETEB. DQL (Data Query Language)
질의어
SELECT
C. DDL (Data Definition Language)
정의어
데이터 베이스 스키마를 정의하거나 조작
CREATE, ALTER, DROP
DDL에 대해 TRANSACTION을 지원하지 않으므로 ROLLBACK할 수 없고 COMMIT 할 필요가 없다.
D. DCL (Data Control Language)
제어어
데이터의 보안, 무결성, 회복, 병행 수행제어 등을 정의하는데 사용
COMMIT, ROLLBACK, GRANT, REVOKE
E. TCL (Transaction Control Language)
` DCL에서 TRANSACTION을 제어하는 명령어 COMMIT과 ROLLBACK에 대한 표현
COMMIT, ROLLBACKSELECT (COLUMN)
FROM (TABLE)
[WHERE 컬럼명 비교연산자 비교값]
[ORDER BY 정렬할 컬럼명]
;
기타 연산자 - 비교연산자 / 논리연산자 / WHERE절 사용 기타 연산자
비교연산자
-
=
-
>
-
<
-
>=
-
<=
-
<>, !=, ^=
논리연산자
-
A AND B
-
A OR B
-
NOT A
WHERE절 사용 기타연산자
NVL(A, B)NVL2(A, B, C)NULLIF(A, B)DECODE(A, B, C)DECODE(A, B, C, D)CASEWHEN (CONDITION)THEN (CONDITION-TRUE) (CHANGE)ELSE (CONDITION-FALSE) (CHANGE);BETWEEN A AND B
IN
LIKE
IS NULL
NOT BETWEEN A AND B
NOT IN
NOT LIKE
IS NOT NULL
ORDER BY (COLUMN) ASC (OR SKIP), DESC
;
INSERT INTO (TABLE)
( COLUMN1, COLUMN2, COLUMN3, …) OR SKIP
VALUES
( VALUE1, VALUE2, VALUE3, …)
;
INSERT INTO (TABLE)
SELECT (COLUMN)
FROM (TABLE)
WHERE (CONDITION)
;
UPDATE (TABLE)
SET (CHANGE PART)
WHERE (CONDITION)
;
DELETE FROM (COLUMN)
WHERE (CONDITION) (OR SKIP = DELETE ALL)
TRANSACTION
-
시작
DML 실행 시
-
종료
COMMIT / ROLLBACK 실행
DDL / DCL 실행
기계 장애 / 시스템 충돌
DEADLOCK 발생
사용자의 정상 종료
-
자동 COMMIT 발생 상황
DDL, DCL문장의 완료
SQL*PLUS의 정상 종료
-
자동 ROLLBACK 발생 상황
SQL*PLUS의 비정상 종료
시스템의 비정상 종료
TO_CHAR : 숫자나 날짜를 문자형으로
TO_DATE : 문자형을 날짜형으로
TO_NUMBER : 문자형을 숫자형으로