日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql与oracle语法区别

發布時間:2023/12/20 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql与oracle语法区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一.建表(同)
create table tableName(
? ?lid int,
? ?lName VARCHAR(255),
? ?lSex VARCHAR(255),
? ?lAge int
)

二.刪除表(異)

MySql:注:對于不存在的表,使用IF EXISTS用于防止錯誤發生。當使用IF EXISTS時,對于每個不存在的表,會生成一個NOTE。
drop table if EXISTS tableName;
drop table tableName;

Oracle:
drop table tableName;

三.列操作

1.刪除列(異)

MySql:注:column關鍵詞可有可無。

alter table tableName?add column lBanji varchar(255);?
alter table tableName add column lAddress varchar(255),add column lEmail varchar(255);

Oracle:?注:刪除多列使用()號,單列不使用。
alter table tableName drop column lBanji;
alter table tableName drop (lAddress,lEmil);

2.添加列(異)

MySql:注:column關鍵詞可有可無。
alter table tableName add column lBanji varchar(255);?
alter table tableName add column lAddress varchar(255),add column lEmail varchar(255);

Oracle:注:添加多列使用()號,單列不使用。
alter table tableName add lBanji varchar(255);
alter table tableName add(lAddress varchar(255),lEmil varchar(255));

3.修改列(異)

MySql:

alter table tableName change column lBanji lEmail varchar(255);

Oracle:

alter table tableName?rename column lBanji to lEmail;

注:

Oracle中,該列有數據的時候,無法修改列類型;沒有數據時可以。

MySQL中,無論修改列是否有數據都可以修改列類型。

但是當有數據是,直接修改列類型都可能對數據造成丟失等,所以一般需要結合具體的業務來對列數據做處理后,再修改列類型類型。所以修改列的類型并非使用SQL語句進行一步到位的修改,而是通過以下流程:

A.?添加臨時列

B.?將需要更改的列的值經過類型轉換的驗證后,賦值給臨時列

C.?刪除原有列

D.?將臨時列的列名修改為原有列列名

四.索引

注:在整個數據庫內,MySQL的索引可以同名,MySQL的索引是表級別的;但是Oracle索引不可以同名,也就是說Oracle的索引是數據庫級別的。

1.創建索引(同)

create?index?indexName?on?tableName?(columnName);

2.刪除索引(異)

MySql:

alter?table?tableName?drop?index?indexName

Oracle:

drop?index?indexName

3.查詢表索引(異)

MySql:

show?index?from?tableName

Oracle:

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

五.數據庫空字符串問題

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

對于使用語句:select * from table1 where user_name <> ''來查詢列user_name不為空(不為null且不為空字符)時,Oracle會查不出任何結果,而MySQL可以正常運行。這里MySQL之所以可以得到正確結果,還因為比較符號<>會先將列為null的內容進行過濾,然后再比較內容是否為空字符串。

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

總結

以上是生活随笔為你收集整理的mysql与oracle语法区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。