728x90

DQL(데이터 질의어)

  • 데이터베이스에 데이터를 조회할 때 사용하는 문법

키워드

  • SQL 문법에서 기능이 미리 할당되어 있는 예약어

 

SELECT 조회할 테이블의 컬럼 리스트 작성

FROM 조회할 테이블을 명시

 

키워드 + 요소 -> 절

SELECT + 컬럼리스트 -> SELECT절

FROM + 테이블명 -> FROM절

 

절 + 절 -> 문법

SELECT절 + FROM절 + 옵션절 -> SELECT구문

 

문법 기호

*(Asterisk) SELECT절에 단독으로 사용 시 : 모든 컬럼 출력

 

 

SELECT 구문

- 표현식(expression)

SQL> select last_name, salary, 12*salary+100
  2  from employees;

LAST_NAME                     SALARY 12*SALARY+100
------------------------- ---------- -------------
King                           24000        288100
Kochhar                        17000        204100
De Haan                        17000        204100

위의 구문 중 12*salary+100이 표현식 

서브쿼리 구문으로 테이블 조회

select last_name AS name, -- AS키워드 사용하여 last_name을 name으로 명명하여 조회
commission_pct comm -- AS키워드 사용하지 않고 한칸 띄우고 적어도 위와 동일
from employees;

 

표현식(expression)

컬럼의 값과 숫자를 사칙연산을 사용하여 결과를 연산하는 문법

 

테이블과 연관없는 표현식 조회도 가능

SQL> select department_id, 1+2
  2  from departments;

DEPARTMENT_ID        1+2
------------- ----------
           10          3
           20          3

 

공백,대소문자 구분해 AS 키워드 사용하고 싶을 시 큰 따옴표(" ")로 묶어서 사용

SQL> select last_name as "Name", salary*12 "Annual Salary"
  2  from employees;

Name                      Annual Salary
------------------------- -------------
King                             288000
Kochhar                          204000

NULL값

  • 테이블의 데이터를 입력 시 컬럼에 값을 입력하지 않으면 들어가게되는 값
  • 테이블의 설정에 따라 다른 대체값이 들어갈 수도 있음.
  • 표현식에 사용된 경우 NULL값이 포함된 컬럼의 경우 NULL값이 나온 행에서는 표현식의 내용과는 상관없이 연산결과가 NULL값으로 출력된다.

 

  • 아래의 예문도 commission_pct 컬럼의 값이 NULL값인 경우 표현식 전체의 값이 NULL로 출력
SQL> SELECT last_name, commission_pct, salary*12 + salary*12*commission_pct
  2  FROM employees;

NULL값이 포함되어 있어 조회결과가 NULL

LAST_NAME                 COMMISSION_PCT SALARY*12+SALARY*12*COMMISSION_PCT
------------------------- -------------- ----------------------------------
King
Kochhar
De Haan
Hunold

 

문자열 결합 (  | | )

 

리터럴 문자는 작은 따옴표로 감싼다 ( '  ' )

SQL> select last_name || '___' || job_id as "employees"
  2* from employees

employees
--------------------------------------
Abel___SA_REP
Ande___SA_REP
Atkinson___ST_CLERK

 

DISTINCT 키워드

중복된 값을 제거 후 조회하며 NULL값도 하나의 값이기 때문에 조회 시 나옴

SQL> select distinct department_id
  2  from employees;

DEPARTMENT_ID
-------------
          100
           30

           90

 

'DB' 카테고리의 다른 글

[오라클 DB] DQL 심화학습  (0) 2021.02.19
[오라클 DB] 온라인에서 Oracle SQL 테스트하기  (0) 2021.02.19
MongoDB 기본  (0) 2021.01.30
[오라클 DB] 유저관리, DCL  (0) 2021.01.12
[오라클 DB] DB접속 및 DCL  (0) 2021.01.05

+ Recent posts