개발(Web)/DB

[Oracle] SELECT구문을 사용한 데이터 검색

shinyelee 2020. 6. 23. 16:29

SELECT 구문을 사용해 데이터를 검색해보자.

0. 테이블 불러오기

테이블명만 불러옴.


Ⅰ. 테이블 구조 조회

desc는 describe의 약자.


Ⅱ. 테이블로부터 데이터 검색

1. select 구문

* : 모든 컬럼 출력(기본 컬럼 순서대로 출력됨).
특정 컬럼 출력.
파란색 밑줄은 컬럼 폭 조정하는 구문. a15, a50...이런 식으로 컬럼 폭을 조정할 수 있음.
괄호 유무에 따라 값 달라짐.

2. null값

COMMISSION_PCT 테이블은 빈 값이 존재한다.
이 때 빈 값은 null일까, 공백일까?
COMMISSION_PCT는 NUMBER 타입 → 숫자 타입에는 공백 못 들어가므로 null이 맞다.

* null : 사용할 수 없는 값, 알려지지 않은 값, 할당받지 못한 값, 모르는 값, 아직 정의되지 않은 값.

* null은 0이나 공백과는 다른 특수한 값으로 모든 데이터 타입에 사용할 수 있다.

* 산술식에 null이 포함되는 순간 결과값은 무조건 null이 된다.

  100 + null = null

  12345 * null / 1000 = null

  (null - 999) * 2 = null

3. Column Alias

입력 출력 비고
컬럼명 AS Alias ALIAS 기본형.
컬럼명 Alias ALIAS AS 생략 가능.
컬럼명 AS "Alias" Alias 대소문자, 특수문자, 공백 사용 가능.
컬럼명 "Alias" Alias 대소문자, 특수문자, 공백 사용 가능.
AS 생략 가능.
본래 무조건 대문자로 출력, 특수문자는 _#$(언더바, 샵, 쉘) 만 허용함.
""(큰 따옴표) 사용해 작성하면 특수문자, 대소문자 구분, 공백 사용할 수 있다.

예시 1.
예시 2.

4. 연결 연산자(||)

last_name 테이블과  job_id 테이블을 연결했으나, 띄어쓰기가 없어 두 테이블의 경계를 알 수 없음.

5. 리터럴 문자

* 쿼리구문에 포함된 일반 문자, 숫자, 날짜 값(명령어, 테이블명, alias 등 제외)

* 문자나 날짜 리터럴은 작은 따옴표로 묶어서 작성해야 함.

* 리터럴은 대소문자를 구분함.

두 테이블을 연결할 때 구분하기 위해 리터럴 문자를 사용. ' is a '로 두 테이블의 경계를 나눔.

6. DISTINCT 키워드

* 중복된 값을 자동으로 제거해주는 키워드.

중복값 제거한 결과.
중복값을 제거하지 않으면
이렇게 많이 차이가 난다.


Ⅲ. 연습문제

1. employees 테이블로부터 employee_id, last_name, job_id, hire_date를 출력하되 컬럼 제목을 각각 Emp #, Employee, Job, Hire Date로 지정하여 출력하시오.

alias - as 써도 되고 생략해도 됨.

2. employees 테이블로부터 모든 사원의 last_name과 job_id를 출력하되 하나의 컬럼에 이어서 표시하고(쉼표와 공백 사용) 컬럼명을 Employee and Title로 지정하시오.

출처 : 아이티윌 부산교육센터 Oracle Database 12c : 실습가이드북

반응형

'개발(Web) > DB' 카테고리의 다른 글

[Oracle] GROUP BY절과 HAVING절  (0) 2020.06.30
[Oracle] 단일 행 함수 (2)  (0) 2020.06.30
[Oracle] 단일 행 함수 (1)  (0) 2020.06.30
[Oracle] WHERE(조건문)절과 ORDER BY(정렬)절  (0) 2020.06.26
[Oracle] 터미널 실행하기  (0) 2020.05.30