SQLD

SQLD 개념정리 (관계형 데이터베이스 개요, DDL)

chojdsj 2023. 10. 30. 14:59
728x90
데이터 베이스

 

- 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장한 것

 

 

SQL (Structured Query Language)

 

- SQL은 관계형 데이터베이스에서 데이터 정의, 데이터 조작, 데이터 제어를 하기 위해 사용하는 언어

 

- 데이터 조작어(DML - Data Manipulation Language ) : SELECT, INSERT, UPDATE, DELETE (NOT AUTO COMMIT)

- 데이터 정의어(DDL - Data Definition Language) : CREATE, ALTER, DROP, RENAME(AUTO COMMIT)

- 데이터 제의어(DCL - Data Control Language) : 
GRANT, REVOKE

 

- 트랜잭션제어어(TCL - Transcation Control Language) : COMMIT, ROLLBACK

 

 

 

TABLE

 

- 테이블은 하나 이상의 칼럼을 가져야 한다.

 

- 관계형 데이터베이스에서는 모든 데이터를 칼럼과 행의 2차원 구조로 나타낸다.

 

 

ERD (Entity Relationship Diagram)

 

- 관계의 의미를 직관적으로 표현할 수 있는 수단으로 구성요소는 3개로 이루어져 있다. ( 엔티티, 관계, 속성)

 

 

 

 

DDL(Data Definition Language)

 

- 데이터 유형

 

 

 

 

- Oracle에서는 DDL 문장 수행 후 자동으로 COMMIT을 수행한다. SQL Server에서는 자동으로수행하지 않는다.

 

- Oracle에서 DDL 문장의 수행은 내부적으로 트랜잭션을 종료한다.

 

CREATE TABLE

 

CREATE TABLE 테이블이름

(칼럼명1 DATATYPE [DAFAULT 형식],

칼럼명1 DATATYPE [DAFAULT 형식],

칼럼명1 DATATYPE [DAFAULT 형식] );

 

 

CONSTRAINT (제약조건)

 

- 사용자가 원하는 조건의 데이터만 유지하기 위한 방법

 

- 종류 : PRIMARY KEY, UNIQUE KEY, NOT NULL, CHECK, FOREIGN KEY

 

- NULL은 아직 정의되지 않은 미지의 값, 현재 데이터를 입력하지 못하는 경우

 

- DEFAULT는 데이터입력시에 칼럼의 값이 지정되어 있지 않을 경우 기본값을 설정 가능

 

 

 

 

 

* 생성된 테이블 구조 확인 : Oralce - "DESCRIBE 테이블명;" , SQL Server-"sp_help 'dbo.테이블명'"

 

* SELECT 문장을 통한 테이블 생성 사례 (Create Table ~ As Select~) , (Select ~ Into ~ )

 

* 기존 테이블의 제약조건 중 NOT NULL만 새로운 복제테이블에 적용됨

 

 

 

ALTER TABLE

 

ALTER TABLE 테이블이름 ADD 속성_이름 데이터타입 [DEFAULT];    // 추가

ALTER TABLE 테이블이름 ALTER 속성_이름 데이터타입 [SET DEFAULT];    // 속성명 변경

ALTER TABLE 테이블이름 DROP 속성_이름 데이터타입 [CASCADE | RESTRICT];    // 속성 삭제

 

 

 

 

- DROP COLUMN : 데이터가 있거나 없거나 모두 삭제 가능. 한번에 하나의 칼럼만 삭제 가능

 

- MODIFY COLUMN, RENAME COLUMN : 수정, 이름 변경

- DROP CONSTRAINT : 테이블 생성 시 부여했던 제약조건을 삭제하는 명령어

 

- ADD CONSTRAINT : 테이블 생성 이후에 필요에 의해서 제약조건을 추가

 

 

 

RENAME TABLE

 

ALTER TABLE 테이블명

RENAME COLUMN 변경해야할 컬럼명 TO 새로운 컬럼명;

 

 

 

DROP TABLE

 

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

 

 

- 테이블의 모든 데이터 및 구조 삭제. CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있었던 참조되는 제약조건에 대해서도 삭제한다는 뜻. 복구 X

 

- Auto Commit

 

- 테이블 정의 자체를 완전히 삭제함.

 

 

TRUNCATE TABLE

 

TRUNCATE TABLE 테이블명 DROP COLUMN 삭제할 컬럼명;

 

- 테이블 자체가 삭제되는 것이 아니고, 해당 테이블에 들어있던 모든 행들이 제거되는 것(데이터만 제거)

- 기존에 사용하던 테이블의 모든 로우를 제거하기 위한 명령어

 

- 디스크 사용량을 초기화, 스키마 정의는 유지

 

-  Auto Commit