오라클
DISTINCT ( 열 중복 제거 )
예 ) SELECT DISTINCT
ORDER BY ( 정렬 ) 기본값 오름차순(ASC), 내림차순은 DESC
예 )
SELECT *
FROM EMP
ORDER BY SAL (ASC),(DESC) 선택
ORDER BY DEPTNO ASC(1순위), SAL DESC(2순위)
WHERE
예 )
SELECT *
FROM EMP
WHERE DEPTNO = 30;
AND ( 피연산자가 둘 다 true ) 제출 하고
예 )
SELECT *
FROM EMP
WHERE DEPTNO = 30
AND JOB = 'SALESMAN';
OR ( 피연산자가 둘 다 또는 둘 중 하나 true이면 true ) 제출 하거나
SELECT *
FROM EMP
WHERE DEPTNO = 30
OR JOB = 'SALESMAN';
곱셈 산술 연산자 ( 연봉 찾기 )
SELECT *
FROM EMP
WHERE SAL * 12 = 36000;
등가 비교 연산자 ( 급여가 3000이 아닌 )
SELECT *
FROM EMP
WHERE SAL != 3000;
NOT 연산자 ( NOT이 많이 사용 됨 )
SELECT *
FROM EMP
WHERE NOT SAL = 3000;
IN 연산자 ( 출력하고 싶은 열의 조건이 여러 가지일 때 ) OR로 하나씩 해주는 것보다 간편
예)
SELECT *
FROM EMP
WHERE JOB IN ('MANAGER', 'SALESMAN', 'CLERK')
WHERE JOB NOT IN ('MANAGER', 'SALESMAN', 'CLERK') NOT 가능
BETWEEN 최소값 AND 최댓값 2000~3000
예)
SELECT *
FROM EMP
WHERE SAL BETWEEN 2000 AND 3000;
WHERE SAL NOT BETWEEN 2000 AND 3000; NOT 가능
LIKE 연산자 ( 일부 문자열 조회 ) ( _는 한 개의 문자 데이터를 의미 )
예 ) 1
SELECT *
FROM EMP
WHERE ENAME LIKE 'S%' ( 대문자 S로 시작하는 )
예 ) 2
SELECT *
FROM EMP
WHERE ENAME LIKE '_S%' ( 두번 째 문자 대문자 S로 시작하는 )
예 ) 3
SELECT *
FROM EMP
WHERE ENAME LIKE '%AM%' ( AM이 포함되어 있는 )
WHERE ENAME NOT LIKE '%AM%' NOT 가능 ( AM이 포함되어 있지 않은 )
IS NULL ( 값이 NULL인 경우 출력 )
예) 1
SELECT *
FROM EMP
WHERE COMM IS NULL;
예) 2
SELECT *
FROM EMP
WHERE MGR IS NOT NULL; NOT 가능
( 직속상관이 있는 사원만 출력 ) 사장은 없기때문에 출력 안됨 )
집합 연산자 UNION ( 두 개 이상의 SELECT문의 결과 값을 연결할 때 사용 ) 결과 값 중복 제거
예)
select empno, ename, sal, deptno
from emp
where deptno = 10
UNION
select empno, ename, sal, deptno
from emp
where deptno = 20
집합 연산자 UNION ALL ( 중복된 결과값도 출력 )
예)
select empno, ename, sal, deptno
from emp
where deptno = 10
UNION ALL
select empno, ename, sal, deptno
from emp
where deptno = 20
차집합 연산자 MINUS ( 결과 값이 같은 데이터 제외 )
예)
select empno, ename, sal, deptno
from emp
MINUS
select empno, ename, sal, deptno
from emp
where deptno = 10
교집합 연산자 INTERSECT ( 결과 값이 같은 데이터만 출력 )
예)
select empno, ename, sal, deptno
from emp
INTERSECT
select empno, ename, sal, deptno
from emp
where deptno = 10
문자 데이터를 가공하는 문자 함수
UPPER(문자열) : 괄호 안 문자 데이터를 모두 대문자로 변환
LOWER(문자열) : 괄호 안 문자 데이터를 모두 소문자로 변환
INITCAP(문자열) : 괄호 안 문자 데이터 중 첫 글자는 대문자, 나머지 문자를 소문자로 변환
예)
select ename, UPPER(ename), LOWER(ename), INITCAP(ename)
from emp;
문자열 길이를 구하는 LENGTH 함수
예)
select ename, LENGTH(ename)
from emp;
where LENGTH(ename) >= 5; ( 숫자 비교 가능 ) 5글자 이상
문자열 일부를 추출하는 SUBSTR 함수
SUBSTR(문자열 데이터, 시작위치, 추출길이 ) 추출길이 입력 안할 시 끝까지 출력
예)
select ename, SUBSTR(job, 1, 2), SUBSTR(job, 2, 3), SUBSTR(job, 1)
from emp;
특정 문자를 다른 문자로 바꾸는 REPLACE 함수
REPLACE([문자열 데이터 또는 열 이름(필수)], [찾는 문자(필수)], [대체할 문자(선택)])
대체할 문자를 입력하지 않으면 찾는 문자 삭제
예)
select '010-1234-5678'
, REPLACE('010-1234-5678', '-', ' ') as RE1
, REPLACE('010-1234-5678', '-') as RE2
from dual;
특정 문자를 지우는 TRIM, LTRIM, RTRIM ( 공백제거 많이 사용 )
삭제 할 문자를 지정하지않으면 공백제거
예 )
SELECT
TRIM(' oracleStudy ') AS result
, LTRIM(' oracleStudy ') AS result1 ( 왼쪽 공백 제거 )
, RTRIM(' oracleStudy ') AS result1 ( 오른쪽 공백 제거 )
FROM DUAL;
특정 위치에서 반올림하는 ROUND 함수
반올림 위치 지정하지 않으면 소수점 첫 번째 자리에서 반올림
예)
select ROUND(1234.5678) as ROUND,
ROUND(1234.5678, 1) as ROUND,
ROUND(1234.5678, 2) as ROUND
from dual;
특정 위치에서 버리는 TRUNC 함수
예)
select TRUNC(1234.5678) as TRUNC,
TRUNC(1234.5678, 1) as TRUNC,
TRUNC(1234.5678, 2) as TRUNC
from dual;
나머지 값을 구하는 MOD 함수
예)
select MOD(15, 6),
MOD(10, 2),
MOD(11, 2)
from dual;
날짜 데이터를 다루는 날짜 함수 SYSDATE
select SYSDATE AS NOW,
SYSDATE-1 AS YESTERDAY,
SYSDATE+1 AS TOMORROW
from dual;
몇 개월 이후 날짜를 구하는 ADD_MONTHS함수
예1) 3개월 후 ( 10년이면 120 )
select SYSDATE,
ADD_MONTHS(SYSDATE, 3)
from dual
예2) 입사 40년 미만인 사원 데이터 출력하기
SELECT EMPNO, ENAME, HIREDATE, SYSDATE
FROM EMP
WHERE ADD_MONTHS(HIREDATE, 480) > SYSDATE;
자료형을 변환하는 형 변환 함수
SYSDATE 날짜 형식 지정하여 출력
예)
SELECT TO_CHAR(SYSDATE, 'YYYY/MM/DD HH24:MI:SS') AS 현재날짜시간
FROM DUAL;
TO_DATE 함수로 문자 데이터를 날짜 데이터 변환하기
예)
SELECT TO_DATE('2018-07-14', 'YYYY-MM-DD') AS TODATE1,
TO_DATE('20180714', 'YYYY-MM-DD') AS TODATE2
FROM DUAL;
예2) 1981년 6월 1일 이후에 입사한 사원 정보 출력
SELECT *
FROM EMP
WHERE HIREDATE > TO_DATE('1981-06-01', 'YYYY-MM-DD');
NVL 함수 ( NULL인 값을 0으로 대체해서 연산하기 )
SELECT ENAME, SAL, COMM, SAL+COMM, NVL(COMM, 0), SAL+NVL(COMM, 0)
FROM EMP;
NVL2 함수 ( 추가 수당 (COMM)열이 NULL이 아니라면 O를, NULL이라면 X를 표기 ) 추가 수당 존재 여부 확인
예)
SELECT EMPNO, ENAME, COMM, NVL2(COMM, '0', 'X'), NVL2(COMM, SAL*12+COMM, SAL*12) AS ANNSAL
FROM EMP
'프로젝트 기반 자바(JAVA) 응용 SW개발자 취업과정 > 추가 복습' 카테고리의 다른 글
오라클 테이블 데이터 복사 예제 (0) | 2023.07.25 |
---|---|
Java 8에서 Java 9 및 이후 버전으로 코드를 마이그레이션할 때 발생하는 문제를 해결 ( --add-opens ) (0) | 2023.07.25 |
스프링 정리 (0) | 2023.07.22 |
서블릿(Servlet) 정리 (0) | 2023.07.21 |
이클립스 URL에 프로젝트 이름 안 나오게 하기 (0) | 2023.07.20 |