一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Oracle與MySQL的SQL語句區(qū)別

 森顏銘 2019-01-12

2 表

2.1 創(chuàng)建表(同)

create table tableName(

columnName1 int,

columnName2 int

)

2.2 刪除表(異)

MySQL:

drop table if exists tableName

 

Oracle:

drop table tableName

注:Oracle沒有if exists關(guān)鍵字,也沒用類似if exists的SQL語法。

 

3 列

3.1 添加列(異)

MySQL:

A. alter table tableName add column columnName1 int;

B. alter table tableName add column columnName1 int, add column columnName2 int;

注:其中關(guān)鍵字column可有可無。

 

Oracle:

A. alter table tableName add columnName1 int;

B. alter table tableName add (columnName1 int);

C. alter table tableName add (columnName1 int, columnName2 int); 

注:對(duì)于A,只有添加單列的時(shí)候才可使用,對(duì)于添加多列時(shí)需要使用C,不能像MySQL那樣重復(fù)使用add column關(guān)鍵字。

3.2 刪除列(異)

MySQL:

A. alter table tableName drop column columnName1

B. alter table tableName drop column columnName1, drop column columnName2

注:其中關(guān)鍵字column可有可無。

 

Oracle:

A. alter table tableName drop column columnName2

B. alter table tableName drop (columnName1)

C. alter table tableName drop (columnName1,columnName2)

注:對(duì)于A,只有刪除單列的時(shí)候才可使用,對(duì)于刪除多列時(shí)需要使用C,不能像MySQL那樣重復(fù)使用drop column關(guān)鍵字。

3.3 修改列名(異)

MySQL:

alter table tableName change column columnNameOld columnNameNew columnType;

 

Oracle:

alter table tableName rename column columnNameOld to columnNameNew;

3.4 修改列類型(說明)

Oracle中,在列有數(shù)據(jù)的時(shí)候,無法修改列類型;沒有數(shù)據(jù)時(shí)可以。

MySQL中,無論列是否有數(shù)據(jù)都可以修改列類型。

但是當(dāng)有數(shù)據(jù)是,直接修改列類型都可能對(duì)數(shù)據(jù)造成丟失等,所以一般需要結(jié)合具體的業(yè)務(wù)來對(duì)列數(shù)據(jù)做處理后,再修改列類型類型。所以修改列的類型并非使用SQL語句進(jìn)行一步到位的修改,而是通過以下流程:

A. 添加臨時(shí)列

B. 將需要更改的列的值經(jīng)過類型轉(zhuǎn)換的驗(yàn)證后,賦值給臨時(shí)列

C. 刪除原有列

D. 將臨時(shí)列的列名修改為原有列列名

 

4 索引

在整個(gè)數(shù)據(jù)庫內(nèi),MySQL的索引可以同名,也就是說MySQL的索引是表級(jí)別的;但是Oracle索引不可以同名,也就是說Oracle的索引是數(shù)據(jù)庫級(jí)別的。

4.1 創(chuàng)建索引(同)

create index indexName on tableName (columnName);

4.2 刪除索引(異)

MySQL:

alter table tableName drop index indexName

 

Oracle:

drop index indexName

4.3 查詢表的索引(異)

MySQL:

show index from tableName

 

Oracle:

select index_name, table_name, column_name from user_ind_columns where table_name=' tableName ' 

 

5 空字符串問題

Oracle中空字符串''就是null(也就是說,只有null,沒有空字符),而MySQL是區(qū)分null和''的。

對(duì)于使用語句:select * from table1 where user_name <> ''來查詢列user_name不為空(不為null且不為空字符)時(shí),Oracle會(huì)查不出任何結(jié)果,而MySQL可以正常運(yùn)行。這里MySQL之所以可以得到正確結(jié)果,還因?yàn)楸容^符號(hào)<>會(huì)先將列為null的內(nèi)容進(jìn)行過濾,然后再比較內(nèi)容是否為空字符串。

這就要求一方面,以后在編寫代碼的時(shí)候,盡量保證不會(huì)往數(shù)據(jù)庫插入空字符串''這樣的值,要么保持有數(shù)據(jù),要么保持為null。另外,對(duì)于MySQL中已經(jīng)同時(shí)存在Null和''時(shí),所有判斷是否為null或者''的地方改為判斷列的長度是否為0。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    在线观看国产成人av天堂野外| 护士又紧又深又湿又爽的视频| 日韩一级免费中文字幕视频| 初尝人妻少妇中文字幕在线| 国产成人精品99在线观看| 国产又大又猛又粗又长又爽| 国产欧美韩日一区二区三区| 精品一区二区三区乱码中文| 亚洲国产精品久久综合网| 久久精品蜜桃一区二区av| 日韩一级免费中文字幕视频| 欧美亚洲国产日韩一区二区| 国产精品熟女乱色一区二区 | 亚洲国产成人精品一区刚刚| 日本人妻精品有码字幕| 美女被后入视频在线观看| 果冻传媒在线观看免费高清 | 欧美精品一区久久精品| 亚洲中文字幕视频一区二区| 日韩欧美中文字幕人妻| 亚洲国产综合久久天堂| 日韩一区二区三区四区乱码视频| 中文字幕精品少妇人妻| 91香蕉国产观看免费人人| 在线观看视频日韩精品| 一个人的久久精彩视频 | 日本淫片一区二区三区| 国产视频在线一区二区| 视频一区二区 国产精品| 久久中文字人妻熟女小妇| 隔壁的日本人妻中文字幕版| 日韩欧美国产亚洲一区| 日韩一区二区三区免费av| 狠狠干狠狠操亚洲综合| 台湾综合熟女一区二区| 国产综合香蕉五月婷在线| 黄色在线免费高清观看| 国产精品免费不卡视频| 亚洲综合精品天堂夜夜| 激情综合网俺也狠狠地| 欧美又大又黄刺激视频|