데이터 타입에 관해
SELECT hire_date,
hire_date + 15, --일만큼 더해주는 편리함(데이터 타입을 숫자타입으로 따로 인식시킬 필요 없다)
hire_date - 15
FROM EMPLOYEES ;
--Date타입은 * ,/ 는 불가능
SELECT hire_date,
hire_date * 15,
hire_date / 15
FROM EMPLOYEES ;
--문자열은 산술연산자 사용 불가능
SELECT FIRST_name,
first_name -10
FROM EMPLOYEES;
(type) date - date -> number
/* 데이트타입끼리 빼면 숫자타입*/
SELECT
SYSDATE , --함수이다.
hire_date,
sysdate - hire_date --현재 시간 가져오기
FROM EMPLOYEES ;
/* 사원들이 입사한 후 100일 뒤에는 원래 봉급에서 10% 인상된 보너슬 준다.
사원이름 원래봉급 보너스 봉급 보너스 수령일 (보너스 봉급 높은 순*/
SELECT first_name ||' ' || last_name AS 성함, salary AS 원래봉급,
salary + (salary * 0.1) AS "보너스 봉급", --SALARY * 1.1
hire_date + 100 AS "보너스 수령일"
FROM EMPLOYEES
ORDER BY "보너스 봉급" DESC;
--where 절 : 조건식이 온다.
SELECT salary
FROM EMPLOYEES
WHERE LAST_NAME = 'King'; --행을 가져온다
SELECT *
FROM EMPLOYEES
WHERE EMPLOYEE_ID <> 105; -- != 와 같다.
SELECT * --모든 열 출력
FROM EMPLOYEES
WHERE FIRST_NAME > 'C' --그 다음문자도 비교하여 Charles 이름도 포함되는 것이다.
ORDER BY FIRST_NAME ASC ;
--문자열이 Date 타입으로 자동 바뀌어 비교된다.(암묵적 형변환)
SELECT *
FROM EMPLOYEES
WHERE hire_date > '05/01/10' --2005/01/01 , 050101, 05.01.01, 05-01-01 와 같이 쓰임
ORDER BY HIRE_DATE ;
--WHERE BETWEEN
SELECT *
FROM EMPLOYEES
WHERE EMPLOYEE_ID BETWEEN 105 AND 108; --경계가 포함됨. 작은거 큰거 순서대로
SELECT *
FROM EMPLOYEES
WHERE HIRE_DATE BETWEEN '05/01/01' AND '06/01/01';
--WHERE IN
SELECT *
FROM EMPLOYEES
WHERE EMPLOYEE_ID IN (101,107,110);
SELECT *
FROM EMPLOYEES
WHERE FIRST_NAME IN ('John','David');
--WHERE LIKE
SELECT *
FROM EMPLOYEES
WHERE job_id LIKE 'AD%';
SELECT *
FROM EMPLOYEES e
WHERE FIRST_NAME LIKE '%n%';
SELECT *
FROM EMPLOYEES
WHERE job_id LIKE 'AD___';
SELECT salary
FROM EMPLOYEES
WHERE SALARY LIKE '%1__';
SELECT hire_date
FROM EMPLOYEES
WHERE HIRE_DATE LIKE '05%';
--2003-05-01 --> 03/05/01 Date 타입을 문자열로 바꿔서 생각
SELECT hire_date
FROM EMPLOYEES
WHERE HIRE_DATE LIKE '%/05/%'; --00/00/00으로 기본적으로 생각하기
--WHERE IS NULL
SELECT *
FROM EMPLOYEES
WHERE MANAGER_ID IS NULL; -- IS NULL은 공백 , 0 과는 엄연히 다르다.
--WHERE AND
SELECT *
FROM EMPLOYEES
WHERE SALARY >4000 AND JOB_ID ='IT_PROG';
SELECT *
FROM EMPLOYEES
WHERE SALARY BETWEEN 4000 AND 10000; --WHERE SALARY >=4000 AND SALARY <=10000;
SELECT *
FROM EMPLOYEES e
WHERE EMPLOYEE_ID =101 OR EMPLOYEE_ID =107;
--WHERE employees_id IN (101,107);
--Not
SELECT *
FROM EMPLOYEES
WHERE NOT EMPLOYEE_ID > 110;
SELECT employee_id
FROM EMPLOYEES
WHERE EMPLOYEE_ID >=105 AND NOT EMPLOYEE_ID <=107 --NOT먼저 해석
OR EMPLOYEE_ID = 111;
select 문
select [DISTINCT] 열이름 [AS 별칭]
FROM 테이블이름
[WHERE 조건식]
[ORDER BY 열이름 [ASC OR DESC]];
함수
자주쓰는 기능을 미리 만들어 놓고 필요할때 마다 사용한다.
유용한 기능을 미리 만들어 놓은 것
단일 행 함수
데이터 값을 하나씩 계산하고 조작하는 함수 각 행에대해 수행한다.
문자타입함수
숫자타입함수
날짜타입함수
변환타입함수
'DB' 카테고리의 다른 글
SQL 기초 (3) 데이터타입과 연산함수들 (0) | 2021.12.30 |
---|---|
SQL 기초(1) (0) | 2021.12.17 |
DBeaver 데이터 베이스 연결하기 (0) | 2021.12.17 |
DB 환경 구축 (0) | 2021.12.17 |