데이터 베이스
- 특정 기업이나 조직 또는 개인이 필요에 의해 데이터를 일정한 형태로 저장한 것
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
'SQLD' 카테고리의 다른 글
SQLD 개념정리 (함수) (0) | 2023.11.05 |
---|---|
SQLD 개념정리 (관계형 데이터베이스 개요, DML, TCL) (0) | 2023.11.01 |
SQLD 개념정리 (데이터 모델링의 이해)2 (0) | 2023.10.25 |
SQLD 개념정리 (데이터 모델링의 이해, 정규화, 반정규화) (0) | 2023.10.24 |
SQLD 개념정리 (데이터 모델링)2 (1) | 2023.10.20 |