Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

기록 저장소

2/21 [Database #2] Select_기본문법 본문

kitri 노트/oracle

2/21 [Database #2] Select_기본문법

resault 2019. 3. 10. 20:02


* desc [table] : 해당 테이블의 설명 (커멘드에서 사용하는 오라클 명령어임)
* DB에서의 대/소문자 : 데이터만 구분됨 (column이름은 구분X)

[ 검색문 (select) ]


1. 실행순서

select
2
3
3
5
from
1
1
1
1
where

2
2
2
group by



3
having



4
order by


4
6



1) from

(1) 기본 형태

select [all | distrinct] ( * | col1 [[as] "alias"] [, col2, ... colN] )
from table_name;

* [ ] 는 생략해도 되는 부분이란 의미임.
* | : a or b


▷ distinct : 중복행 제거

- select 절의 맨 앞에만 나옴. column을 여러개 입력하더라도 전체에 걸쳐 적용됨 (기본값은 : all)

-- 부서번호 (employees 기준, 중복제거)
select distinct department_id, employee_id
from employees;


▷ * : 테이블 전체 출력

-- jobs 테이블의 전체 출력
select * 
from jobs;


▷ select col1, col2, col3, ... : 특정 column 출력

-- 직책, 최소 급여 출력
select job_id, min_salary
from jobs;


▷ alias : 별칭. as와 "는 생략 가능 (but, "의 경우 별칭에 공백이 있을 때에는 반드시 사용해야 함)
    * 홑따옴표는 인수에 쓰는 것!! 구분에 유의할 것

-- 사번, 이름, 급여, 200인상 급여(급여 200)
select employee_id as "사번", first_name "사번", salary 사번, salary + 200 "급여 200"
from employees;


▷ 산술연산 가능
    * oracle 산술연산에서는 / 가 나머지 연산자 아님!!

-- 산술연산
select 1+1, 10-5, 2*10, 10/3
from dual;


dual : test용 테이블

- from 뒤에 table 식별자를 입력해버리면 해당 테이블의 컬럼 수만큼 값이 반환됨




2) 관련함수

(1) nvl : 인수1의 값이 null일 때, 인수2의 값을 반환

nvl ( col_name, number )

▷ 예제
-- 사번, 이름, 급여, 커미션 포함 급여
select employee_id, first_naem, salary, salary*(1 + nvl(commission, 0)
from employees;

* DB에서의 null값은 알수 없음을 의미함 (프로그래밍에서의 만들어지지 않았다와 다른 의미임)


(2) || : 문자열 합치기(파이프 연산)

- 컬럼이 아닌 문자열을 입력할 때는 '' 사용함 (""는 별칭에만 사용!!)

▷ 예제
-- 사번, 이름(풀네임)
select employee_id, first_name || ' ' || last_name
from employees;

-- 사번이 100번인 사원의 이름은 Steveen King입니다.(info)
select '사번이 ' || employee_id || '번인 사원의 이름은 ' || first_name || ' ' || last_name || '입니다.'
from employees;


- end.