Rumah  >  Artikel  >  Apakah perbezaan antara oracle dan db2 sql

Apakah perbezaan antara oracle dan db2 sql

小老鼠
小老鼠asal
2023-07-05 14:55:361283semak imbas

Perbezaan SQL antara oracle dan db2: 1. Oracle menggunakan "buat jadual a sebagai pilih * daripada b" untuk mencipta jadual yang serupa, dan db2 menggunakan "buat jadual a seperti b" untuk mencipta jadual yang serupa; fungsi "to_char" untuk menukar, db2 menggunakan penukaran jenis varchar.

Apakah perbezaan antara oracle dan db2 sql

Sistem pengendalian tutorial ini: sistem Windows 10, Oracle versi 19c, komputer Dell G3.

What adalah perbezaan antara DB2 dan pernyataan SQL Oracle

1 masa sistem Sintaks

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

5. Kaedah penukaran nilai nol adalah berbeza

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

Coalesce() fungsi

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

6 Jenis kaedah penukaran adalah berbeza

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

Analisis:

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;)函数来实现上述功能)

dan kini menyokong DB2 dan V8. versi telah menambah kepada_number

7. Rentetan ditukarkan kepada tarikh dengan cara yang berbeza (Kepada_Nombor/cast)

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

8 Subquery

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

9. Pertanyaan berhierarki

Belajar lagi: Pertanyaan hierarki Oracle (pertanyaan rekursif): mulakan dengan...sambung dengan sebelumnya dan kata kunci tahap

DB2:

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;)

Seperti yang ditunjukkan di atas, mulakan dari cucu untuk bertanya semua nod induknya, mula-mula tetapkan permulaan titik meja maya, iaitu Baris keempat di sebelah kiri; tolak ke atas satu demi satu, bapanya ialah anak = anak dalam baris sebelumnya, iaitu, VT.parent = T.child...

Pertanyaan terakhir result is: Apakah perbezaan antara oracle dan db2 sql

test_parent

anak

ayah

Apakah perbezaan antara oracle dan db2 sqldatuk

10. Terdapat perbezaan dalam jenis data

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;

11 Mengenai kaedah rowId

Oracle:
    直接用子查询
 
Db2:WITH语句
    WITH  a1 AS(SELECT max(id) AS aa1 FROM test )SELECT id ,aa1 FROM test ,a1

12.

Atas ialah kandungan terperinci Apakah perbezaan antara oracle dan db2 sql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn