DataEdit

[SQLD 정리]6DAY

by Bigdaditor

과목 2 SQL 기본 및 활용

1장 SQL 기본

제 1절 관계형 데이터베이스 개요

1. 데이터베이스

2. SQL

 

[ SQL 문장들의 종류 ]

명령어의 종류 명령어 설명
데이터 조작어(DML) # SELECT # 데이터 조회
 

# INSERT

# UPDATE

# DELETE 

# 데이터 변형
데이터 정의어(DDL)

# CREATE

# ALTER

# DROP

# RENAME

# 테이블과 같은 데이터 구조를 정의하거나 생성하거나 변경하거나 삭제
데이터 제어어(DCL)

# GRANT

# REVOKE

# 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어
트랜잭션 제어어(TCL)

# COMMIT

# ROLLBACK

# 작업단위별로 제어하는 명령어

 

3. 테이블

# 어느 특정한 주제와 목적으로 만들어지는 일종의 집합

# 데이터를 저장하는 객체로서 관계형 데이터베이스 기본 단위

 

4. ERD

 

제 2절 DDL

1. 데이터 유형

 

[ 자주 쓰이는 데이터 유형 ]

데이터 유형 설명
CHARACTERS(n)

# 고정길이 문자열

- ORACLE, SQL SERVER : CHAR로 표현

VARCHAR(n)

# 가변 길이 문자열

- ORACLE: VARCHAR2로 표현

- SQL SERVER: VARCHAR로 표현

NUMERIC

# 정수, 실수 등 숫자정보

- ORACLE: NUMBER로 표현

- SQL SERVER: 10가지 이상의 숫자 표현이 있음

 

# ORACLE은 처음 전체 자리 수를 지정하고 그 다음은 소수 부분의 자리 수를 지정

- 정수부분이 6자리이고 소수점 부분이 2자리면 'NUMBER(8,2)'

DATE # 날짜와 시각 정보

 

# VARCHAR 유형에서는 공백도 하나의 문자로 취급한다.

 

2. CREATE TABLE

가. 테이블과 칼럼 정의

# 기본키는 단일 칼럼이 아닌 여러 개의 칼럼으로도 만들어질 수 있다.

# 관계는 기본키(PRIMARY KEY)와 외래키(FOREIGN KEY)를 활용해서 설정한다.

 

나. CREATE TABLE

CREATE TABLE 테이블 이름 (
	칼럼명1 데이터타입 [제약조건],
    칼럼명2 데이터타입 [제약조건],
    ....
 );

# 테이블 생성시 대/소문자 구분은 하지 않는다.

# DATETIME 데이터 유형에는 별도로 크기를 지정하지 않는다.

# 문자데이터 유형은 반드시 가질 수 있는 최대 길이를 표시해야한다.

 

다. 제약조건

# 제약조건은 사용자가 원하는 조건의 데이터만 유지하기 위한 즉, 데이터의 무결성을 유지하기 위한 보편적인 방법

# 테이브르이 특정 칼럼에 설정할 수 있다.

 

[ 제약조건의 종류 ]

구분 설명
PRIMARY KEY(기본키)

# PRIMARY KEY를 설정하면 DBMS에서 자동으로 UNIQUE 인덱스 생성

# NOT NULL

# 고유키 제약

UNIQUE KEY(고유키)

# NULL 값을 고유키의 제약 대상이 아님

# 중복 x

NOT NULL # NULL 값의 입력을 금지한다.
CHECK

# 입력할 수 있는 범위를 제한한다.

# TRUE or FALSE로 평가할 수 있는 논리식을 지정

FOREIGN KEY(외래키)

# 테이블 간의 관계를정의하기 위해 기본키를 다른 테이블의 외래키로 복사한 것이다.

# 참조 무결성 제약 옵션을 선택할 수 있다.

# 참조 무결성 제약조건

-  외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 합니다.

 

# NULL

- 아직 정의되지 않은 미지의 값

 

# DEFAULT

- 데이터 입력 시 칼럼의 값이 지정되어 있지 않은 경우 기본값을 사전에 설정할 수 있다.

 

라. 테이블 구조 확인

# ORACLE

DESC 테이블 명;

 

# SQL SERVER

sp_help 'dbo.테이블명';

 

마. SELECT 문장을 통한 테이블 생성

# ORACLE

CREATE TABLE 테이블명1
AS SELECT * FROM 테이블명2;

- 테이블2의 구조를 테이블1에 복사해서 테이블1를 생성한다.

- NOT NULL 제약조건을 제외한 나머지 제약조건은 없어진다.

 

# SQL SERVER

SELECT * INTO 테이블명1 FROM 테이블2

- 테이블2의 구조를 테이블1에 복사해서 테이블1를 생성한다.

- 칼럼속성에 Identity를 적용했다면 Identity 속성까지 같이 적용된다.

 

3. ALTER TABLE

가. ADD COLUMN

ALTER TABLE 테이블명
ADD 칼럼명 데이터 유형;

# 생성한 테이블에 칼럼을 추가한다.

# 위치는 지정할 수 없다.

 

나. DPOP COLUMN

ALTER TABLE 테이블명
DROP COLUMN 삭제할 칼럼명;

# 해당 테이블의 칼럼을 삭제한다.

 

다. MODIFY COLMN

# 칼럼의 크기를 늘릴 수 있지만 줄일 수 없다.

# 해당 칼럼이 NULL 값만 가지고 있으면 칼럼의 크기를 줄일 수 있다.

# DEFAULT 값을 바꾸면 변경 작업 이후 발생하는 행 삽입에만 영향을 미치게 된다.

# ORACLE

ALTER TABLE 테이블명
MODIFY (칼럼명1 데이터유형 [DEFAULT] [NOT NULL], 
		칼럼명2 데이터유형 ... ,)

 

 

# SQL SERVER

ALTER TABLE 테이블명
ALTER (칼럼명1 데이터유형 [DEFAULT] [NOT NULL], 
		칼럼명2 데이터유형 ... ,)

 

 

# RENAME COLUMN

- 칼럼의 이름을 변경한다.

- ORACLE

ALTER TABLE 테이블명
RENAME COLUMN 변경할 칼럼명 TO 새로운 칼럼명


- SQL SERVER

sp_rename 변경해야할 칼럼명, 새로운 칼럼명, 'COLUMN'

 

라. DROP CONSTRAINT

# 제약조건을 삭제하는 명령

ALTER TABLE 테이블명
DROP CONSTRAINT 제약조건명;

 

마. ADD CONSTRAINT

# 제약조건을 추가하는 명령

ALTER TABLE 테이블명
ADD CONSTRAINT 제약조건명 제약조건 (칼럼명);

 

4. RENAME TABLE

# 테이블명을 변경한다.

# ORACLE

RENAME 변경할 테이블명 TO 새로운 테이블명


# SQL SERVER

sp_rename 변경해야할 테이블명, 새로운 테이블명

 

5. DROP TABLE

# 테이블 구조 자체를 삭제

DROP TABLE 테이블명 [CASCADE CONSTRAINT]

# CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있었던 참조되는 제약조건에 대해서 삭제한다.

# SQL SERVER는 CASCADE 옵션이 존재하지 않으며 테이블을 삭제하기 전에 참조하는 FOREIGN KEY 제약조건 또는 참조하는 테이블을 먼저 삭제해야한다.

 

6. TRUNCATE TABLE

# 테이블 안에 있는 데이터를 삭제한다.

# 저장공간을 재사용 가능하도록 해제한다.

# AUTO COMMIT 이 일어난다.

# DELETE TABLE보다 시스템 부하가 적다.

TRUNCATE TABLE 테이블명

 

'자격증 > SQLD' 카테고리의 다른 글

[SQLD 정리]8DAY  (0) 2019.11.18
[SQLD 정리]7DAY  (0) 2019.11.15
[SQLD 정리]5DAY  (0) 2019.11.07
[SQLD 정리]4DAY  (0) 2019.11.06
[SQLD 정리]3DAY  (0) 2019.11.05

블로그의 정보

DataEdit

Bigdaditor

활동하기