Heim  >  Artikel  >  Was ist der Unterschied zwischen Oracle und DB2 SQL?

Was ist der Unterschied zwischen Oracle und DB2 SQL?

小老鼠
小老鼠Original
2023-07-05 14:55:361289Durchsuche

Der SQL-Unterschied zwischen Oracle und db2: 1. Oracle verwendet „Tabelle a erstellen als Auswahl * aus b“, um eine ähnliche Tabelle zu erstellen, und db2 verwendet „Tabelle a wie b erstellen“, um eine ähnliche Tabelle zu erstellen. 2. Oracle verwendet Die Funktion „to_char“ konvertiert, db2 verwendet die Konvertierung des Varchar-Typs.

Was ist der Unterschied zwischen Oracle und DB2 SQL?

Das Betriebssystem dieses Tutorials: Windows 10-System, Oracle Version 19c, Dell G3-Computer.

Was ist der Unterschied zwischen db2- und Oracle-SQL-Anweisungen

1. Erstellen Sie schnell eine große Tabellensyntax

Oracle :
    create table a as select * from b;
DB2    :
    create table a like b;
          
    (8版本有效,9版本无效)
    create table new_a as select col1,col2... from a definition only

4 Systemzeitgrammatik

Oracle :
    truncate table a;
DB2    :
    alter table a active not logged initially with empty table;

5. Die Methoden zur Nullwertkonvertierung sind unterschiedlich Version hat to_number

7 hinzugefügt. Zeichenfolgen werden auf unterschiedliche Weise in Datumsangaben umgewandelt (To_Number/cast)

Oracle :
    select * from a where rownum <= N;
DB2    :
    select * from a fetch first N rows only;

8. Rekursive Abfrage (hierarchische Abfrage)

Oracle :
    select sysdate from dual;
DB2    :
    select current timestamp from sysibm.sysdummy1;

Oracle :
    select col1,col2,nvl(col3,&#39;0&#39;) from tablename; (判断col3字段是否为空,不为空就输出原来的数值,为空就输出0)
DB2   :
    select col1,col2,value(col3,&#39;0&#39;) from tablename;
     
    (mysql和Db2可以使用Coalesce(col3,&#39;0&#39;)函数来实现上述功能)

Lernen mehr: Hierarchische Oracle-Abfrage (rekursive Abfrage): Beginnen Sie mit ... connect by prior und dem Ebenenschlüsselwort

DB2:

这个函数主要用来进行空值处理,其参数格式如下: COALESCE ( expression,value1,value2……,valuen)
COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。
COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。
    如果expression不为空值则返回expression;
    否则判断value1是否是空值,如果value1不为空值则返回value1;
    否则判断value2是否是空值,如果value2不为空值则返回value2;
    ……以此类推,
    如果所有的表达式都为空值,则返回NULL。

Wie in der Abbildung oben gezeigt, beginnen Sie beim Enkel, um zuerst alle übergeordneten Knoten abzufragen Legen Sie den Startpunkt der virtuellen Tabelle fest, d Das endgültige Abfrageergebnis lautet:

test_parent

son

Was ist der Unterschied zwischen Oracle und DB2 SQL?father

grandpa

10. Es gibt Unterschiede in den Datentypen

oracle :
    select to_char(sysdate,&#39;YYYY-MM-DD HH24:MI:SS&#39;) from dual;
DB2    :
    select varchar(current timestamp) from sysibm.sysdummy1;

11. Über rowIdWas ist der Unterschied zwischen Oracle und DB2 SQL?

Oracle数据类型改变函数:to_char()、to_date()、to_number()等;
    如果仅仅取年,月,日等,可以用
        to_char(sysdate, &#39;YYYY&#39;),
        to_char(&#39;MM&#39;) ,
        to_char(&#39;DD&#39;)取得。
    只取年月日TRUNC(SYSDATE)。
    取时分秒TO_CHAR(SYSDATE,&#39;HH24:MI:SS&#39;)。
 
DB2数据类型改变函数:char()、varchar()、int()、date()、time()等;
    取得年,月,日等的写法:
        YEAR(current timestamp),
        MONTH(current timestamp),
        DAY(current timestamp),
        HOUR(current timestamp),
        MINUTE(current timestamp),
        SECOND(current timestamp),
        MICROSECOND(current timestamp),
    只取年月日可以用
        DATE(current timestamp),
    取时分秒
        TIME(current timestamp)。
    Char()是定长字符串(1-255),varchar()为非定长字符串(1-32672)日期,
    时间形态变为字符形态:
        char(current date),
        char(current time)
    将字符串转换成日期或时间形态:
        TIMESTAMP(&#39;2002-10-2012:00:00&#39;),
        DATE(&#39;2002-10-20&#39;),
        DATE(&#39;10/20/2002&#39;),
        TIME(&#39;12:00:00&#39;)

12.decode-Methode

Oracle:
    select to_number(&#39;123&#39;) from dual;
    select cast(&#39;123&#39; as integer) from dual;
DB2   :
    select cast(&#39;123&#39; as integer) from sysibm.sysdummy1;
    select cast(current time as char(8)) from sysibm.sysdummy1;

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Oracle und DB2 SQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn