oracle和mysql使用中的異同總結

2021-10-08 06:55:40 字數 3061 閱讀 4554

在使用中mysql和oracle經常會有不同的地方困擾自己,特地一一總結避免以後再被迷惑。

1、連線方式不一樣
①oracle的連線是url 、user、password,這裡user是指乙個連線下的乙個資料庫。 而mysql的 在url中就指明了連哪個庫,例如這裡的mysql

url

: jdbc:mysql://localhost:3306/mysql?allowmultiqueries=true&useunicode=true&characterencoding=utf-8&autoreconnect=true&usessl=false&servertimezone=utc

username

: root

password

:420188

2、時間方式不一樣
②對傳入時間的比較。比如傳入開始時間和結束時間,mysql和oracle也都不一樣,主要是時間的轉換和時間的表示不一樣。

這是mysql:

<

if test=

"starttime != null and starttime !='' "

>

and<

![cdata[ ssw.recordtime >= date_format(

#,'%y-%m-%d %h:%m:%s')]]>

>

<

if test=

"endtime != null and endtime !='' "

>

and<

![cdata[ ssw.recordtime <= date_format(

#,'%y-%m-%d %h:%m:%s')]]>

>

這是oracle:

<

if test=

"starttime != null and starttime !='' "

>

and<

![cdata[ ssw.recordtime >= to_date(

#,'yyyy-mm-dd hh24:mi:ss')]]>

>

<

if test=

"endtime != null and endtime !='' "

>

and<

![cdata[ ssw.recordtime <=to_date(

#,'yyyy-mm-dd hh24:mi:ss')]]>

3、批量插入資料時,不一樣。

mysql的批量插入

insert

into sys_base_fileindex

( name,

filetypeid,

filepath,

businesstypeid,

uploadtime,

filesize

)values

"list" item=

"item"

index

="index" separator=

",">(#,

#,#,

#,#,#)

<

/foreach>

而oracle的批量插入:

<

insert id=

"batchinsert" parametertype=

"com.ali.modules.filemanagement.entity.etldataaccessfileio"

>

insert

into etl_data_access_fileio(name,file_size,upload_time,

status

)"afterdeallist" item=

"item"

index

="index" seperator=

"union all"

>

(select

#,#,

#,#

from dual)

<

/foreach>

<

/insert

>

插入資料的異同:

1.oracle的資料插入每個欄位需指明型別,字串用:jdbctype=varchar,時間用:jdbctype=timestamp,數字用:jdbctype=decimal 而mysql可以不指定。

2、獲取集合中的值用select …………from dual (在標籤內)

3、欄位和值之間沒有values這個(單條插入是有values的)。

4、標籤中的separator的屬性值為union all將查詢合併結果。

4、模糊查詢不一樣:oracle的concat函式只能連線兩個引數

mysql用法:

<

if test=

"name != null"

>

and badge_name like concat(

'%',

#,'%')

>

oracle的用法:

<

if test=

"name != null"

>

and badge_name like concat(concat(

'%',

#),'%')

>

⑤ 如果null就取0

mysql:ifnull(null,0)

oracle:nvl(null,0)

⑥ 未完待續……

mysql中的text和oracle中的blob

又分為tinytext,text,mediumtext,longtext,都是表示資料長度型別的一種。tinytext 256 bytes text 65,535 bytes 64kb mediumtext 16,777,215 bytes 16mb longtext 4,294,967,295 b...

使用ORACLE和MYSQL的簡單區別

最近在在學習資料庫,用到了oracle 和mysql 其中oracle 我在過去的工作中稍有接觸,對於oracle 也只是剛摸到門路,而對於mysql 只是聽說他是乙個開源專案,基本上算是沒接觸過。這段時間二個資料庫一起使用,難免會出現操作中混亂,我在這裡大致歸納下我遇到最常見的問題。1.在orac...

Oracle和MSSQL中迴圈的使用

create or replace function setstate oldvalue varchar2,pos number,svalue varchar2 return varchar2 isreturn value varchar2 20 len number 8 i number 8 te...