ORACLE 03. SELECT _ GROUP BY절
2022. 11. 16. 22:49
ORACLE
그룹 기준을 제시할 수 있는 구문 (해당 그룹 기준별로 여러 그룹으로 묶을 수 있음) -부서별 총 급여 합 SELECT DEPT_CODE ,SUM(SALARY) --3 FROM EMPLOYEE --1 GROUP BY DEPT_CODE --2 ORDER BY DEPT_CODE; --4 - 부서별 사원수 SELECT DEPT_CODE, COUNT(*) FROM EMPLOYEE GROUP BY DEPT_CODE; -각 직급별 총 사원수, 보너스를 받는 사원수 , 급여합, 평균급여, 최저급여, 최고급여 SELECT JOB_CODE,COUNT(*)"총사원수" , COUNT(BONUS)"보너스를 받는 사원", SUM(SALARY)"급여 합",FLOOR(AVG(SALARY))"평균급여", M..
ORACLE 02. SELECT(함수) _ 그룹함수
2022. 11. 16. 22:02
ORACLE
하나이상의 행을 그룹으로 묶어 연산하며 총합, 평균 등을 하나의 컬럼으로 반환하는 함수 1. SUM(NUMBER) : 해당 컬럼 값들의 총 합계를 구해서 반환해주는 함수 - 전사원의 총 급여 합계 SELECT SUM(SALARY) FROM EMPLOYEE; --전체 사원이 한 그룹으로 묶임 -남자사원들의 총 급여 합계 SELECT SUM(SALARY) FROM EMPLOYEE WHERE SUBSTR(EMP_NO,8,1)IN ('1','3'); --남자 사원들이 한 그룹으로 묶임 2. AVG(NUMBER) : 해당 컬럼값들의 평균값을 구해서 반환해주는 함수 -전 사원의 평균 급여 SELECT ROUND(AVG(SALARY)) FROM EMPLOYEE; 3. MIN(NUMBER|CHARAC..
ORACLE 02. SELECT(함수) _ 단일행 함수_ NULL 처리함수/ 선택함수
2022. 11. 16. 21:52
ORACLE
1) NVL(컬럼, 해당컬럼값이 NULL일 경우 반환할 값) SELECT EMP_NAME, NVL(BONUS,0) FROM EMPLOYEE; SELECT EMP_NAME, NVL(BONUS,'없음') -- BONUS컬럼이 NUMBER타입이기 때문에 반환값도 NUMBER타입 이어야함 (문자열 출력 불가) FROM EMPLOYEE; -- 전체 사원의 이름, 보너스포함 연봉 SELECT EMP_NAME, (SALARY+ SALARY*NVL(BONUS,0))*12,NVL(DEPT_CODE,'부서없음') FROM EMPLOYEE; 2) NVL2 (컬럼,반환값1, 반환값2) - 컬럼값이 존재할 경우 반환값1 반환 - 컬럼값이 존재하지 않을 경우 반환값2 반환 SELECT EMP_NAME, BONUS, NVL2(BO..
ORACLE 02. SELECT(함수) _ 단일행 함수_ 형변환 함수
2022. 11. 16. 17:05
ORACLE
1. TO_ CHAR : 숫자 , 날짜 타입의 값을 문자타입으로 형변환 시켜주는 함수 TO_CHAR(숫자|날짜, [포맷]) => 결과값 CHARACTER 타입 1) 숫자 --> 문자타입 변환 SELECT TO_CHAR(1234,'99999') FROM DUAL; -- 다섯칸 자리 공간 확보, 오른쪽 정렬, 빈칸 공백으로 채움 ( 기존 한칸은 음수값을 위해 한자리 더 확보되어있음) SELECT TO_CHAR(1234,'00000') FROM DUAL; -- 다섯칸 자리 공간 확보, 오른쪽 정렬, 빈칸 0으로 채움 SELECT TO_CHAR(1234,'L99999') FROM DUAL; -- 'L': 현재 설정된 나라의 화폐단위 SELECT TO_CHAR(1234,'fmL99999') F..
ORACLE 02. SELECT(함수) _ 단일행 함수_날짜처리함수
2022. 11. 15. 17:28
ORACLE
- SYSDATE : 현재 시스템 날짜 및 시간 반환 * MONTHS_BETWEEN(DATE1, DATE2) 두날짜 사이 개월 수 => 내부적으로 DATE1 - DATE2후 나누기 30,31이 진행됨 -- -> 결과값은 NUMBER타입 예시) 근무 개월수 구하기 SELECT EMP_NAME,HIRE_DATE, CEIL(MONTHS_BETWEEN(SYSDATE, HIRE_DATE))||'개월차' "근무개월수" FROM EMPLOYEE; * ADD_MONTHS(DATE,NUMBER) 특정 날짜에 해당 숫자만큼의 개월수를 더해서 그 날짜를 리턴 => 결과값은 DATE타입 SELECT ADD_MONTHS(SYSDATE,3) FROM DUAL; -- 23-02-15 * NEXT_ DAY(DATE,요일(문자|숫자)..
ORACLE 02. SELECT(함수) _ 단일행 함수_숫자처리함수
2022. 11. 15. 17:22
ORACLE
* ABS 숫자의 절대값을 구해주는 함수 ABS(NUMBER) => 결과값은 NUMBER타입 SELECT ABS(-10) FROM DUAL; SELECT ABS(-5.7) FROM DUAL; * MOD 두 수를 나눈 나머지값을 반환해주는 함수 MOD(NUMBER, NUMBER) => 결과값 NUMBER타입 SELECT MOD(10,3) FROM DUAL; SELECT MOD(10.9,3) FROM DUAL; * ROUND 반올림한 결과를 반환 ROUND(NUMBER,[반올림하고자하는 위치]) => 결과값 NUMBER타입 SELECT ROUND(123.456) FROM DUAL; --위치 지정생략시 기본값 0 SELECT ROUND(123.456,0) FROM DUAL; --123 SELECT ROUND(..

ORACLE 02. SELECT(함수) _ 단일행 함수_문자처리함수
2022. 11. 15. 17:16
ORACLE
함수 FUNCTION 전달된 컬럼값을 읽어들여서 함수를 실행한 결과를 반환함 - 단일행 함수 : N개의 값을 읽어들여서 N개의 결과값 반환 (매 행마다 함수 실행결과 반환) - 그룹 함수 : N개의 값을 읽어들여서 1개의 결과값을 반환 (그룹을 지어 그룹별로 함수 실행 결과 반환) >> SELECT절 단일행 함수와 그룹함수 함께 기술 못함 => 결과 행의 갯수가 다르기 때문에 같이 쓸 수 없음 >> 함수식을 기술할 수 있는 위치 : SELECT절, WHERE절, ORDER BY절, GROUP BY절, HAVING절, DML문 1. 문자 처리 함수 * LENGTH / LENGTHB => 결과값 NUMBER 타입 LENGTH('문자열값'| 컬럼명) : 해당 문자열 값의 글자수를 반환 LEN..
ORACLE_01. SELECT문(기본문법 2)
2022. 11. 15. 16:50
ORACLE
1. LIKE : 비교하고자 하는 컬럼값이 내가 제시한 특정 패턴에 만족되 경우 조회 [표현법] 비교대상컬럼 LIKE '특정패턴' - 특정패턴 제시시 '%' , '_' 를 사용할 수 있음 (와일드카드) >> '%' : 0글자 이상 EX) 비교대상컬럼 LIKE '문자%' => 비교대상의 컬럼값이 해당 문자로 "시작"될 경우 조회 비교대상컬럼 LIKE '%문자' => 비교대상의 컬럼값이 해당 문자로 "끝"날 경우 조회 ✔ 비교대상컬럼 LIKE '%문자%' => 비교대상의 컬럼값에 해당 문자가 "포함"되어있을 경우 조회 (키워드검색) + >>'_' : 1글자 EX) 비교대상컬럼 LIKE '_문자' => 비교대상의 컬럼값이 어떠한 "한 글자" 뒤에 해당 문자가 올 경우 조회 비교대상컬럼 LIKE '__문자' =..
ORACLE_ 01.SELECT문 (기본문법 1)
2022. 11. 14. 17:20
ORACLE
SELECT : 데이터 조회 시 사용되는 구문 RESULT SET : SELECT 문에 의해 조회된 결과물( 즉, 조회된 행들의 집합을 의미) [표현법] SELECT 조회하고자하는 컬럼, 컬럼, ... FROM 테이블명 ; SELECT EMP_NAME,EMAIL,PHONE,HIRE_DATE,SALARY FROM EMPLOYEE; 1. 컬럼값을 통한 산술연산 : SELECT절 컬럼명 작성부분에 산술연산식 기술 가능 ( => 해당컬럼값이 산술연산된 결과로 조회) 예시) EMPLOYEE의 사원명, 급여, 보너스, 연봉(급여*12), 보너스포함된 연봉((급여+ (보너스*급여))*12) SELECT EMP_NAME,SALARY,BONUS,SALARY*12, (SALARY+SALARY*BONUS)*12 FROM E..