IT/DB / / 2023. 4. 17. 10:57

[Oracle 관리실무] Chapter 2. SQL의 사용

반응형

1. SQL 이란?

(1) SQL 개념

SQL은 Structured Query Language의 약자로 데이터베이스에서 테이블 및 기타 데이터베이스 요소들에 대해 조회, 입력, 수정, 삭제, 변경, 권한 등에 사용되는 질의 언어입니다.

(2) SQL 종류

  • DQL - 테이블에 저장되어 있는 데이터를 조회할 수 있는 SQL
  • DDL - 테이블이나 다른 오브젝트를 생성하고 변경할 수 있는 SQL
  • DML - 테이블의 데이터를 제거, 갱신 및 추가할 수 있는 SQL
  • TCL - 트랜잭션, 롤백, 임시 저장점을 처리하는 SQL
  • DCL - 데이터베이스 오브젝트에 대해 조회하고 변경할 수 있게 권한을 관리하는 SQL

* 일부에서는 SQL 종류를 DDL, DML, DCL으로 구분합니다. 이 때는 DQL이 DML에 포함되며, TCL은 DCL에 포함되어 설명합니다.

 

2. DQL

(1) 조회의 개념

조회는 테이블에서 원하는 데이터를 추출하기 위해 사용하는 SQL입니다.

 

(2) 조회와 인덱스

데이터베이스에서의 인덱스는 사전의 인덱스와 동일합니다. 인덱스는 조회 속도를 향상시키기 위한 기술입니다. 인덱스를 이용한다고 항상 성능이 보장되지 않습니다. 때로는 인덱스를 사용 하는 것보다 전체 테이블의 데이터를 액세스 하는 것이 더 빠른 성능을 보일 때도 있습니다.

 

 

* 전체 테이블 스캔과 인덱스 스캔의 차이

대용량 데이터 중 극히 일부의 데이터를 찾을 때는 인덱스 스캔방식을 이용하여 몇번의 I/O만으로 데이터를 찾고, 전체 테이블 스캔은 모든 데이터를 읽으면서 원하는 데이터를 찾아야 하므로 비효율적인 검색을 한다. 그러나 어차피 한번에 여러 블록씩 읽는거라면 전체 테이블 스캔 방식이 유리할 수 있다.

 

(4) 열 타입 자동 변경

오라클에서는 문자열 타입을 숫자열 타입으로 변경하는 함수를 사용하여 내부적으로 변형이 발생되어 SQL을 수행한다. 변형된 열에 인덱스가 존재하더라도 사용할 수 없게 됩니다. 이유는 인덱스를 구성하는 열에 함수를 사용하면 인덱스를 사용할 수 없는 절대 원칙이 있기 때문입니다.

(5) 중복 데이터 제거 방법

조회시 중복된 값이 추출되지 않고 유일한 값만이 추출하려고 할 때, 오라클에서 제공하는 DISTNCT 키워드를 사용하여 유일한 값을 추출할 수 있습니다.

 

3. DML (삽입)

(1) 삽입의 개념

삽입은 발생한 데이터를 특정 테이블에 저장하기 위해 사용하는 SQL입니다.

 

(2) 인덱스와 삽입

특정 테이블에 데이터를 삽입하는 성능을 높이기 위해서는 인덱스 개수를 감소시켜야 합니다. 인덱스가 존재 하면 데이터를 테이블에 삽입 하는 것 뿐만 아니라 해당 데이터의 인덱스 정보를 저장하는 작업을 수행하기 때문에 성능을 저하시킵니다.

4. DML (갱신)

(1) 갱신의 개념

갱신은 테이블의 데이터 값을 변경하기 위해 사용하는 SQL입니다.

 

5. DML (삭제)

(1) 삭제의 개념

삭제는 불필요한 데이터를 테이블에서 제거하여 해당 데이터를 조회하지 못하게 하는 SQL입니다.

(3) 테이블 데이터 제거방법

DELETE - 불필요한 데이터에 대해 행 단위 삭제

DROP - 테이블의 전체 데이터와 테이블 형식 삭제

TRUNCATE - 테이블의 전체 데이터만 삭제

DELETE를 이용한 데이터 삭제의 경우를 제외하고는 나머지 두 가지 방법은 데이터를 저장하기 위해 사용하던 공간을 반납하기 때문에 다른 곳에서 해당 공간을 재사용할 수 있습니다. 작업 속도는 DELETE를 이용한 데이터 삭제의 경우 삭제되는 행마다 로그를 기록하기 때문에 속도가 느립니다.

 

6. DDL

(1) 변경의 개념

변경은 테이블 또는 테이블을 구성하는 열에 대해 기존 형식을 변경할 경우 사용하는 SQL입니다.

 

7. DCL

(1) DCL(데이터 제어어)의 개념

데이터 제어어는 데이터 변경에 대한 권한을 할당 및 제거하는 SQL입니다.

 

(2) DCL(데이터 제어어) 종류

할당 - 필요한 권한을 부여하는 데이터 제어어로 GRANT 명령어 사용

제거 - 부여된 권한을 취소하는 데이터 제어어로 REVOKE 명령어 사용

 

(3) 권한의 종류

시스템 권한 - 시스템적인 작업을 수행하기 위해 필요한 권한

오브젝트 권한 - 테이블 등의 오브젝트에 대한 작업을 수행하기 위한 권한

 

(4) 시스템 권한

시스템 권한은 테이블 생성 등 데이터베이스 수준에서의 작업을 수행하기 위한 권한을 의미합니다.

GRANT CONNECT, RESOURCE TO SCOTT;

(6) 오브젝트 권한

오브젝트 권한은 테이블이나 뷰, 시퀀스, 프로시저, 함수 또는 패키지 중 지정된 한 오브젝트에 특별한 작업을 수행할 수 있는 권한을 의미합니다.

반응형

'IT > DB' 카테고리의 다른 글

DB - SQL Query 작성 1  (0) 2023.04.18
DB - SQL Query 작성 2  (0) 2023.04.18
DB - SQL Query 작성 3 & 연습문제  (0) 2023.04.18
[Oracle 관리실무] Chapter 3. 트랜잭션  (0) 2023.04.17
[Oracle 관리실무] Chapter 1. SQL과 데이터  (2) 2023.04.17
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유