sql

    [SQL] 일반함수 IFNULL, NULLIF, COALESCE

    1. IFNULL 칼럼의 값이 NULL이 아닌 경우 그대로 출력하지만 칼럼의 값이 NULL인 경우 지정된 대체값으로 대체하여 출력 1 2 SELECT employee_id,IFNULL(department_id, '소속 부서 없음')department_id FROM employees cs 2. NULLIF 인자 값 두 개를 비교하여 동일한 값인 경우 NULL값 출력, 다른 값인 경우 첫 번째 인자값 출력 NULLIF(값 1, 값 2) 1 2 3 4 SELECT first_name, LENGTH(first_name) "expr1", last_name, LENGTH(last_name) "expr2", NULLIF(LENGTH(first_name), LENGTH(last_name)) RESULT FROM emp..

    [SQL] 변환함수 DATE_FORMAT

    변환함수 날짜, 문자, 숫자 데이터타입간 변환을 할 수 있는 함수 Oracle의 TO_CHAR 함수를 MySQL의 DATE_FORMAT으로 대응되는 포맷 결과 Oracle MySQL 연도(4자리) YYYY %Y 연도(2자리) YY %y 월(1~12) MM %m 월(Jan~Dec) MON %b 월(January~December) MONTH %M 일(1~31) DD %d 일(Sun~Sat) DY %a 시간(0~23) HH24 %H 시간(1~12) HH 또는 HH12 %h 분(0~59) MI %i 초(0~59) SS %s DATE_FORMAT DATE_FORMAT(날짜데이터, '형식문자') 1 2 3 SELECT employee_id, DATE_FORMAT(hire_date, '%m/%y') Month_Hir..

    [SQL] 날짜함수 2. DATEDIFF, TIMESTAMPDIFF, LAST_DAY

    1. DATEDIFF 단순히 일 차이를 계산 1 2 SELECT DATEDIFF('95-09-01', '94-01-11') FROM DUAL; cs 2. TIMESTAMPDIFF 지정된 범위 및 간격을 계산 1 2 SELECT TIMESTAMPDIFF(MONTH, '95-09-01', '94-01-11') FROM DUAL; cs 3. LAST_DAY 입력한 날짜가 속한 월의 마지막 날을 출력 1 2 SELECT LAST_DAY('95-02-01') FROM DUAL; cs

    [SQL] 날짜함수 1. SYSDATE, DATE_ADD, DATE_SUB

    시간을 의미하는 단위 SECOND(초) / MINUTE(분) / HOUR(시) / DAY(일) / MONTH(월) / YEAR(연) WEEK(주) / QUARTER(분기) / 1. SYSDATE 현재 DB서버의 시간데이터를 출력하는 함수 1 2 SELECT SYSDATE() FROM DUAL; cs 시간계산 INTERVAL : 범위 및 간격을 의미합니다 DATE_ADD : 기준 날짜에 입력된 기간만큼을 더하기 DATE_SUB : 기준 날짜에 입력된 기간만큼을 빼기 2. DATE_ADD 1 2 SELECT DATE_ADD(SYSDATE(), INTERVAL 1 DAY) FROM DUAL; cs 3.DATEDIFF 1 2 SELECT DATE_SUB(SYSDATE(), INTERVAL 1 DAY) FROM ..

    [SQL] 숫자함수 ROUND, TRUNC , MOD

    ROUND|TRUNC ROUND|TRUNC(대상숫자, 연산자리값) 연산할 자리값 찾기 소수점의 자리값이 0으로 기준이 된다. 양수의 자리값은 소수점 아래 음수의 자리값은 소숫점 위 정수 부분을 연산 1. ROUND 반올림 연산 1 2 SELECT ROUND(45.926, 2) FROM DUAL; cs 2. TRUNC , TRUNCATE 버림 연산 MySQL : TRUNCATE 1 2 SELECT TRUNCATE(45.926, 2) FROM DUAL; cs 오라클 : TRUNC 1 2 SELECT TRUNC(45.926, 2) FROM DUAL; cs 3. MOD 나머지 연산 1 2 SELECT MOD(1600, 300) FROM DUAL; cs

    [SQL] 문자함수 2. INSTR, LPAD|RPAD, REPLACE, TRIM

    1. INSTR 문자열에서 특정 부분문자열의 자리값을 찾는 함수 MySQL 문법 INSTR('전체문자열', '부분문자열') 1 2 SELECT INSTR('HelloWorld', 'o') FROM DUAL; cs 오라클 문법 INSTR('전체문자열', '부분문자열'[, 찾기 시작할 자리값, 몇 번째로 오는 값을 찾는가]) 1 2 SELECT INSTR('HelloWorld', 'o', 1, 2) FROM dual; cs 2. LPAD|RPAD 여백문자를 활용하여 출력값을 일관된 길이로 출력해주는 함수 1 2 SELECT LPAD(salary, 10, ' '), RPAD(salary, 10, '*') FROM employees; cs 3. REPLACE 문자열의 일부를 다른 문자로 치환 연산한 결과를 돌려..

    [SQL] 함수 - 그룹 함수(AVG,SUM,MIN,MAX,COUNT)

    그룹 함수 1. 그룹 단위로 연산 결과를 출력하는 함수 2. 주로 통계 관련 연산을 하는 함수들이다. 3. 그룹 함수 연산 시 NULL값은 제외한 결과를 출력한다. 숫자 관련 그룹 함수 AVG([ALL|DISTINCT] n) : 평균 SUM([ALL|DISTINCT] n) : 합계 STDDEV([ALL|DISTINCT] n) : 표준편차 VARIANCE([ALL|DISTINCT] n) : 분산 1 2 SELECT ROUND(AVG(salary)), SUM(salary), ROUND(STDDEV(salary)), ROUND(VARIANCE(salary)) FROM employees; cs 일반 그룹 함수 MIN([ALL|DISTINCT] expr) : 최소값 MAX([ALL|DISTINCT] expr) :..

    [SQL] 함수

    함수 특정 연산을 수행해주는 연산 구조 연산에 필요한 인수를 받고 실행한 수만큼 결과를 돌려준다. 단일행 함수 행단위의 값을 인수로 받아서 행의 수만큼 결과를 출력해주는 함수 그룹합수 그룹(여러행) 함수는 그룹의 단위로 값을 입력 받아 연산하는 함수. 주로 통계 관련 연산하는 함수들이 있다.

    [SQL] Sub Query 서브 쿼리

    Sub Query 서브 쿼리 란? 1. 서브쿼리는 하나의 SQL 문 안에 포함되어 있는 또 다른 SQL문을 말한다. 2. 서브쿼리는 괄호로 감싸서 사용하는 쿼리를 말한다. 3. 주로 함수를 사용한 테이블의 결과를 사용하여 테이블을 연결시켜야 하는 경우 사용 1 2 3 4 --서브쿼리 SELECT qna_idx FROM project9.tbl_qna WHERE qna_idx = (SELECT qna_idx FROM project9.tbl_qna_reply WHERE reply_idx = 34) cs INNER JOIN 생략하기 1. FORM에 연결할 두 테이블을 작성한다. 2. JOIN의 ON대신 WHERE에 두 테이블의 공통 컬럼을 작성해 준다. 3. 간단한 쿼리의 경우 위의 쿼리와 비교하여 짧고 간단하..