Notice
Recent Posts
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 마이바티스
- 면접
- 자바
- 알고리즘
- java
- 오라클
- 이클립스
- 폼태그
- Eclipse
- MySQL
- Spring
- EL태그
- 설정
- 자바스크립트
- springboot
- 제이쿼리
- 버튼
- jsp 내부객체
- 깃허브 간단요약
- html
- jstl
- 깃허브
- 셋업
- 설치
- jsp
- Oracle
- 스프링
- jquery
- SESSION
- 필터체인
Archives
- Today
- Total
은은하게 코드 뿌시기
오라클/MYSQL 함수 종류 비교 본문
728x90
함수명 | 설명 | 예제 | MYSQL 확인 |
UPPER(문자열) | 대문자로 변환하여 반환 | select upper(ENAME), lower(ENAME), INITCAP(ENAME) FROM EMP; | O |
LOWER(문자열) | 소분자로 변환하여 반환 | O | |
INITCAP(문자열) | 괄호안 문자데이터중 첫글자는 대문자로, 나머지는 소문자로 변환후 반환 | 함수 없음! |
|
SUBSTR(문자열데이터, 시작위치, 추출길이(선택)) | 문자열 데이터를 시작 위치부터 추출길이만큼 추출합니다. 추출 길이 없을경우 마지막까지 추출 | select JOB, SUBSTR(JOB,2) , SUBSTR(JOB,1,2) FROM EMP; | O |
INSTR(문자열 , 위치를 찾으려는 부분문자 , 시작위치(선택) , 몇번째인지지정(선택)) |
문자열이 어디에 포함되어있는지 확인시 사용 | SELECT INSTR('HELLO WORLD','L'), INSTR('HELLO WORLD','L',5), INSTR('HELLO WORLD','L',2,2) FROM DUAL; | SELECT INSTR('FOOBAR','BAR'); |
REPLACE(문자열, 찾는문자열, 대체할문자(선택)) | 다른문자로 바꾸는 함수! | select JOB , replace(JOB, 'A' ,'Q') FROM EMP; | 대체할 문자 생략 불가. |
LPAD(문자열,자릿수,채울문자(선택)) RPAD(문자열,자릿수,채울문자(선택)) |
데이터의 빈 공간을 설정한 자리수 만큼 설정한 문자로 채운다. | SELECT lpad(ENAME,10,'@'), RPAD(ENAME,10,'@') FROM EMP; | 채울문자 필수입력 |
CONCAT(문자열,문자열) | 두 문자열 데이터를 합친다. | SELECT concat(ENAME, JOB) FROM EMP; |
O |
TRIM(삭제옵션(선택), 삭제할문자(선택), 원본문자열 데이터 (필수)) | 특정 문자를 지움 | SELECT trim( ENAME), trim('A' FROM ENAME), trim(LEADING 'A' FROM ENAME), trim(TRAILING 'S' FROM ENAME) FROM EMP; | O |
LTRIM(원본문자열, 삭제할문자(선택)) RTRIM(원본문자열, 삭제할문자(선택)) |
왼쪽, 오른족 지정문자를 삭제 | SELECT Ltrim( ENAME), Rtrim( ENAME) FROM EMP; | 선택문자열 없음 공백만 삭제 |
ROUND(숫자, 반올림위치(선택)) | 특정위치에서반올림 | select ROUND(SAL, 1), ROUND(SAL) FROM EMP; | O |
TRUNC(숫자, 버림위치(선택)) | 특정위치에서 버림 | TRUNCATE(숫자, 버림위치(필수)) | |
CEIL(숫자) | 지정한 숫자와 가까운 큰 정수를 찾음 | SELECT CEIL(3.141592), FLOOR(3.141592); | O |
FOOR(숫자) | 지정한 숫자와 가까운 작은 정수 | ||
MOD(나눗셈될숫자, 나눌숫자) | 숫자를 나눈 나머지 값을 구함 | SELECT MOD(3.141592,3); | O |
날짜관련 | |||
SYSDATE | 날짜 데이터 | SELECT SYSDATE AS NOW, SYSDATE+1 AS TOMORROW,SYSDATE -1 AS YESTERDAY FROM DUAL; | SELECT SYSDATE(), NOW(), NOW()+1, NOW()-1; |
ADD_MONTH((날짜데이터), 더할 개월수) | 몇개월 이후의 날짜를 구함 | SELECT sysdate, ADD_MONTHS(SYSDATE,3) FROM DUAL; | 없음 DATE_ADD사용 DATEADD(NOW(), INTERVAL 1 MONTH) |
*mysql 함수 DATE_ADD(date, INTERVAL expr unit) |
시간 더하기 | *MYSQL select date_add(now(), interval 1 day), date_add(now(), interval 1 hour), date_add('20211018', interval 1 month); |
|
*mysql 함수 DATE_SUB(date, INTERVAL expr unit) |
시간빼기 | *MYSQL select date_sub(now(), interval 1 day), date_sub(now(), interval 1 hour), date_sub('20211018', interval 1 month); |
|
MONTHS_BETWEEN(날짜 데이터1, 날짜 데이터 2) | 두 날짜 간의 개월수 차이를 구함. | select months_between(hiredate,sysdate) from emp; | 없음 |
*mysql 함수 DATEDIFF(날짜데이터1, 날짜데이터2) |
두날짜 사이의 차이를 구함 | *MYSQL SELECT datediff(NOW(),'20220620') |
|
NEXT_DAY(날짜데이터, 요일문자) | 돌아오늘 요일,달 마지막 날짜를 구함 | SELECT SYSDATE, NEXT_DAY(SYSDATE,'월요일'), LAST_DAY(SYSDATE) FROM DUAL | 없음 |
LAST_DAY(날짜데이터) | 속한 달의 마지막 날짜를 출력 | ||
ROUND(날짜, 포맷) | 날짜 반올림 | SELECT round(NOW() , 'CC'), round(NOW() , 'YYYY'),round(NOW() , 'Q'),round(NOW() , 'DDD'),round(NOW() , 'HH'), TRUNC(NOW() , 'CC'), TRUNC(NOW() , 'YYYY'),TRUNC(NOW() , 'Q'),TRUNC(NOW() , 'DDD'),TRUNC(NOW() , 'HH'); |
SELECT round(NOW() , 'CC'), round(NOW() , 'YYYY'),round(NOW() , 'Q'),round(NOW() , 'DDD'),round(NOW() , 'HH'), TRUNCATE(NOW() , 'CC'), TRUNCATE(NOW() , 'YYYY'),TRUNCATE(NOW() , 'Q'),TRUNCATE(NOW() , 'DDD'),TRUNCATE(NOW() , 'HH'); |
TURUNC(날짜, 포맷) | 날짜 버림 | ||
TO_CHAR | 날짜 , 숫자데이터를 문자 데이터로 변환 | SELECT TO_CHAR(SYSDATE(), 'YYYY/MM/DD HH24:MI:SS') | 없음 DATE_FORMAT함수 써야함 |
*MY SQL DATE_FORMAT(날짜, 포맷) |
*MYSQL SELECT DATE_FORMAT(SYSDATE(), '%Y-%M-%D'); |
||
TO_NUMBER | 문자데이터를 숫자데이터로 변환 | SELECT TO_NUMBER('1') FROM DUAL; | CAST 함수써야함 |
*MYSQL CAST(문자열 AS INTEGER) |
*MYSQL SELECT CAST('1' AS INTEGER) AS NUM; |
||
TO_DATE | 문자데이터를 날짜 데이터로 변환 | TO_DATE | X DATE_FORMAT 함수 쓸것 |
NVL() | 열또는 데이터를 입력하여 해당데이터가 NULL이 아닐 경우데이터를 그대로 반환하고, NULL인 경우지정한 데이터를 반환. | SELECT NVL(COMM,0) FROM EMP; | X IFNULL 함수 쓸것 |
NVL2() | 데이터가 NULL이 아닐때 반환데이터를 추가로 지정가능 | SELECT NVL2(COMM, '0','X') FORM EMP | X |
*MYSQL IFNULL(비교군,'리턴내용') |
NULL 일경우 사용자 지정내용 리턴 | *MYSQL SELL IFNULL(NAME,'값이없습니다') FROM TEST |
|
DECODE | DECODE([검사대상이 될 열 또는 데이터, 연산이나 함수의 결과],[조건1],[데이터가 조건1과 일치할때 반환결과, [조건2],[데이터가 조건2와 일치할때 반환할 결과], ..... [조건N],[데이터가 조건N와 일치할때 반환할 결과] ], [위조건과 일치한 경우가 없을때 반환할 결과]) IF나 /SWITCH-CASE 조건문과 같은 이 데이터를 조건에부합하는지 비교하고 부합하는 경우 설정한 결과를 반환한다. |
SELECT EMPNO, ENAME, JOB, SAL, DECODE( JOB ,'MANAGER', SAL*1.1, 'SALESMAN', SAL*1.1, 'ANALYST', SAL ,SAL* 1.03) FROM EMP; |
없음 IF나 CASE문 쓸것 ENCODE(문자열,키) 암호화 함수 DECODE(문자열, 키) 복호화 함수 사용 용도가 다름 |
CASE | 조건을 비교하되 각 조건에 사용하는 데이터가 서로 상관없어도 비교가능, 기준데이터값이 같은 데이터외에 다양한 조건을 사용 할 수있다. CASE [비교할 데이터] WHEN [조건1] THEN [조건1 True 반환할 결과] WHEN [조건2] THEN [조건2 True 반환할 결과] WHEN [조건3] THEN [조건3 True 반환할 결과] ... WHEN [조건n] THEN [조건n True 반환할 결과] ELSE [위조건에 일치하는경우가 없을때 바노한할 경과] END |
SELECT EMPNO, CASE JOB WHEN 'MANAGER' THEN SAL*1.1 WHEN 'SALESMAN' THEN SAL*1.05 ELSE SAL*1.03 END FROM EMP; |
O |
* MYSQL IF문 |
오라클 함수의 decode함수는 조건과 같을 겨우만 비교하지만 , 조건문을 적어 줄수있다. IF (조건, 조건이 일치할경우 VALUE, 조건이 일치하지 않을 경우 VALUE) |
*MY SQL SELECT deptno, IF(deptno <= 20,'RESEARCH','OPERATIONS') deptno as "Dept Name" FROM dept; |
|
다중행함수 | |||
SUM(해당열) | 합계 | SELECT COUNT(SAL), COUNT(ALL SAL),COUNT(distinct SAL), SUM(SAL), MAX(SAL), MIN(SAL), AVG(SAL) FROM EMP; | |
COUNT(해당열) | 데이터의 갯수를 구해줌 | ||
MAX(),MIN() | 최대값 , 최소값 | ||
AVG() | 평균값 |
* DATE FORMAT 참고 : https://leggo.tistory.com/23
MYSQL 시간표현 방식, DATE_FORMAT() FORMAT
unit ValueExpected expr Format MICROSECOND MICROSECONDS SECOND SECONDS MINUTE MINUTES HOUR HOURS DAY DAYS WEEK WEEKS MONTH MONTHS QUARTER QUARTERS YEAR YEARS SECOND_MICROSECOND 'SECONDS.MICROSECO..
leggo.tistory.com
728x90
'Database -Mysql,Oracle' 카테고리의 다른 글
[DB] JOIN 조인 (0) | 2022.07.17 |
---|---|
my sql AI , Auto_increment 값 초기화 하기 (0) | 2022.07.01 |
MYSQL 시간표현 방식, DATE_FORMAT() FORMAT (0) | 2022.06.29 |
my sql db복사 /스키마 복사/ 테이블 복사/ db이름바꾸기 (0) | 2022.06.29 |
MYSQL 문자열 컬럼일때 숫자 정렬 오류 TIP (0) | 2022.06.24 |
Comments