지난 포스팅에서 Oracle 클라우드를 이용해
개인용 데이터베이스를 생성했죠.
이번 시간에는 SQL과 SQL 연산자
그리고 DML(데이터 조작어)에 대해서 다뤄보고자 합니다.
● SQL
SQL이란,,
Structured Query Language의 약어로,
관계형 데이터베이스에서 데이터를 조회하거나 조작하기 위해 사용하는 표준 검색 언어로
원하는 데이터를 찾는 방법이나 절차를 기술하는 게 아닌
조건을 기술하여 작성하는 언어를 말합니다.
SQL은 크게 4가지로 분류가 됩니다.
DQL, DML, DDL, TCL 이렇게 4가지 구성이 있는데요.
보통 DQL은 DML에 속해서 다루고,
TCL은 DCL이라고도 합니다.
● SELECT
SELECT란 데이터를 조회(검색)하는 명령어로 사용됩니다.
데이터를 조회한 결과를 Result Set이라고 하는데 ,
SELECT구문에 의해 반환된 행들의 집합을 의미합니다.
Result Set은 0개 이상의 행이 포함될 수 있고 특정 기준에 의해 정렬 가능합니다.
한 테이블의 특정 컬럼, 행, 행/컬럼 또는 여러 테이블의 특정 행/컬럼 조회가 가능합니다.
작성법은 아래와 같습니다.
○ SELECT 예시 - 기본
예시로서
직원의 사번과 이름, 월급을 조회하는 구문을 아래와 같이 작성하고
결과를 확인해봅시다.
○ SELECT 예시 - 컬럼 값 산술 연산
○ SELECT 예시 - 컬럼 별칭
○ SELECT 예시 - 리터럴
○ SELECT 예시 - DISTINCT
○ SELECT 예시 - WHERE절
● 연산자
○ 연결 연산자
연결 연산자란,
‘||’를 사용하여 여러 컬럼을 하나의 칼럼인 것처럼 연결하거나
칼럼과 리터럴을 연결하는 것을 말합니다.
예시)
○ 논리 연산자
논리 연산자는,
여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어줍니다.
○ 비교 연산자
비교 연산자란,
표현식 사이의 관계를 비교하기 위해 사용하고,
비교 결과는 논리 결과(TRUE/FALSE/NULL) 중 하나가 됩니다.
단, 비교하는 두 칼럼 값/표현식은 서로 동일한 데이터 타입이어야 합니다.
주요 비교 연산자를 하나씩 분석해봅시다.
◎ 비교 연산자 - BETWEEN AND
◎ 비교 연산자 - LIKE
◎ 비교 연산자 - NOT LIKE
◎ 비교 연산자 - IS NULL, IS NOT NULL
◎ 비교 연산자 - IN
○ 연산자 우선순위
이제 SQL(SELECT)의 간단한 예제를 풀어봅시다.
DML(SELECT) 예제
※ 모든 SQL 예제는 테이블을 생성하지 않고 문제만 봐도 풀 수 있습니다!
난이도 ☆
예제 1
Q : departments 테이블에서 department_name 이 Marketing 인 데이터 조회
풀이 :
SELECT *
FROM departments
WHERE department_name = 'Marketing';
난이도 ★
예제 2
Q : departments 테이블에서 department_name 이 IT 가 포함된 데이터 조회
풀이 :
SELECT *
FROM departments
WHERE department_name LIKE '%IT%';
난이도 ★
예제 3
Q : locations 테이블에서 country_id 가 US 인 데이터 조회를 할 때
street_address , postal_code, city 칼럼이 조회되도록 한다.
풀이 :
SELECT street_address AS 도로주소
, postal_code AS 우편번호
, city AS 도시명
FROM locations
WHERE country_id = 'US';
('AS' 별칭은 선택사항)
난이도 ★☆
예제 4
Q : locations 테이블에서 postal_code 가 5자리인 데이터 조회
풀이 :
SELECT *
FROM locations
WHERE postal_code LIKE '_____';
난이도 ★
예제 5
Q : employees 테이블에서 manager_id 가 100이고 department_id 가 50인 데이터 조회
풀이 :
SELECT *
FROM employees
WHERE manager_id = 100
AND department_id = 50;
난이도 ★
예제 6
Q : employees 테이블에서 commission_pct 가 NULL 이 아니면서
salary 가 10000 이상인 데이터를 조회
풀이 :
SELECT *
FROM employees
WHERE commission_pct IS NOT NULL
AND salary >= 10000;
난이도 ★★
예제 6
Q : COUNTRY 테이블에 모든 데이터를 조회(단, 컬럼명은 한글로 한다.)
COUNTRY 테이블의 컬럼 :
(
country_id
country_name
region_id
)
풀이 :
SELECT country_id AS 국가코드
, country_name AS 국가명
, region_id AS 지역코드
FROM countries;
이상 DML(SELECT) 문제를 마치겠습니다.
다음 포스팅에선 DML(INSERT,DELETE,UPDATE) , DDL(CREATE)에 대해 다뤄보고자 합니다.
https://healthdevelop.tistory.com/entry/db3