[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