본문 바로가기
자격증/SQLD - 준비중

sqld 정리 2

by Woodland 2018. 11. 28.

- SQLD 정리 3


1. SQL 문장들의 종류.

1-1 DML (데이터 조작어)

- SELECT (조회)

ex1> SELECT [컬럼명] FROM [테이블명] WHERE [조건];

- UPDATE (수정)

ex1> UPDATE [테이블명] SET [바꿀 컬럼명 = 바꿀 데이터값] WHERE [조건];

- INSERT (삽입)

  ex1> INSERT INTO [테이블명] VALUES ('입력값','순서','대로'); 

- DELETE (삭제)

ex1> DELETE FROM [테이블명] : 테이블의 모든 데이터 삭제

ex2> DELETE FROM [테이블명] WHERE [조건] : 조건에 맞는 데이터 삭제


1-2 DDL (데이터 정의어)

- CREATE (테이블 생성)

ex1> CREATE TABLE [테이블명] ( 컬럼명1 데이터타입 [DEFAULT 형식], 컬럼명2 데이터타입 [DEFAULT 형식], 컬럼명3 데                                 이터타입 [DEFAULT 형식]);

- ALTER (테이블 수정)

ex1> ALTER TABLE [테이블명] ADD COLUMN [추가할 칼럼명] [데이터타입]; : 칼럼 추가 

ex2> ALTER TABLE [테이블명] DROP COLUMN  [삭제할 칼럼명] [데이터타입]; : 칼럼 삭제

ex3> ALTER TABLE [테이블명] MODIFY ([수정할 칼럼명1] [데이터타입] [DEFAULT 식] [NOT NULL, [수정할 칼럼명2] [데이                            터타입] [DEFAULT 식] [NOT NULL]]; : 칼럼 수정

ex4> ALTER TABLE [테이블명] RENAME COLUMN [변경할 컬럼명] TO [새로운 컬럼명]; : 컬럼명 변경

ex5> ALTER TABLE [테이블명] ADD CONSTRAINT [제약조건명] [제약조건] (컬럼명); : 제약조건 추가

ex6> ALTER TABLE [테이블명] DROP CONSTRAINT [제약조건명]; : 제약조건 제거

- DROP (테이블 삭제)

ex1> DROP TABLE [테이블명]

- RENAME(테이블 명 변경)

ex1> RENAME [테이블명] TO [바꿀 테이블명];

- TRUNCATE (테이블 비우기 : 디스크 사용량 초기화)

ex1> TRUNCATE TABLE [테이블명];


1-3 DCL (데이터 제어어)

- GRANT : (데이터 접근 권한 수여)

- REVOKE : (데이터 접근 권한 회수)


1-4 TCL (트렌젝션 제어어)

- COMMIT

ex1> COMMIT;

- ROLLBACK

ex1> R OLLBACK TO [세이브포인트_이름]


2. DML에서 절자적 조작어와 비절차적 조작어에 대한 정의

2-1. 절차적 조작어

- AS-IS : 비절차적 데이터 조작어. 사용자가 무슨(WHAT) 데이터를 원하는지만 명세한다.          

- TO-BE : 절자척 데이터 조작어. 어떻게(HOW) 데이터를 접근해야 하는지를 명세한다. SQL 쿼리가 이에 해당.


3. DML은 데이터베이스 사용자가 응용 프로그램이나 질의어를 통하여 저장된 데이터베이스응 실질적으로 접든하는데 사용된다.


4. DDL은 스키마, 도메인, 테이블, 뷰ㅜ 인덱스를 정의하거나 변경 또는 제거할 때 사용된다.


5. 테이블 생성시 칼럼별 생성할 수 있는 제약조건

5-1. UNIQUE - 테이블 내에서 중복되는 값이 없으며, NULL값 입력이 가능하다.

5-2. PK - 주키로 테이블당 1개만 생성이 가능하다.

5-3. FK - 외래키로 테이블당 여러 개 생성이 가능하다.

5-4. NOT NULL - 명시적으로 NULL 입력을 방지한다.


6. 제약조건의 종류

- PRIMARY KEY 

- UNIQUE KEY

- FOREIGN KEY

- NOT NULL

- CHECK


7. 외래키에 대한 간단한 설명

- 테이블 생성시 설정할 수 있다.

- 외래키 값은 널 값을 가질 수 있다.

- 한 테이블에 여러개 존재할 수 있다.

- 외래키 값은 참조 무결성 제약을 받을 수 있다.


8. 제약조건(CONSTRAINT)에 대한 설명.

- CHECK 제약 조건은 데이터베이스에서 데이터의 무결성을 유지하기 위하여 테이블의 특정 걸럼에 설정하는 제약이다.

EX>  

CREATE TABLE emp 

(

id int not null primary key auto_increment,

col char(1) CHECK (col IN ('a','b','c'))

); // ('a','b','c')만 저장할 수 있음.


- 기본키는 반드시 테이블 당 하나의 제약만을 정의할 수 있다.

- 고유키로 지정된 모든 컬럼들은 null값을 가질 수 있다.

- 외래키는 테이블간의 관계를 정의하기 위해 기본키를 다른 테이블의 외래키가 참조하도록 생성한다.


9. 참조 동작 정리.

Delete(Modify) Action : Cascade, Set Null, Set Default, Restrict

1) Cascade     : Master 삭제 시 Child 같이 삭제

2) Set Null    : Master 삭제 시 Child 해당 필드 Nulll 처리

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 외부키를 Default 값으로 설정

4) Dependent   : Master 테이블에 PK 값이 존재할 때만 Child 입력 허용

5) No Action   : 참조 무결성을 위반하는 입력 액션을 취하지 않음.


10. 개발 프로젝트의 표준은 모든 삭제 데이터에 대한 로그를 남기는 것을 원칙으로 하고, 테이블 삭제의 경우는 허가된 인력만이 정기적으로 수행 가능하도록 정하고 있다. 개발팀에서 사용 용도가 없다고 판단한 테이블의 데이터를 삭제하는 가장 좋은 방법은?

- DELETE FROM STADIUM ===== 로그를 남기며 지우기 때문에 가장 좋은 방법이다. (디스크 사용량을 초기화 하지 않는다.)

- TRUNCATE TABLE STADIUM == 로그를 남기지 않기 때문에 좋지 않은 방법이다. (디스크 사용량을 초가화 한다.)

- DROP TABLE STADIUM ====== 로그를 남기지 않을 뿐만 아니라 테이블 자체를 없에므로 아주 좋지 않다.


-- 53-27까지.

'자격증 > SQLD - 준비중' 카테고리의 다른 글

SQLD정리 -4  (0) 2018.12.01
SQLD정리 3  (0) 2018.11.29
SQLD 정리 1과목 2  (0) 2018.11.17
[데이터 모델링의 이해] 핵심체크-1  (0) 2018.11.12