DAY 3 - SQL활용#1 부서/사원 테이블

Min·2023년 7월 27일
0

테이블 작성의 위주의 실습을 진행하였다. 오랜만에 작성해보는 SQL문이라 어색해서 여러번 작성해도 몇 번이나 다시 본다.

hr계정은 회사에서 사원을 관리하는 데이터베이스이다. (hr계정에 실습을 함.)

1.부서/사원 테이블 실습해보기

(1) distinct로 중복 제거하기

select employee_id from job_history;    

사원들의 사번 중 중복된 값으로 101,176,200이 있는 것을 확인이 된다.

select distinct employee_id from job_history;

중복된 데이터가 제외되면서 10개의 데이터가 7개로 출력됨.

(2) select의 where절

where절의 조건문을 사용하여 테이블의 원하는 데이터만 출력할 수 있다.

속성설명
=, !=, <>처음 것은 같을 때 다를때 참(true)이다.
>, >=, < , <=왼쪽이 클 때, 왼쪽이 크거나 작을 때 ,오른쪽이 클 때,
오른쪽이 크거나 같을 때 참이다

ex) 봉급이 10000이상인 사원의 아이디와 이름과 봉급을 출력하시오

select employee_id,first_name,salary from employees where salary > 10000;

(3) null 검색하기

특정 컬럼에 null이 들어 있는 데이터를 찾을 때 = 연산자를 사용해서 찾을 수 없다.
null이 들어 있는 데이터를 찾고 싶다면 'where 컬럼명 is null'
null이 아닌 데이터를 찾고 싶다면 'where 컬럼명 is not null'를 사용한다.

ex)커미션이 있는 사원의 정보를 출력해보자.

select * from employees where commission_pct is not null; // 커미션이 있으니깐 null이 아님(is not null)
 

(4) 컬럼 연산

컬럼을 연산자로 연산하여 새로운 결과를 얻어낼 수 있다.
컬럼+컬럼 , 컬럼+,숫자 , 숫자+숫자

ex)사원의 봉급을 50증가한 형태로 출력해보자

select salary+50 from employees; 

ex)사원의 현봉급보다 10% 증가한 형태로 출력해보자

select salary*1.1 from employees; 

(5) 컬럼 별명

연산된 컬럼명은 복잡해서 별명을 이용해서 사용한다.

ex)사원의 현봉급보다 10% 증가한 형태로 컬럼명을 upgradesalary로 출력해보자

select salary*1.1 as upgradesalary from employees;

(6) 오라클에서 시간 계산하기

현재 시간은 sysdate이며 정수 1은 시간연산 할때 하루를 뜻한다.
따라서 sysdate+1은 하루 지난 시간을 의미하고 sysdate-1는 하루 이전 시간을 의미한다.

1/24 => 1시간
1/24/60 => 1분
1/24/60/60 => 1초

월이나 년 관련 데이터를 계산하려면 add_months() 함수를 이용한다.

select add_month(sysdate,1) from dual // 1달후
select add_month(sysdate,-1) from dual // 1달전

0개의 댓글