> 데이터 베이스 > MySQL 튜토리얼 > MySQL과 Oracle의 차이점 비교 3 기능

MySQL과 Oracle의 차이점 비교 3 기능

黄舟
풀어 주다: 2017-01-17 11:48:01
원래의
1325명이 탐색했습니다.

MySQL과 Oracle의 세 가지 차이점 비교

함수

숫자 범주 ORACLE MYSQL 설명

1 숫자함수 round(1.23456,4) round (1.23456,4) 동일:
ORACLE: 이중에서 round(1.23456,4) 값 선택
MYSQL: round(1.23456,4) 값 선택

2 abs(-1) abs( -1) 기능: 현재 데이터의 절대값을 취함
사용법: oracle과 mysql의 사용법은 동일함
mysql: select abs(-1) value
oracle: select abs(-1) value from double

3 ceil(-1.001))ceiling(-1.001) 함수: X보다 작지 않은 가장 작은 정수를 반환
사용법:
mysqls: 천장(-1.001) 선택 value
oracle: 듀얼에서 ceil(-1.001) 값 선택

4 Floor(-1.001) Floor(-1.001) 기능: X보다 크지 않은 최대 정수 값을 반환합니다
사용법 :
mysql: 층(-1.001) 값 선택
oracle: 이중에서 층(-1.001) 값 선택

5 Max(expr)/Min(expr) Max (expr)/Min(expr) 함수: expr의 최소값 또는 최대값을 반환합니다. MIN() 및 MAX()는 문자열 인수를 허용할 수 있으며, 이 경우 전달된 가장 작은 문자열 또는 가장 큰 문자열을 반환합니다.
사용법:
ROACLE: sd_usr에서 max(user_int_key) 선택;
MYSQL: sd_usr에서 max(user_int_key) 선택

6 문자열 함수 ascii(str) ascii(str) 함수: 문자열 str의 가장 왼쪽 문자의 ASCII 코드 값을 반환합니다. str이 빈 문자열이면 반환 값은 0입니다. str이 NULL이면 반환 값도 NULL입니다.

사용법:
mysql:select ascii('a') value
oracle:select ascii('a') value from double


7 CHAR(N,...) CHAR(N,...) 함수: CHAR()는 매개변수를 정수형으로 해석하여

문자로 구성된 문자를 ASCII 코드 값으로 반환합니다. 정수 문자열로. NULL 값은 무시됩니다.

사용법:
mysql:select char(97) value
oracle:select chr(97) value from Dual



8 REPLACE( str,from_str,to_str) REPLACE(str,from_str,to_str) 함수: 문자열 str에서 문자열 from_str이 모두 to_str로 대체된 다음 해당 문자열이 반환됩니다.

사용법:

mysql: SELECT REPLACE ('abcdef', 'bcd', 'ijklmn') 값
oracle: SELECT 바꾸기('abcdef', 'bcd', 'ijklmn') value from double




9 INSTR('sdsq','s',2) INSTR('sdsq','s') 매개변수 개수가 다릅니다

ORACLE: INSTR('sdsq','s',2 선택 ) value from double (위치 2부터 시작해야 함)

MYSQL: INSTR('sdsq','s') 값 선택 (기본 위치 1부터 시작)

10 SUBSTR('abcd', 2,2) 부분 문자열('abcd',2,2) 함수 이름이 다릅니다:

ORACLE: 이중에서 substr('abcd',2,2) 값 선택

MYSQL: 부분 문자열('abcd', 2,2) value

11 instr('abcdefg','ab') located('ab','abcdefg') 함수 이름은 다릅니다.

instr -> 찾기의 하위 문자열과 전체 문자열의 위치를 ​​바꿔야 함)

ORACLE: SELECT instr('abcdefg', 'ab') VALUE FROM DUAL
MYSQL: SELECT Locate('ab', 'abcdefg') VALUE

12 길이(str ) char_length() 함수 이름이 다릅니다:

ORACEL: SELECT length('AAAASDF') VALUE FROM DUAL

MYSQL: SELECT char_length('AAAASDF') VALUE

13 REPLACE('abcdef', ' bcd', 'ijklmn') REPLACE('abcdef', 'bcd', 'ijklmn') 다음과 동일:

ORACLE: SELECT REPLACE('abcdef', 'bcd' , 'ijklmn') 듀얼

MYSQL의 값 : SELECT REPLACE('abcdef', 'bcd', 'ijklmn') 값

14 LPAD('abcd',14, '0') LPAD( 'abcd',14, '0') 동일:

ORACLE: 듀얼에서 LPAD('abcd',14, '0') 값 선택

MYSQL: LPAD('abcd',14, '0 선택 ') 이중의 값

15 UPPER(iv_user_id) UPPER(iv_user_id) 다음과 동일:

ORACLE: sd_usr에서 UPPER(user_id) 선택;

MYSQL: sd_usr에서 UPPER(user_id) 선택; 🎜>

16 LOWER(iv_user_id) LOWER(iv_user_id) 다음과 동일:
ORACLE: sd_usr에서 LOWER(user_id) 선택;
MYSQL: sd_usr에서 LOWER(user_id) 선택

17 제어 흐름 function nvl(u.email_address, 10) IFNULL(u.email_address, 10)
또는
ISNULL(u.email_address) 함수 이름이 다릅니다(다른 함수에 따라 선택):
ORACLE: u를 선택합니다. email_address , nvl(u.email_address, 10) sd_usr의 값 u (u.email_address=NULl인 경우 해당 값을 DB에서 10으로 바꿉니다.)
MYSQL: u.email_address, IFNULL(u.email_address, 10) 값을 선택합니다. sd_usr u(u.email_address=NULl인 경우 DB에서 해당 값을 10으로 바꾸는 대신 표시되는 결과는 10입니다)
sd_usr에서 u.email_address, ISNULL(u.email_address) 값을 선택합니다 u(if u. If email_address가 NULL이면 1가 표시되고 그렇지 않으면 0가 표시됩니다.

18 DECODE(iv_sr_status,g_sr_status_com, ld_sys_date, NULL) 없음, 대신 IF 또는 CASE 문을 사용하세요.
IF 명령문 형식: (expr1, expr2, expr3) 설명:
1. 디코드(조건, 값 1, 번역 값 1, 값 2, 번역 값 2,... 값 n, 번역 값 n, 기본값)
이 함수의 의미는 다음과 같습니다.
IF 조건 = 값 1 THEN
RETURN(변환 값 1)
ELSIF 조건 = 값 2 THEN
RETURN(변환 값 2)
. .. ...
ELSIF 조건 = 값 n THEN
RETURN(변환 값 n)
ELSE
RETURN(기본값)
END IF

2. 구문 설명
함수: expr1이 TRUE(expr1<> 0 및 expr1<> NULL)인 경우 IF()의 반환 값은 expr2입니다.
그렇지 않은 경우 반환 값은 expr3입니다. IF()의 반환 값은
컨텍스트에 따라 숫자 값 또는 문자열 값입니다.
사용법:
mysql: SELECT IF(1>2,2,3);

19 유형 변환 함수 TO_CHAR(SQLCODE) date_format/ time_format 함수 이름이 다름
SQL> ; 듀얼에서 to_char(sysdate,'yyyy-mm-dd') 선택;
SQL> 듀얼에서 to_char(sysdate,'hh24-mi-ss') 선택;
mysql> date_format(now(), ' %Y-%m-%d');
mysql> select time_format(now(),'%H-%i-%S')

20 to_date(str,format) STR_TO_DATE ( str,format) 함수 이름이 다릅니다:
ORACLE: SELECT to_date('2009-3-6','yyyy-mm-dd') VAULE FROM DUAL
MYSQL: SELECT STR_TO_DATE('2004-03- 01' , '%Y-%m-%d') VAULE

21 trunc(-1.002) Cast(-1.002 as SIGNED) 함수 이름이 다릅니다.
TRUNC에 의해 잘린 날짜 값입니다. 지정된 요소에 대한 함수입니다.
ORACLE: 이중에서 trunc(-1.002) 값 선택
MYSQL: SIGNED로 캐스트(-1.002) 값 선택
MYSQL:
문자 집합 변환: CONVERT(xxx USING gb2312)
유형 변환은 SQL Server와 동일하지만 유형 매개변수가 약간 다릅니다: CAST(xxx AS 유형), CONVERT(xxx, 유형), 유형은 다음 유형을 사용해야 합니다.

사용 가능한 유형
바이너리, 바이너리 접두사의 효과: BINARY
문자 유형, 매개변수를 사용할 수 있음: CHAR()
날짜: DATE
시간: TIME
날짜 및 시간 유형: DATETIME
부동 소수점 숫자: DECIMAL
정수: SIGNED
부호 없는 정수: UNSIGNED

22 TO_NUMBER(str) CAST("123" AS SIGNED INTEGER) 함수 이름이 다릅니다.
ORACLE:SELECT TO_NUMBER('123 ') AS VALUE FROM DUAL;
MYSQL: SELECT CAST("123" AS SIGNED INTEGER) as value;
SIGNED INTEGER: 부호 있는 정수

23 날짜 함수 SYSDATE now() / SYSDATE() 다양한 쓰기 방법:
ORACLE:select SYSDATE value from Dual
MYSQL:select now() value
select sysdate() value

24 Next_day(sysdate,7) 함수 사용자 정의: F_COMMON_NEXT_DAY (date,int) 함수 이름이 다릅니다.
ORACLE: SELECT Next_day(sysdate,7) value FROM DUAL
MYSQL: SELECT F_COMMON_NEXT_DAY(SYSDATE(), 3) value from DUAL;
(3: 해당 주의 인덱스 값을 참조) return 다음 주 바로 다음의 지정된 날짜

25 ADD_MONTHS(sysdate, 2) DATE_ADD(sysdate(), 간격 2개월) 함수 이름이 다릅니다.
ORACLE : DUAL의 값으로 SELECT ADD_MONTHS(sysdate, 2);
MYSQL: DUAL의 값으로 SELECT DATE_ADD(sysdate(), 간격 2개월)

26 2개의 날짜 빼기(D1-D2) DATEDIFF(date1,date2) 함수: 두 날짜 사이의 일수를 반환합니다.
사용법:
mysql: SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
oracle: 두 날짜 직접 빼기(예: d1-d2=12.3 )

27 SQL 함수 SQLCODE MYSQL에는 해당 함수가 없지만 JAVA에서는 SQLException이 있습니다. getErrorCode() 함수는 오류 번호를 얻을 수 있습니다. Oracle의 내장 함수인 SQLCODE 및 SQLERRM은 각각 Oracle의 오류 코드 및 오류 메시지를 반환하기 위해 OTHERS 프로세서에서 사용됩니다.
MYSQL: JAVA에서 오류 코드, 오류 상태, 오류 메시지를 얻을 수 있습니다.

28 SQLERRM MYSQL에는 해당 함수가 없지만 JAVA에서는 SQLException이 있습니다. getMessage() 함수는 오류 메시지를 얻을 수 있습니다. Oracle의 내장 함수인 SQLCODE 및 SQLERRM은 Oracle의 오류 코드와 오류 메시지를 각각 반환하기 위해 OTHERS 프로세서에서 특별히 사용됩니다.
MYSQL: JAVA에서 오류 코드, 오류 상태 및 오류 메시지를 얻을 수 있습니다.

29 SEQ_BK_DTL_OPT_INT_KEY.NEXTVAL 자동 증가 열 MYSQL에서 자동 증가 열을 가져오는 데 사용되는 방법은 다음과 같습니다. 최신 ID:
START TRANSACTION
INSERT INTO user(username,password)
VALUES (username,MD5(password));
SELECT LAST_INSERT_ID() INTO id;
COMMIT; 🎜>

30 SUM(enable_flag ) SUM(enable_flag) 다음과 동일:

ORCALE: SELECT SUM(enable_flag) FROM SD_USR;
MYSQL: SELECT SUM(enable_flag) FROM SD_USR; MYSQL의 DBMS_OUTPUT.PUT_LINE(SQLCODE) 없음 해당 방법은 테스트를 위해 콘솔에 인쇄하는 것이며 마이그레이션에는 영향을 미치지 않습니다. dbms_output.put_line은 한 줄에 255자만 표시할 수 있습니다. 이를 초과하면 오류가 보고됩니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿