Oracle 기본 -1
1.DESC
2.select
3.distinct
4.where
5.오라클 숫자함수
(ROUND, TRUNC, MOD)
1.DESC
테이블 구조를 파악할 수 있음, 컬럼별 속성이 나옴
ex)
DESC employees; --특정 테이블에 어떤 칼럼이 있는지 조회
2.select
컬럼들을 조회할 수 있다.
--select [컬럼명 또는 표현식] from [테이블명 또는 뷰 명];
ex)직원 아이디랑 email를 검색할때
select employee_id,email from employees;
--리터럴 문자
select 'very Good' -←리터럴 을 나타낼때 '' 작은 따옴표를 씀 큰따옴표는 쓰지않음
from employees;
ex)
select employee_id,first_name,'very Good' from employees;
--출력할때 나오는 컬럼명을 임시적인 별명으로 나오게 할 수 있음
ex)
select employee_id "직원명" , first_name as "성" --select 컬럼명 "출력할때컬럼명"
from employees;
--연결 연산자
컬럼들을 붙여서 보여준다
select first_name || last_name from employees;
-- ||을 기준선으로 해서 합쳐서 보여주기
ex)
select first_name ||' '|| last_name from employees;
3.distinct
--중복된 값을 제거하고 출력하기
ex)
select distinct department_id from employees;
4.where
where 컬럼명 = 값;
을 통해서 조건문을 만들고
그조건에 해당하는 row를 찾을 수 있다
ex)
select first_name ||' '||last_name "성명",department_id --컬럼명
from employees --테이블
where department_id = 90; --원하는 조건
ex)
salary 값이 15000보다 큰사람들의 first name과 salary를 출력하시오
select first_name , salary
from employees
where salary > 15000;
ex)
department_id 가 10인 사람의
first_name, 연봉(salary), 월급(연봉/12),department_id 들을 출력하시오
select first_name "성", salary "연봉", round(salary/12) "월급",department_id "부서 ID"
from employees
where department_id = 10;
ex)
salary가 14000에서 17000사이인 사람들의 first_name과 salary를 출력하시오
select first_name, salary
from employees
where salary between 14000 and 17000;
ex)
first_name이 Neena, Lex, John에 해당하는 사람들의 성명과 연봉을 출력하시오
select first_name, last_name, salary
from employees
where first_name IN ('Neena','Lex','John');
ex)
--first_name이 L로 시작하는 사람들의 성명과 연봉 을 출력하시오
select first_name ||' '|| last_name, salary
from employees
where first_name like 'L%' ;
ex)
--first_name이 L로 시작하고 last_name이 Po로 시작하는
사람들의 성명과 연봉 을 출력하시오
select first_name ||' '|| last_name, salary
from employees
where first_name like 'L%' and last_name like 'Po__';
ex)
--연봉이 10000보다 크고 Department_id가 90 인
사람들의 first_name, salary,department_id,hire_date 들을
salary를 기준으로 오름차순으로 정렬해서 출력하시오
select first_name , salary , department_id , hire_date
from employees
where salary > 10000
and department_id = 90;
order by salary ; -- salary를 기준으로오름차순으로 정렬(ASC)
order by salary DESC; -- 내림차순,DESC, 기본값이 아니라서 명시적으로 써줘야됨
ex)
--연봉이 10000보다 크고 Department_id가 90 보다 큰 사람들의
first_name, salary,department_id,hire_date 들을
연봉은 높은순(내림차순)으로, 입사일자 기준으로 오래된 순(오름차순)으로
정렬해서 출력하시오
-- order by 기준을 2개로 맞춰 놓을 수도 있다
select first_name , salary , department_id , to_char(HIRE_DATE,'YYYY-MM-DD')
from employees
where salary > 10000
order by salary DESC , HIRE_DATE ASC;
-- salary 기준으로 DESC(내림차순), hire_date 기준으로 ASC(오름차순)
5.오라클 숫자함수
(ROUND, TRUNC, MOD)
ROUND 함수는 지정한 자리수 이하에서 반올림 한 결과를 구해주는 함수이다
즉 지정한 자리수까지만 남도록
다음 자리수에서 반올림 해준다는 뜻이다
round(number속성을 가진 컬럼,반올림자리수)
ex)
select round(12.3456789) "round일의자리까지" -- 기본값 일의 자리까지
,round(12.3456789,1) "round소수첫째자리까지" -- 소수 첫째자리까지
,round(12.3456789,2) "round소수둘째자리까지"-- 소수 둘째자리까지
,round(12.3456789,3) "round소수셋째자리까지"-- 소수 셋째자리까지
,round(12.3456789,4) "round소수넷째자리까지" from dual; -- 소수 넷째자리까지
TRUNC함수는 지정한 자리 수 이하를 버린 결과를 구해주는 함수이다
즉 지정한 자리수까지만 남도록 다음 자리수는 버림을 한다는 거다
ex)
select trunc(12.3456789) "trunc일의자리까지" -- 기본값 일의 자리까지 남기고 버림
,trunc(12.3456789,1) "trunc소수첫째자리까지" -- 소수 첫째자까지 남기고 버림지
,trunc(12.3456789,2) "trunc소수둘째자리까지"-- 소수 둘째자리까지 남기고 버림
,trunc(12.3456789,3) "trunc소수셋째자리까지"-- 소수 셋째자리까지 남기고 버림
,trunc(12.3456789,4) "trunc소수넷째자리까지" from dual; -- 소수 넷째자리까지 남기고 버림
MOD함수는 modulus 의 약자로 나누기 연산을 한후에 나머지를 구해주는 함수이다
( 프로그래밍에서 '%' 연산자와 같음)
mod(x,y) 는 x%y 와 같다 즉 x를 y로 나눈 나머지를 말한다
ex)
select mod(3,1) "3 mod 1 == 3%1" -- 3을 1로 나눈 나머지
,mod(3,3) " 3 mod 3 == 3%3" -- 3을 3으로 나눈 나머지
,mod(9,3) "9 mod 3 == 9%3" -- 9를 3으로 나눈 나머지
,mod(10,3) "10 mod 3 == 10%3" -- 10을 3으로 나눈 나머지
,mod(7,3) "7 mod 3 == 7%3" from dual; -- 7를 3으로 나눈 나머지