SQL은 RDBMS에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어다. SQL문법은 영어와 유사하게 만들어져서 쉽게 읽고 쓰고 해석할 수 있다.
1. DML(Data Manipulation Language) : 데이터 조작어
데이터 조작어는 데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터베이스에 대해 데이터 검색, 등록, 삭제, 갱신
을 위한, 데이터베이스 언어 또는 데이터베이스 언어다. 2007년 현재 가장 대중적 데이터 조작 언어는 SQL 데이터 조작 언어이다. SQL은 관계형 데이터베이스에 대해 검색 및 업데이트 등의 데이터 조작을 위해 사용된다. 데이터베이스 사용자가 사용하는 언어다.
DB에 있는 데이터를 조회하거나 검색하기 위한 명령어. RETRIEVE 라고도 부름.
DB에 데이터를 삽입할때 사용하는 명령어.
DB에 있는 데이터를 갱신(내용 변경)할 때 사용하는 명령어.
DB에 있는 데이터를 삭제할 때 사용하는 명령어.
2. DDL(Data Definition Language) : 데이터 정의어
데이터 정의어는 데이터베이스의 데이터를 정의하는 언어다. DDL은 데이터를 정의하는데, 정의라 함은 데이터베이스의 객체들을 정의하는 것이다. 데이터 베이스 객체는 테이블, 뷰, 인덱스 (기타 : synonym, sequence, partitioin table)등을 포함한다. 데이터를 정의하기 위해서 객체들을 생성, 삭제, 변경할 수 있다.
DB에 새로운 테이블 구조를 생성하기 위한 명령어.
DB에 있는 테이블 구조를 변경할 때 사용하는 명령어.
테이블 구조 변경 명령어
ADD COLUMN
: 테이블에 새로운 속성을 추가한다.ALTER TABLE 테이블명 ADD(추가할컬럼명, 데이터타입);
MODIFY COLUMN
: 테이블의 속성을 수정한다.ALTER TABLE 테이블명 MODIFY(변경할컬럼명, 변경할데이터TYPE);
DROP COLUMN
: 테이블에 속성을 삭제한다.ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명;
RENAME TO
: 테이블명을 새로운 이름으로 변경한다.ALTER TABLE 기존테이블명 RENAME TO 새로운 테이블명;
DB의 테이블을 삭제할 때 사용하는 명령어.
DB의 테이블 내부의 모든 내용을 삭제하는 명령어. 내용만 삭제하므로 구조는 남는다.
3. DCL(Data Control Language) : 데이터 제어어
데이터 제어어는 데이터베이스에서 데이터에 대한 액세스를 제어하기 위한 데이터베이스 언어다. 권한 부여(GRANT)와 권한 회수(REVOKE)등이 있으며, 설정할 수 있는 권한으로는 연결(CONNECT), 질의(SELECT), 자료 삽입(INSERT), 갱신(UPDATE), 삭제(DELETE) 등이 있다.
데이터베이스 사용자에게 사용권한을 부여한다.
데이터베이스 사용자로부터 권한을 회수한다.
GRANT CONNECT FROM kim62210
GRANT CONNECT, RESOURCE FROM kim62210
CONNECT
- DB 또는 스키마에 연결하는 권한SELECT
- DB에서 데이터를 검색/조회하는 권한INSERT
- DB에 데이터를 등록할 수 있는 권한UPDATE
- DB에 데이터를 갱신할 수 있는 권한DELETE
- DB에 데이터를 삭제할 수 있는 권한USAGE
- 스키마 또는 함수와 같은 데이터베이스 객체를 사용할 수 있는 권한4. TCL(Transaction Control Language) : 트랜잭션 제어어
커밋은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산. 내용을 변경한 트랜잭션이 완료되면 그 트랜잭션에 의해 데이터베이스는 새롭게 저장된다. 이 상태는 시스템 오류가 발생하더라도 취소되지 않는다.
롤백은 하나의 트랜잭션 처리
가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때, 트랜잭션이 만든 모든 변경상황을 취소하고 이전 상태
로 되돌리는 연산
세이브포인트는 현재의 트랜잭션을 작게 분할
하는 명령어다. 저장된 SAVEPOINT는 ROLLBACK TO SAVEPOINT
를 이용해서 지정한 곳까지 ROLLBACK
할 수 있다. 여러개의 SQL문을 수반한 트랜잭션의 경우, 사용자가 트랜잭션 중간단계에서 SAVEPOINT를 지정할 수 있다.
주의사항
세이브포인트를 만들고 COMMIT 연산을 하게되면 커밋 연산 이전에 만든 세이브포인트들은 모두 날아간다. 세이브포인트는 한 트랜잭션에 여러개가 있을 수 있다.