study

SQL | SELECT, 연산자, 조건절, 논리 연산자

시즈코 2022. 8. 30. 01:14
반응형

SELECT문

SELECT * FROM 테이블명

저장되어있는 데이터를 가져올 때 사용

*는 모든 정보를 가지고 온다

select *
from employees;

select *
from departments;

select *
from dept_manager;

select *
from titles;

SELECT 컬럼명1, 컬럼명2 FROM 테이블명

테이블의 컬럼 정보를 가지고 온다

select emp_no, first_name, last_name
from employees;

연산자

데이터베이스의 연산자는 컬럼의 값을 더하고 빼는데 사용된다

select 20 + 10;
select 20 - 10;
select 20 * 10;
select 20 / 10;

급여의 10% 인상액 계산

select emp_no, salary, salary * 1.1
from salaries;

문자열을 더할 경우 문자열을 0으로 취급한다

select last_name + first_name
from employees;

같은 부서 번호의 중복을 제거한다

select distinct dept_no
from dept_emp;

조건절

d001 부서의 사원번호와 부서번호

select emp_no, dept_no
from dept_manager
where dept_no = 'd001';

<> 아닌

d001 부서가 아닌 사원번호와 부서번호

select emp_no, dept_no
from dept_manager
where dept_no <> 'd001';

급여가 70000이상인 사원

select emp_no, salary
from salaries
where salary >= 70000;

1990년 01월 01일 이후 입사한 사원

select emp_no, first_name, last_name, hire_date
from employees
where hire_date >= '1990-01-01';

논리 연산자

- 두 개 이상의 조건문을 작성할 때 사용하는 연산자

- and : 양쪽 조건 모두 만족

- or : 양쪽 조건 중 하나만 만족

- not : 조견 결과 부정

 

1990년 01월01일 이후 입사했고, 성별이 남자인 사람

select emp_no, gender, hire_date, first_name
from employees
where hire_date >= '1990-01-01' and gender="M";

1990년 01월 01일 이후 부터 80000이 넘는 경우

select emp_no, salary, from_date
from salaries
where from_date >= '1990-01-01' and salary >= 80000;

d0001 혹은 d0001 부서의 매니저

select emp_no, dept_no
from dept_manager
where dept_no = 'd001' or dept_no = 'd002';

 

select emp_no, dept_no
from dept_manager
where dept_no in('d001','d002');

70000과 79999사이

select emp_no, salary
from salaries
where salary between 70000 and 79999;

그 반대

select emp_no, salary
from salaries
where not salary between 70000 and 79999;

 

select *
from employees;

select *
from departments;

select *
from dept_manager;

select *
from titles;

select emp_no, first_name, last_name
from employees;

select 20 + 10;
select 20 - 10;
select 20 * 10;
select 20 / 10;

select emp_no, salary, salary * 1.1
from salaries;

select last_name + first_name
from employees;

select distinct dept_no
from dept_emp;

select emp_no, dept_no
from dept_manager
where dept_no = 'd001';

select emp_no, dept_no
from dept_manager
where dept_no <> 'd001';

select emp_no, salary
from salaries
where salary >= 70000;

select emp_no, first_name, last_name, hire_date
from employees
where hire_date >= '1990-01-01';

select emp_no, gender, hire_date, first_name
from employees
where hire_date >= '1990-01-01' and gender="M";

select emp_no, salary, from_date
from salaries
where from_date >= '1990-01-01' and salary >= 80000;

select emp_no, dept_no
from dept_manager
where dept_no = 'd001' or dept_no = 'd002';

select emp_no, dept_no
from dept_manager
where not dept_no = 'd001';

select emp_no, salary
from salaries
where salary between 70000 and 79999;

select emp_no, salary
from salaries
where not salary between 70000 and 90000;

select emp_no, dept_no
from dept_manager
where dept_no in('d001','d002');

 

 

 

반응형