-데이터베이스 개론 2판, SQL 자격검정 실전문제 학습 후 정리한 내용입니다-
데이터베이스 개론 2판
IT CookBook, 데이터베이스 개론(2판)
데이터베이스로 첫 항해를 떠나는 이들에게 지도와 돛이 되어주는 책입니다. 마인드맵으로 생소한 개념 간의 관계를 한눈에 보여주고, 친근한 예와 비유를 들어 명료하게 풀어내, 데이터베이스
www.hanbit.co.kr
SQL 자격검정 실전문제
SQL 자격검정 실전문제 - YES24
SQL 자격검정 실전문제는 국가공인 SQL 전문가 및 국가공인 SQL 개발자 자격시험 대비 수험서로 SQL 전문가 가이드에서 다루고 있는 데이터 모델링의 이해, SQL기본 및 활용, SQL 고급 활용 및 튜닝 등
www.yes24.com
절차적 데이터 조작어
- 어떻게 데이터를 접근해야 하는 지 명세
비절차적 데이터 조작어
- 사용자가 무슨 데이터를 원하는 지만을 명세
호스트 프로그램 속에 삽입되어 사용되는 DML 명령어들을 데이터 부속어라고 한다.
테이블 칼럼에 대한 정의 변경
- [Oracle]
ALTER TABLE
테이블명
MODIFY
(칼럼명1 데이터 유형
[DEFAULT 식]
[NOT NULL],
칼럼명2 데이터 유형
…);
- [SQL Server]
ALTER TABLE
테이블명
ALTER
(칼럼명1 데이터 유형
[DEFAULT 식] [NOT
NULL],
칼럼명2 데이터 유형
…);
NULL
- 공백이나 숫자 0과는 전혀 다른 값
- 조건에 맞는 데이터가 없을 때의 공집합과도 다르다.
- 아직 정의되지 않은 미지의 값이거나 현재 데이터를 입력하지 못하는 경우를 의미한다.
DELETE CASCADE
- 어떤 tuple이 삭제될 때 외래키로 연결된 tuple 또한 같이 삭제된다.
제약조건 종류
- PRIMARY KET(기본키): 주키로 테이블당 1개만 생성 가능. UNIQUE & NOT NULL
- UNIQUE KEY(고유키): 테이블 내에서 중복되는 값이 없고 NULL 입력이 가능하다.
- NOT NULL: 명시적으로 NULL 입력을 방지한다.
- CHECK: 입력 값의 범위 지정
- FOREIGN KEY(외래키): 외래키로 테이블당 여러 개 생성 가능, 테이블 생성시 설정, 외래키 값은 참조 무결성 제약을 받을 수 있다. 널 값 가질 수 있다.
테이블 생성의 주의사항
- 테이블명은 객체를 의미할 수 있는 적절한 이름을 사용한다. 가능한 단수형 권고
- 테이블명은 다른 테이블의 이름과 중복되지 않아야 한다.
- 한 테이블 내에서는 칼럼명이 중복되게 지정될 수 없다.
- 테이블 이름을 지정하고 각 칼럼들은 괄호 “()”로 묶어 지정
- 각 칼럼들은 콤마 “.”로 구분되고, 테이블 생성문의 끝은 항상 세미콜론 “;”으로 끝남
- 칼럼 뒤에 데이터 유형은 꼭 지정되어야 한다.
- 테이블명과 칼럼명은 반드시 문자로 시작
- 벤더에서 사전에 정의한 예약어는 쓸 수 없다.
- A-Z, a-z, 0-9, _, $, # 만 사용 가능
Check 제약조건은 데이터베이스에서 데이터의 무결성을 유지하기 위해 테이블의 특정 컬럼에 설정하는 제약.
고유키(Unique key)로 지정된 모든 컬럼들은 Null 값을 가질 수 없다.
외래키는 테이블간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키가 참조하도록 생성
테이블의 불필요한 칼럼 삭제
ALTER TABLE
테이블명
DROP COLUMN
삭제할 칼럼명;
테이블 이름 변경
RENAME 테이블명 TO 바꿀테이블명
- Delete(/Modify) Action: Cascade, Set Null, Set Default, Restrict (부서-사원)
1) Cascade: Master 삭제 시 child 같이 삭제
2) Set Null: Master 삭제 시 child 해당 필드 Null
3) Set Default: Master 삭제 시 child 해당 필드 Default 값으로 설정
4) Restrict: Child 테이블에 PK 값이 없는 경우만 Master 삭제 허용
5) No Action: 참조무결성을 위반하는 삭제/수정 액션을 취하지 않음
- Insert Action: Automatic, Set Null, Set Default, Dependent (부서-사원)
1) Automatic: Master 테이블에 PK가 없는 경우 Master PK를 생성 후 Child 입력
2) Set Null: Master 테이블에 PK가 없는 경우 Child 외부키를 Null 값으로 처리
3) Set Default: Master 테이블에 PK가 없는 경우 Child 외부키를 지정된 기본값으로 입력
4) Dependent: Master 테이블에 PK가 존재할 때만 Child 입력 허용
5) No Action: 참조무결성을 위반하는 입력 액션을 취하지 않음
테이블에 데이터를 입력하는 두 가지 유형
- INSERT INTO 테이블명 (COLUMN_LIST) VALUES (COLUMN_LIST에 넣을 VALUE_LIST);
- INSERT INTO 테이블명 VALUES (전체 COLUMN에 넣을 VALUE_LIST);
입력된 데이터 수정
-UPDATE 테이블명 SET 수정되어야 하는 칼럼명=수정되기를 원하는 값
모든 삭제 데이터에 대한 로그를 남기는 것
DELETE FROM 테이블명
(TRUNCATE, DROP은 로그 안 남김)
테이블에 입력된 데이터 조회
SELECT [ALL/DISTINCT] 보고 싶은 칼럼명,… FROM 해당 칼럼들이 있는 테이블명;
-ALL: Default 옵션이므로 별도로 표시하지 않아도 된다. 중복된 데이터가 있어도 모두 출력
-DISTINCT: 중복된 데이터가 있는 경우 1건으로 처리해서 출력
TRUNCATE TABLE : 테이블 자체가 삭제되는 것이 아니고, 테이블의 모든 행들이 제거되고 저장 공간을 재사용 가능하도록 해제
DROP TABLE : 테이블 완전 삭제
트랜잭션의 특징
'자격증 > sqld' 카테고리의 다른 글
[데이터베이스] sqld SQL 기본3 (0) | 2021.06.30 |
---|---|
[데이터베이스] sqld SQL 기본2 (0) | 2021.06.28 |
[데이터베이스] sqld 데이터 모델과 성능_2 (0) | 2021.06.25 |
[데이터베이스] sqld 데이터 모델과 성능_1 (0) | 2021.06.25 |
[데이터베이스] sqld 데이터 모델링의 이해 (0) | 2021.06.21 |