반응형

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으로 나눈 나머지













반응형

'DB' 카테고리의 다른 글

Oracle 기본 -3 GROUP BY, GROUP 함수 , HAVING  (0) 2018.05.13
Oracle 기본 -2 create,insert,update,delete,drop  (0) 2018.03.22

+ Recent posts