Database

11.16.(수) OracleDB(3): 데이터 조작어(1)

콜라든포비 2022. 11. 16. 23:48

데이터 조작어 (Data Manipulation Language)

스키마 객체의 데이터를 입력, 수정, 조회, 삭제하는 명령어이다.

그 중 제일 자주 쓰이는 조회 명령어 SELECT문과 같이 사용 가능한 연산자들도 같이 알아보자.

알아보기 전에 SQL문의 특징에 대해서 한번 짚고 넘어가자.

  • 대소문자를 구별하지 않는다.
  • 한 줄 또는 여러 줄에 입력될 수 있다.
  • 일반적으로 키워드는 대문자로 입력한다.
  • 마지막 절 끝에 ";"를 입력하여 명령의 끝을 표시한다.

SELECT문

데이터베이스로부터 저장되어있는 데이터를 검색/조회할 떄 사용한다.

가장 기본적인 형태는:

SELECT {column} FROM table_name
[WHERE condition]
[ORDER BY {column, expression} [ASC | DESC]];

{중괄호}는 반드시 하나 이상의 조건이 들어있어야 하고, [대괄호]는 없어도 실행 가능하다는 뜻이다.

테이블에서 지정된 행에 담겨있는 데이터를 뽑아오는 방식이다.

이러한 기본 형태에 몇 가지 연산자들이 붙을 수 있는데, 하나하나씩 알아보자.

예를 들어,

SELECT empno as 사번, ename 성명 FROM emp;

칼럼 옆에 해당 칼럼을 어떻게 표시할지 알려주는 키워드는 as이다. 하지만 생략이 가능하다.

만약 표시하고자 하는 문구에 띄어쓰기가 포함되어있다면 ""으로 범위를 지정해줘야 한다.

연산자

기본적으로 산술 연산자, 비교연산자, 논리연산자를 사용할 수 있다.

  1. 산술연산자 : +, -, *, /
  2. 비교연산자 : =, !=, <>, ^=, >, <, >=, <=
  3. 논리연산자 : AND, OR, NOT
  4. SQL 연산자

조금 생소하게 다가올 SQL 연산자에 대해 알아보자. SQL 연산자는 WHERE절에 사용된다.

IN, NOT IN 연산자

연산자 OR과 같은 역할을 수행한다.

SELECT empno, ename FROM emp
WHERE empno IN(7900, 7934);

사번이 7900 OR 7934인 사원의 사번과 이름을 출력한다.

반대로 NOT IN은 사번이 7900 OR 7934가 아닌 사원의 정보를 출력한다.

BETWEEN 연산자

AND를 이용해 두 조건을 결합해준다. 사전적 의미와 같이 ~와 ~사이의 역할을 수행한다.

SELECT empno, ename FROM emp
WHERE sal BETWEEN 3000 AND 5000;

급여가 3000에서 5000 사이인 사원의 사번과 이름을 출력한다.

LIKE 연산자

검색 STRING값에 해당하는 데이터를 출력한다.

%기호와 결합하여 검색범위를 설정할 수 있다.

  • LIKE 'A%' : 컬럼이 ‘A’로 시작하는 데이터들만 검색한다
  • LIKE '%A' : 컬럼이 ‘A’로 끝나는 데이터들만 검색한다
  • LIKE '%A%' : 컬럼에 ‘A’ 문자가 있는 데이터들만 검색한다
  • LIKE '%A%B%' : 컬럼에 ‘A’문자와 ‘B’문자가 있는 데이터들만 검색한다 (순서 중요)
  • LIKE '_A%' : 컬럼에 ‘A’문자가 두 번째 위치한 데이터들만 검색한다 (_의 개수에 따라 시작위치 변경 가능)
SELECT empno, ename FROM emp
WHERE ename LIKE '_I%';

이름에 I가 두번째로 나타나는 사원의 이름을 출력한다.