MySQL- und Oracle-Unterschiedsvergleich drei Funktionen
Funktion
Zahlenkategorie ORACLE MYSQL-Kommentar
1 Numerische Funktion Round(1.23456,4) Round (1.23456,4) Das Gleiche wie:
ORACLE: wähle den Wert „round(1.23456,4)“ aus Dual aus
MYSQL: wähle den Wert „round(1.23456,4)“
2 abs(-1) abs( -1) Funktion: Ermitteln Sie den absoluten Wert der aktuellen Daten
Verwendung: Die Verwendung von Oracle und MySQL ist dieselbe
MySQL: Wählen Sie den Wert „abs(-1)“ aus
Oracle: Wählen Sie den Wert „abs(-1)“ aus Wert aus Dual
3 Decke(-1.001)) Decke(-1.001) Funktion: Gibt die kleinste ganze Zahl zurück, die nicht kleiner als value
oracle: select ceil(-1.001) value from dual
4 floor(-1.001) floor(-1.001) Funktion: Gibt den maximalen ganzzahligen Wert zurück, der nicht größer als X ist
MySQL: Bodenwert (-1,001) auswählen
Oracle: Bodenwert (-1,001) aus Dual auswählen
5 Max(expr)/Min(expr) Max (expr)/Min(expr) Funktion: Gibt den minimalen oder maximalen Wert von expr zurück. MIN() und MAX() können ein String-Argument akzeptieren; in diesem Fall geben sie den übergebenen minimalen oder maximalen String zurück.
ROACLE: wähle max(user_int_key) aus sd_usr;
MYSQL: wähle max(user_int_key) aus sd_usr;
6 String-Funktion ascii(str) ascii(str) Funktion: Gibt den ASCII-Codewert des Zeichens ganz links in der Zeichenfolge str zurück. Wenn str ein leerer String ist, ist der Rückgabewert 0. Wenn str ein NULL-Wert ist, ist auch der Rückgabewert NULL.
Verwendung:
Oracle:ascii('a')-Wert aus Dual auswählen
7 CHAR(N,...) CHAR(N,...) Funktion: CHAR() interpretiert Parameter im Ganzzahltyp und gibt die Zeichen zurück, die aus den Zeichen
bestehen, die durch den dargestellten ASCII-Codewert gegeben sind durch die Ganzzahlzeichenfolge. NULL-Werte werden ignoriert.
Verwendung:
oracle:select chr(97) value from dual
8 REPLACE( str,from_str,to_str) REPLACE(str,from_str,to_str) Funktion: Alle Vorkommen des Strings from_str im String str werden durch to_str ersetzt und dann wird der String zurückgegeben
Verwendung:
mysql: SELECT REPLACE ('abcdef', 'bcd', 'ijklmn') value
9 INSTR('sdsq','s',2) INSTR('sdsq','s') Die Anzahl der Parameter ist unterschiedlich
ORACLE: Wählen Sie INSTR('sdsq','s',2 ) Wert aus Dual (Erforderlich, um an Position 2 zu beginnen)
MYSQL: select INSTR('sdsq','s') value (starten an der Standardposition 1)
10 SUBSTR('abcd', 2,2) Teilzeichenfolge ('abcd',2,2) Funktionsnamen sind unterschiedlich:
ORACLE: wähle substr('abcd',2,2) Wert aus Dual
MYSQL: wähle Teilzeichenfolge('abcd', 2,2) value
11 instr('abcdefg','ab')locate('ab','abcdefg') Die Funktionsnamen sind unterschiedlich:
instr ->locate (Hinweis: die Ort der Teilzeichenfolge von „locate“ und der Gesamtzeichenfolge (zu vertauschen)
ORACLE: SELECT instr('abcdefg', 'ab') VALUE FROM DUAL
12 length (str ) char_length() Funktionsnamen sind unterschiedlich:
ORACEL: SELECT length('AAAASDF') VALUE FROM DUAL
MYSQL: SELECT char_length('AAAASDF') VALUE
13 REPLACE('abcdef', ' bcd', 'ijklmn') REPLACE('abcdef', 'bcd', 'ijklmn') Gleich wie:
ORACLE: SELECT REPLACE('abcdef', 'bcd' , 'ijklmn') Wert aus Dual
MYSQL : SELECT REPLACE('abcdef', 'bcd', 'ijklmn') Wert
14 LPAD('abcd',14, '0') LPAD( 'abcd',14, '0') Das Gleiche wie:
ORACLE: LPAD('abcd',14, '0')-Wert aus Dual auswählen
MYSQL: LPAD('abcd',14, '0') auswählen ') Wert aus Dual
15 UPPER (iv_user_id) UPPER(iv_user_id) Das Gleiche wie:
ORACLE: select UPPER(user_id) from sd_usr;
MYSQL: select UPPER(user_id) from sd_usr
16 LOWER(iv_user_id) LOWER(iv_user_id) Gleiches:
ORACLE: wähle LOWER(user_id) aus sd_usr;
MYSQL: wähle LOWER(user_id) aus sd_usr;
17 Kontrollflussfunktion nvl(u.email_address, 10) IFNULL(u.email_address, 10)
oder
ISNULL(u.email_address) Funktionsnamen sind unterschiedlich (wählen Sie je nach verschiedenen Funktionen aus):
ORACLE: Wählen Sie u.email_address aus , nvl(u.email_address, 10) Wert aus sd_usr u (Wenn u.email_address=NULl, ersetzen Sie den Wert durch 10 in der Datenbank)
MYSQL: Wählen Sie u.email_address, IFNULL(u.email_address, 10) Wert aus sd_usr u(wenn u.email_address=NULL, ist das angezeigte Ergebnis 10, anstatt seinen Wert durch 10 in der Datenbank zu ersetzen)
wählen Sie u.email_address, ISNULL(u.email_address)-Wert aus sd_usr u(wenn u. Wenn email_address NULL ist , es wird 1
18 DECODE(iv_sr_status,g_sr_status_com, ld_sys_date, NULL) Keine, bitte verwenden Sie stattdessen die IF- oder CASE-Anweisung.
IF-Anweisung Format: (Ausdruck1, Ausdruck2, Ausdruck3) Beschreibung:
1. Dekodierung (Bedingung, Wert 1, Übersetzungswert 1, Wert 2, Übersetzungswert 2,... Wert n, Übersetzungswert n, Standardwert)
Die Bedeutung dieser Funktion ist wie folgt:
WENN Bedingung = Wert 1 DANN
RETURN (Übersetzungswert 1)
ELSIF-Bedingung = Wert 2 DANN
RETURN (Übersetzungswert 2)
. . ...
ELSIF-Bedingung = Wert n THEN
RETURN (Übersetzungswert n)
ELSE
RETURN (Standardwert)
END IF
2 Beschreibung
Funktion: Wenn expr1 TRUE ist (expr1 <> 0 und expr1 <> NULL), ist der Rückgabewert von IF() expr2; andernfalls ist der Rückgabewert expr3. Der Rückgabewert von IF() ist je nach
-Kontext ein numerischer Wert oder ein String-Wert.
Verwendung:
mysql: SELECT IF(1>2,2,3);
SQL> ; select to_char(sysdate,'yyyy-mm-dd') from dual;
SQL> select to_char(sysdate,'hh24-mi-ss') from dual;
mysql> ' %Y-%m-%d');
mysql> select time_format(now(),'%H-%i-%S');
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
Der durch TRUNC abgeschnittene Datumswert Funktion für das angegebene Element.
ORACLE: Wählen Sie den Trunc-Wert (-1.002) aus Dual aus Die Konvertierung ist dieselbe wie bei SQL Server, die Typparameter unterscheiden sich jedoch etwas: CAST(xxx AS-Typ), CONVERT(xxx, Typ), der Typ muss die folgenden Typen verwenden:
Verfügbare Typen
Binär, mit der Wirkung des binären Präfixes: BINARY
Zeichentyp, kann Parameter annehmen: CHAR()
Datum: DATE
Zeit: TIME
Datums- und Uhrzeittyp: DATETIME
Gleitkomma Zahl: DECIMAL
Ganzzahl: SIGNED
Ganzzahl ohne Vorzeichen: UNSIGNED
22 TO_NUMBER(str) CAST("123" AS SIGNED INTEGER) Funktionsnamen sind unterschiedlich
ORACLE:SELECT TO_NUMBER('123 ') AS VALUE FROM DUAL;
MYSQL: SELECT CAST("123" AS SIGNED INTEGER) als Wert;
SIGNED INTEGER: signierte Ganzzahl
23 Datumsfunktion SYSDATE now() / SYSDATE() Verschiedene Schreibmethoden:
ORACLE:wählen Sie den SYSDATE-Wert aus Dual
MYSQL:wählen Sie den Wert „now()“ aus
wählen Sie den Wert „sysdate()“ aus
24 Next_day(sysdate,7) Passen Sie eine Funktion an: F_COMMON_NEXT_DAY (date,int) Die Funktionsnamen sind unterschiedlich:
ORACLE: SELECT Next_day(sysdate,7) value FROM DUAL
MYSQL: SELECT F_COMMON_NEXT_DAY(SYSDATE(), 3) value from DUAL;
(3: bezieht sich auf den Indexwert der Woche) return Das angegebene Datum der nächsten Woche
25 ADD_MONTHS(sysdate, 2) DATE_ADD(sysdate(), Intervall 2 Monat) Funktionsnamen sind unterschiedlich:
ORACLE: SELECT ADD_MONTHS(sysdate, 2) als Wert von DUAL;
MYSQL: SELECT DATE_ADD(sysdate(), Intervall 2 Monat) als Wert von DUAL;
26 Subtrahiere 2 Daten (D1-D2) DATEDIFF(Datum1,Datum2) Funktion: Gibt die Anzahl der Tage zwischen zwei Daten zurück.
Verwendung:
mysql: SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
oracle: Subtrahiere direkt zwei Daten (z. B. d1-d2=12.3)
27 SQL-Funktion SQLCODE Es gibt keine entsprechende Funktion in MYSQL, aber SQLException in JAVA. Die Funktion getErrorCode() kann die Fehlernummer abrufen. Die integrierten Funktionen SQLCODE und SQLERRM von Oracle werden speziell im OTHERS-Prozessor verwendet, um den Fehlercode bzw. die Fehlermeldung von Oracle zurückzugeben.
MYSQL: Sie können den Fehlercode, den Fehlerstatus und die Fehlermeldung von JAVA abrufen
28 SQLERRM Es gibt keine entsprechende Funktion in MYSQL, aber SQLException in JAVA. Die Funktion getMessage() kann die integrierten Funktionen SQLCODE und SQLERRM von Oracle abrufen, die speziell im OTHERS-Prozessor verwendet werden, um den Fehlercode bzw. die Fehlermeldung von Oracle zurückzugeben.
MYSQL: Sie können den Fehlercode, den Fehlerstatus und die Fehlermeldung von JAVA abrufen
29 SEQ_BK_DTL_OPT_INT_KEY.NEXTVAL Spalte mit automatischer Vergrößerung Es handelt sich um eine Spalte mit automatischer Vergrößerung in MYSQL. Die folgende Methode wird zum Abrufen verwendet die neueste ID:
START TRANSACTION ;
INSERT INTO user(username,password)
VALUES (username,MD5(password));
SELECT LAST_INSERT_ID() INTO id;
COMMIT; 🎜>
ORCALE: SELECT SUM(enable_flag) FROM SD_USR;
MYSQL: SELECT SUM(enable_flag) FROM SD_USR;