[Oracle] 기본 이해하기
select 문
: 데이터베이스에 있는 데이터를 검색하는 문
주석 달기
/*
select 열이름1, 열이름2 --단일행 주석
from 테이블명;
*/ --여러행 주석
desc 테이블명 : 테이블의 구조 확인
NOT NULL : null값을 허용하지 않는다(필수 항목)
NUMBER : 숫자 유형
VARCHAR2 : 문자유형
DATE : 날짜유형
null : null은 사용할 수 없거나, 할당되지 않았거나, 알 수 없거나, 적용할 수 없는 값
-null은 0, 공백이 아님. 계산해도 무조건 null값
열별칭 : 열 이름을 다른 이름으로 바꿔서 출력
-열 이름 바로 뒤에 입력해야함. as 키워드 사용 가능.
-열별칭에 숫자/공백/특문(_,$,# 제외) 포함, 대소문자를 구분하려면 "큰 따옴표"를 묶어야 한다.
select 열수식 (as) "열별칭"
from 테이블명;
산술연산자 * / + -
number : * / + - 가능
date : + - 가능
char(문자) : 사칙연산 불가
사칙연산은 우선순위 적용. 단, 우선순위를 제어하려면 괄호 이용
연결연산자 ||
: 열이나 문자열을 다른 열에 연결. 결과 열은 문자식으로 생성된다.
select 열이름1 || 열이름2
from 테이블명;
리터럴 문자열
-숫자, 날짜, 문자는 '작은 따옴표'로 묶어야 한다.
- ' 를 문자로 표현하려면 앞에 한 번 더 ' 쓰거나
q'[문자열]'
q'<문자열>'
q'(문자열)'
q'!문자열!'
q'{문자열}' 사용
select 'My name''s' || 열이름
from 테이블명;
select q'[My name's ]' || 열이름
from 테이블명;
중복행 제거 Distinct
select절에 한 번만 사용 가능
select distinct 열이름
from 테이블명;
select distinct 열이름1, 열이름2 --열이름1 데이터값과 열이름2 데이터값이 같은 중복이여야 제거됨
from 테이블명;
[문제1] employees 테이블에서 employee_id, last_name과 first_name은 연결해서 표시하고(공백으로 구분) 열 별칭은 화면예 처럼 보고서 작성해 주세요.
Emp# Employee Name
100 King Steven
101 Kochhar Neena
102 De Haan Lex
...
select employee_id "Emp#", last_name || ' ' || first_name "Employee Name"
from employees;
[문제2] employees 테이블에서 컬럼중에 last_name, job_id를 연결해서 표시하고(쉼표와 공백으로 구분) 열 별칭은 화면예 처럼 보고서 작성하세요.
Employee and Title
Abel, SA_REP
Ande, SA_REP
...
select last_name || ', ' || job_id "Employee and Title"
from employees;
[문제3] departments 테이블에 있는 데이터에서 department_name , manager_id 컬럼을 가지고 화면 결과 처럼 출력하는 쿼리문장을 만드세요.
Department and Manager
Administration Department's Manager Id: 200
Marketing Department's Manager Id: 201
Purchasing Department's Manager Id: 114
...
select department_name || q'[ Department's Manager Id: ]' || manager_id "Department and Manager"
from departments;