1. 데이터 베이스 기본
트랜잭션 - 데이터베이스 시스템에서 하나의 논리적 기능을 정상적으로 수행하기 위한 작업의 기본 단위
트랜잭션의 특징 ACID
Atomicity 원자성 : 분해가 불가능한 작업의 최소단위. 연산 전체가 성공 또는 실패
Consistency 일관성 : 트랜잭션이 실행 성공 후 항상 일관된 데이터베이스 상태를 보존해야 함
Islation 격리성 : 트랜잭션 실행 중 생성하는 연산의 중간 결과를 다른 트랜잭션이 접근 불가
Durability 영속성 : 성공이 완료된 트랜잭션의 결과는 영속적으로 데이터베이스에 저장
TCL 트랜잭션 제어 언어
: 트랜잭션의 결과를 허용하기나 취소하는 목적으로 사용되는 언어
TCL 명령어
COMMIT / ROLLBACK / CHECKPOINT
2.DDL
SQL문법의 개념
: 데이터베이스를 접근하고 조작하는 데 필요한 표준 언어를 활용할 수 있게 해주는 규칙
-데이터 정의어 DDL : CREATE, ALTER, DROP, TRUNCATE(RENAME)
데이터를 정의, 구조를 생성
-데이터 조작어 DML : SELECT, INSERT, UPDATE, DELETE
저장된 자료들을 입력, 수정, 삭제, 조회 CRUD하는 언어
-데이터 제어어 DCL : GRANT, REVOKE
보안, 무결성유지, 병행 제어, 회복을 위해 사용하는 언어
DDL
: 데이터를 정의하는 언어로 데이터를 담는 그릇을 정읳나ㅡㄴ 언어
DDL의 대상 (도스테뷰인)
도메인 - 하나의 속성을 가질 수 있는 원자값들의 집합
스키마 - 데이터베이스의 구조, 제약조건 등의 정보를 담고 있는 기본적은 구조(틀)
테이블 - 데이터 저장 공간
뷰 - 하나 이상의 물리 테이블에서 유도되는 가상의 테이블
인덱스 - 검색을 빠르게 하기 위한 데이터 구조
스키마 유형
외부 스키마 - 사용자뷰. 사용자나 개발자 관점에서 필요로 하는 데이터베이스의 논리적 구조
개념 스키마 - 전체적인 뷰
내부 스키마 - 물리적 저장장치의 관점에서 보는 데이터베이스 구조
테이블
: 데이터를 저장하는 항복인 필드들로 구성된 데이터의 집합체
열(Column) / 행(Row)
뷰
:논리 테이블로서 사용자에게 테이블과 동일하다.
뷰는 변경이 불가함
뷰 생성 명령어
CREATE VIEW 뷰이름 AS
조회쿼리;
뷰교체
CREATE OR REPLACE VIEW 뷰이름 AS 조회쿼리;
인덱스
: 테이블에 대한 조회 속도를 높여주는 자료구조이다.
인덱스 생성
CREATE [UNIQUE] INDEX 인덱스명 ON 테이블명 (컬럼명);
[UNIQUE] : 인덱스 걸린 컬럼에 중복 값을 허용하지 않음(생략가능)
인덱스명 : 생성하고자 하는 인덱스 테이블 명
테이블명 : 인덱스 대상 테이블명
컬럼명 : 테이블의 특정 컬럼명(복수 컬럼 지정 가능)
인덱스 삭제
DROP INDEX 인덱스명;
인덱스 변경
ALTER [UNIQUE] INDEX 인덱스명 ON 테이블명(컬럼명);
DDL명령어
1. CREATE TABLE
테이블을 생성하는 명령어
CREATE TABLE 테이블명
(
속성명 데이터타입 [NOT NULL],
PRIMARY KEY(기본키),
UNIQUE(속성명,...),
FOREIGN KEY(외래키) REFERENCES 참조테이블(기본키),
CONSTRAINT 제약조건명 CHECK(조건식),
);
제약조건
PRIMARY KEY - 테이블의 기본 키 정의, 유일하게 테이블의 각 행을 식별
FOREIGN KEY - 외래키를 정의, 참조대상을 테이블(칼럼명)로 명시
UNIQUE - 테이블 내에서 얻은 유일한 값을 갖도록 하는 속성
NOT NULL - 해당 칼럼은 NULL값을 포함하지 않도록 하는 속성
CHECK - 개발자가 정의하는 제약조건, 참이어야 하는 조건을 지정
DEFAULT - 해당 필드의 기본값을 설정
제약조건 CONSTRAINT
-테이블 생성 시
예시) CONSTRAINT 이름 PRIMARY KEY (컬럼1, 컬럼2 ..)
-테이블 생성 후
예시 ) ALTER TABLE 테이블이름 ADD CONSTRAINT 이름 PRIMARY KEY (컬럼1, 컬럼2 ..)
2. ALTER TABLE
컬럼 추가, 수정, 삭제, 컬럼명 수정
컬럼 추가
ALTER TABLE 테이블명 ADD 컬럼명 데이터타입;
컬럼 수정
ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입;
컬럼 삭제
ALTER TABLE 테이블명 DROP 컬럼명;
컬럼명 수정
ALTER TABLE 테이블명 RENAME COLUMN 변경전컬럼명 TO 변경후컬럼명;
DROP CONSTRAINT 테이블 생성 시 부여했던 제약조건을 삭제하는 명령어
ADD CONSTRAINT 테이블 생성 이후에 필요에 의해서 제약조건을 추가
3. DROP TABLE
컬럼 추가, 수정, 삭제, 컬럼명 수정
DROP TABLE 테이블명;
명령어 옵션 [ CASCADE | RESTRICT ]
CASCADE : 참조하는 테이블까지 연쇠적으로 제거하는 옵션
RESTRICT : 다른 테이블이 삭제할 테이블을 참조 중이면 제거하지 않는 옵션
4. TRUNCATE TABLE
테이블 내의 데이터들을 삭제하는 명령
TRUNCATE TABLE 테이블명;