- 별명 사용 방법
SELECT first_name "사원 이름", salary "월 급여"
FROM employees;
SELECT first_name "사원이름", salary "12월급여"
FROM employees;
SELECT first_name "사원이름", salary 월급여12
FROM employees;
쌍따옴표 사용하면 별명에 공백, 숫자포함 가능(sql에서 유일하게 쌍따옴표 사용 가능함)
- varchar2, char
varchar2: 가변길이 문자열, 메모리는 절약, 상대적으로 속도는 느리다
char: 고정길이 문자열, 메모리는 낭비될수 있으나 상대적으로 속도는 빠르다
추후에 char(5), varchar2(5) 로 둘다 babo 집어넣으면 babo^, babo 라고해서 두개 비교하면 다르다고 나옴
이 두개 비교할려면 반드시 trim()으로 해서 공백을 제거해줘야됨
- 숫자 연산
select first_name 이름, salary 급여, salary*12 연봉
from employees;
- 결합 연산
SELECT first_name||' '||last_name||'의 급여는 '||salary||'달러이고 연봉은 '|| salary*12||'달러입니다' "개인별 정보"
FROM employees;
- where: select에서의 조건문
SELECT first_name 이름, salary 급여, salary*12 연봉
FROM employees
WHERE salary*12>=170000;
- and, or, between, in
--or
SELECT first_name 이름, employee_id 아이디, department_id 부서번호
FROM employees
WHERE employee_id=90 OR employee_id>=120;
--in
SELECT first_name 이름, department_id
FROM employees
WHERE department_id IN (90, 50, 30);
--WHERE department_id = 90 OR department_id=50 OR department_id=30;
--and
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE '03/01/01'<=hire_date AND hire_date<='03/12/31';
--between
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE hire_date BETWEEN '03/01/01' AND '03/12/31';
--and,or 둘중에 and가 먼저 계산됨
SELECT first_name 이름, employee_id 아이디,salary 급여, department_id 부서번호
FROM employees
WHERE (employee_id>=120 OR department_id=90) AND salary<=11000;
--and가 먼저 계산됨, ()없으면 급여 11000이상인 사람도 나옴
- distinct: 중복제거
SELECT DISTINCT department_id 부서번호
FROM employees;
SELECT job_id FROM employees;
SELECT DISTINCT job_id FROM employees;
SELECT DISTINCT manager_id FROM employees;
--이렇게 하면 두개 다 중복되는 것만 제거됨
SELECT DISTINCT manager_id, job_id FROM employees;
- like:
--sql: all: % 한글자: _
--이름이 A인사람
SELECT first_name 이름 FROM employees WHERE first_name='A';
--A로 시작하는 사람
SELECT first_name 이름 FROM employees WHERE first_name LIKE 'A%';
--n 포함된 사람
SELECT first_name 이름 FROM employees WHERE first_name LIKE '%n%';
--A로 끝나는 사람
SELECT first_name 이름 FROM employees WHERE first_name LIKE '%A';
--입사월이 10월인 사람 구하기
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE hire_date LIKE '%/10/%';
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE hire_date LIKE '___10___';
-date
SELECT sysdate FROM dual;
--03년도에 입사한 사람 구하는 3가지 방법
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE hire_date>='03/01/01' AND hire_date<='03/12/31';
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE hire_date BETWEEN '03/01/01' AND '03/12/31';
SELECT first_name 이름, hire_date 입사일
FROM employees
WHERE hire_date LIKE '03______';
날짜 + 숫자 = 날짜
날짜 - 날짜 = 숫자
Q) 100일 후 구하기
SELECT sysdate+100-1 FROM dual;
Q) 오늘부터 6개월 후 (월 더하기): add_months()
SELECT sysdate 오늘, add_months(sysdate,6) FROM dual;
- NULL 비교하기
SELECT first_name 이름, commission_pct 인센티브
FROM employees
WHERE commission_pct IS NULL;
--sql에서는 = 이걸로 null 비교할수 없음 IS NULL, IS NOT NULL로 해야됨
SELECT first_name 이름, commission_pct 인센티브
FROM employees
WHERE commission_pct IS NOT NULL;
--WHERE commission_pct>=0;
- 같지 않다
SELECT first_name 이름, department_id 부서번호
FROM employees
WHERE department_id<>80;
--WHERE department_id!=80;
'[오라클] > SELECT' 카테고리의 다른 글
서브쿼리 subquery (0) | 2020.12.27 |
---|---|
조인 JOIN (0) | 2020.12.27 |
다중행 함수(multi row function) 그룹함수 (0) | 2020.12.26 |
단일행 함수(single row function) (0) | 2020.12.26 |
ORDER BY (0) | 2020.12.26 |