|구조화된 언어 SQL

DBMS는 데이터와 관계된 모든 일련의 작업들을 처리하며, 특히 데이터의 조회, 저장, 삭제와 같은 작업을 SQL(Structured Query Language)을 통해 처리

일반적인 프로그래밍 언어들은 절차적 언어의 특징을 갖고 있지만 SQL은 절차적 언어처럼 처리과정을 일일이 기술할 필요가 없다.


|SQL특징

1. 배우고 사용하기 쉬운 언어

2. 절차적언어가 아닌 선언적 언어이기 때문에 세부적인 과정을 신경쓰지않아도됨

3. DBMS의 종류에 얽매이지 않고 사용


[ SQL의 그 역할에 따라 크게 DML과 DDL 두 가지로 구분된다.]

- DML(데이터 조작어) : 데이터를 추출, 저장, 삭제 등 데이터를 조작

- DDL(데이터 정의어) : 데이터가 저장되는 테이블이나 각종 객체들을 생성하는 역할


|데이터 조작하기(DML)

기본 패턴

- 데이터 조회 : SELECT

- 데이터 삭제 : DELETE

- 데이터의 저장 : INSERT(신규 데이터 입력)

UPDATE(기존 데이터 수정)



1. SELECT 문

[기본패턴]

SELECT  컬럼1, 컬럼2, ......         //선택하고자 하는 컬럼 이름

 FROM  테이블1, 테이블2, ......   //선택하고자 하는 테이블 명

WHERE  조건들;                    //조건식(생략가능) 


EX) 2006년 이후에 입사한 직원들 이름 조회

SELECT last_name, first_name

 FROM employees

WHERE hire_data >= '2006-01-01';

// 직원(employees)테이블에서 2006/1/1일 이후에 입사한 조건을 가진 직원의 이름(last_name, first_name)을 추출


2. INSERT 문

[기본패턴1]

INSERT INTO 테이블명1(컬럼1, 컬럼2, .....)

VALUES(컬럼1 값, 컬럼2 값, ....);


[기본패턴2]     // 테이블에 있는 모든 컬럼에 데이터를 넣는다.

INSERT INTO 테이블명2

VALUES(컬럼1 값, 컬럼2 값);


* 컬럼 리스트와 컬럼에 들어갈 값의 순서는 정확히 맞아야 한다.

* 두 번째 유형을 사용했을 경우 VALUES절에 컬럼의 값 중 단 하나라도 없으면 오류


[기본패턴3]

INSERT INTO 테이블명1(컬럼1, 컬럼2, ... )

SELECT 컬럼1, 컬럼2, ....

 FROM 테이블2

WHERE .... ;


3.UPDATE 문

[기본패턴]

UPDATE 테이블명

      SET 변경컬럼1 = 변경하고자 하는 값,

변경컬럼2 = 변경하고자 하는 값,

........

WHERE 조건절 .... ;


4. DELETE 문

[기본패턴]

DLETE [FROM] 테이블

WHERE 조건....;


5. COMMIT 문

실제 데이터의 변경은 데이터 파일에 변경사항이 반영될 때 발생하게 된다. 그 전에는 변경된 데이터들은 오직 오라클 메모리 상에만 존재하게 된다.

최종적으로 데이터 파일에 적용하는 시점은 COMMIT문장을 실행했을 때

[기본패턴]

COMMIT [WORK] [TO SAVEPOINT savepoint_name];


6. ROLLBACK 문

COMMIT과 반대의 개념, 변경된 데이터들을 변경 전 상태로 되돌리는 역할

[기본패턴]

ROLLBACK [WORK] [TO SAVEPOINT savepoint_name];


|객체 조작하기(DDL)

1. CREATE 문

데이터베이스 객체들을 생성할 때 사용

[기본패턴]

CREATE 객체종류 객체명...

EX) CREATE TABLE 테이블명

     CREATE INDEX 인덱스명


2. DROP 문

이미 생성된 객체들을 삭제할 때 사용

[기본패턴]

DROP 객체종류 객체명....


3. ALTER 문

기존에 생성된 객체를 변경할 때 사용


4. TURNCATE 문

DELETE문과 동일한 역할을 한다. 그러나 TURNCATE 문을 사용하여 데이터를 삭제했을 경우 ROLLBACK을 사용하여 데이터를 복구할 수 없다. TRUNCATE가 실행되면 자동 COMMIT이 되기 때문에...

테이블과 클러스터에만 적용이 가능

[기본패턴1]

TRUNCATE TABLE 테이블명,,,,,

[기본패턴2]

TRUNCATE CLUSTER 클러스터명......


*클러스터 : 하나 이상의 컬럼을 공유하여 동일한 값을 가진 하나 이상의 테이블의 로우들을 인접한 장소에 함께 저장하는 객체

* DCL(데이터 제어어) : GRANT( 허용권한제공) REVOKE( 허용권한 없애기)



+ Recent posts