자격증/sqld

[데이터베이스] sqld SQL 기본1

Ellie67 2021. 6. 25. 17:47

-데이터베이스 개론 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 : 테이블 완전 삭제

 

 

트랜잭션의 특징