SQL Commands
Table of contents
- DDL(Data Definition Language)
- DQL(Data Query Language)
- DML(Data Manipulation Language)
- TCL(Transaction Control Language)
- DCL(Data Control Language)
- Exercise
DDL(Data Definition Language)
DDL Basic
데이터 정의어
▸ 새로운 데이터베이스 구조를 정의하고 기존 데이터베이스 구조를 변경하는 명령어 집합
▸ 데이터베이스 구조를 표현하는 데이터베이스 스키마를 명세하기 위해 사용
사용 명령어
CREATE : DB객체(user, table, view, index, …)를 생성
ALTER : 기존의 테이블(DB객체)을 변경함 (컬럼을 추가하거나 변경)
RENAME : 테이블(DB객체)의 이름을 변경함
TRUNCATE : 테이블(DB객체)을 잘라냄 (테이블 내의 저장된 내용 삭제)
DROP : 기존의 테이블(DB객체)을 삭제함 (테이블의 구조 자체를 제거)
DQL(Data Query Language)
DQL Basic
데이터 조회어
▸ 아래 DML에 포함시키기도 함
사용 명령어
- SELECT : 테이블에 저장된 데이터를 조회하는 데 사용되는 가장 기본적인 문법
Select Statement
테이블 내의 데이터를 조회할 때 사용
SYNTAX
SELECT [distinct] 컬럼명 FROM 테이블명 [WHERE …]
distinct : 중복제거
컬럼명
- : 객체(table, view)의 모든 컬럼을 출력
별칭(alias) : 해당객체 또는 컬럼명을 다른 이름으로 정의
- 표현식
[] : where, order by… 절은 생략이 가능
DML(Data Manipulation Language)
DML Basic
데이터 조작어
▸ 데이터베이스 안의 데이터를 실제 조작하는 명령어 집합
▸ DBMS에게 데이터의 입력, 수정, 삭제 및 검색을 요청하기 위해 사용
사용 명령어
INSERT : 새로운 데이터를 삽입함
UPDATE : 기존의 데이터를 변경함
DELETE : 기존의 데이터를 삭제함
insert Statement
데이터를 해당하는 테이블에 삽입하기 위해 사용
SYNTAX
INSERT INTO employees VALUES (‘id’,’부서이름’,’연봉’ …..);
update Statement
테이블에 저장되어 있는 데이터를 수정할 때 사용
delete Statement
테이블에 있는 데이터를 삭제할 때 사용
TCL(Transaction Control Language)
트랜잭션 제어언어
▸ 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구시키기 위해서 사용
▸ Transaction은 여러개의 DML(데이터조작어) 명령문들을 하나의 작업단위로 묶어놓은 집합
▸ 실수 없이 완벽하게 입력한 명령어만 영구저장하기 위해 TCL을 사용
▸ 한번 커밋하면 롤백 불가
▸ 비절차적 언어 : 위에서 오류나도 오류난 것 아래들은 실행됨
사용 명령어
COMMIT : 변경된 내용을 영구 저장
ROLLBACK : 변경되기 이전 상태로 되돌림
SAVAPOINT : 특정 위치까지를 영구 저장 혹은 이전 상태로 돌리기 위해 저장점을 만듬
DCL(Data Control Language)
데이터 제어어
▸ 데이터베이스를 제어하고 통제하기 위해 사용하는 명령어 집합
▸ 데이터베이스가 무결성을 유지하도록 각종 제약이나 옵션을 설정함
▸ Mutual exclusion(상호배제)를 통한 transaction이 서로 방해를 받지 않도록 병행 제어
사용 명령어
GRANT : 사용자에게 특정 권한을 부여
REVOKE : 부여했던 권한 제거
Exercise
Connection Operator
select name
|| '''s ID : '
|| id
|| ', weight is '
|| weight
|| 'kg' "ID and Weight"
from student;
select ename
|| '('
|| job
|| ') , '
|| ename
|| ''''
|| job
|| '''' "Name and Job"
from emp;