[DB] SQL(Structured Query Language) 기초

김형주·2021년 8월 27일
0

Backend Study

목록 보기
10/19
post-custom-banner

SQL (Structured Query Language)

SQL은 RDBMS에 저장된 데이터와 통신하기 위해 필요한 프로그래밍 언어다. SQL문법은 영어와 유사하게 만들어져서 쉽게 읽고 쓰고 해석할 수 있다.

SQL 명령어


1. DML(Data Manipulation Language) : 데이터 조작어

데이터 조작어는 데이터베이스 사용자 또는 응용 프로그램 소프트웨어가 컴퓨터 데이터베이스에 대해 데이터 검색, 등록, 삭제, 갱신을 위한, 데이터베이스 언어 또는 데이터베이스 언어다. 2007년 현재 가장 대중적 데이터 조작 언어는 SQL 데이터 조작 언어이다. SQL은 관계형 데이터베이스에 대해 검색 및 업데이트 등의 데이터 조작을 위해 사용된다. 데이터베이스 사용자가 사용하는 언어다.

(1) SELECT

DB에 있는 데이터를 조회하거나 검색하기 위한 명령어. RETRIEVE 라고도 부름.

(2) INSERT

DB에 데이터를 삽입할때 사용하는 명령어.

(3) UPDATE

DB에 있는 데이터를 갱신(내용 변경)할 때 사용하는 명령어.

(4) DELETE

DB에 있는 데이터를 삭제할 때 사용하는 명령어.

2. DDL(Data Definition Language) : 데이터 정의어

데이터 정의어는 데이터베이스의 데이터를 정의하는 언어다. DDL은 데이터를 정의하는데, 정의라 함은 데이터베이스의 객체들을 정의하는 것이다. 데이터 베이스 객체는 테이블, 뷰, 인덱스 (기타 : synonym, sequence, partitioin table)등을 포함한다. 데이터를 정의하기 위해서 객체들을 생성, 삭제, 변경할 수 있다.

(1) CREATE

DB에 새로운 테이블 구조를 생성하기 위한 명령어.

(2) ALTER

DB에 있는 테이블 구조를 변경할 때 사용하는 명령어.

테이블 구조 변경 명령어

  • ADD COLUMN : 테이블에 새로운 속성을 추가한다.
ALTER TABLE 테이블명 ADD(추가할컬럼명, 데이터타입);
  • MODIFY COLUMN : 테이블의 속성을 수정한다.
 ALTER TABLE 테이블명 MODIFY(변경할컬럼명, 변경할데이터TYPE);
  • DROP COLUMN : 테이블에 속성을 삭제한다.
ALTER TABLE 테이블명 DROP COLUMN 삭제할컬럼명;
  • RENAME TO : 테이블명을 새로운 이름으로 변경한다.
ALTER TABLE 기존테이블명 RENAME TO 새로운 테이블명;

(3) DROP

DB의 테이블을 삭제할 때 사용하는 명령어.

(4) TRUNCATE

DB의 테이블 내부의 모든 내용을 삭제하는 명령어. 내용만 삭제하므로 구조는 남는다.

3. DCL(Data Control Language) : 데이터 제어어

데이터 제어어는 데이터베이스에서 데이터에 대한 액세스를 제어하기 위한 데이터베이스 언어다. 권한 부여(GRANT)와 권한 회수(REVOKE)등이 있으며, 설정할 수 있는 권한으로는 연결(CONNECT), 질의(SELECT), 자료 삽입(INSERT), 갱신(UPDATE), 삭제(DELETE) 등이 있다.

(1) GRANT문

데이터베이스 사용자에게 사용권한을 부여한다.

(2) REVOKE문

데이터베이스 사용자로부터 권한을 회수한다.

GRANT CONNECT FROM kim62210
GRANT CONNECT, RESOURCE FROM kim62210

(3) 설정 가능한 권한 목록

  • CONNECT - DB 또는 스키마에 연결하는 권한
  • SELECT - DB에서 데이터를 검색/조회하는 권한
  • INSERT - DB에 데이터를 등록할 수 있는 권한
  • UPDATE - DB에 데이터를 갱신할 수 있는 권한
  • DELETE - DB에 데이터를 삭제할 수 있는 권한
  • USAGE - 스키마 또는 함수와 같은 데이터베이스 객체를 사용할 수 있는 권한

4. TCL(Transaction Control Language) : 트랜잭션 제어어

(1) COMMIT

커밋은 트랜잭션 처리가 정상적으로 종료되어 트랜잭션이 수행한 변경 내용을 데이터베이스에 반영하는 연산. 내용을 변경한 트랜잭션이 완료되면 그 트랜잭션에 의해 데이터베이스는 새롭게 저장된다. 이 상태는 시스템 오류가 발생하더라도 취소되지 않는다.

(2) ROLLBACK

롤백은 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성이 깨졌을 때, 트랜잭션이 만든 모든 변경상황을 취소하고 이전 상태로 되돌리는 연산

(3) SAVEPOINT

세이브포인트는 현재의 트랜잭션을 작게 분할하는 명령어다. 저장된 SAVEPOINT는 ROLLBACK TO SAVEPOINT를 이용해서 지정한 곳까지 ROLLBACK할 수 있다. 여러개의 SQL문을 수반한 트랜잭션의 경우, 사용자가 트랜잭션 중간단계에서 SAVEPOINT를 지정할 수 있다.

주의사항

세이브포인트를 만들고 COMMIT 연산을 하게되면 커밋 연산 이전에 만든 세이브포인트들은 모두 날아간다. 세이브포인트는 한 트랜잭션에 여러개가 있을 수 있다.

profile
만물에 관심이 많은 잡학지식사전이자, 새로운 도전을 꿈꾸는 주니어 개발자 / 잡학지식에서 벗어나서 전문성을 가진 엔지니어로 거듭나자!
post-custom-banner

0개의 댓글