淺析Mysql和Oracle數據庫的在各個方面的區別

一.數據庫本身

mysql爲中小型數據庫,比起oracle更加方便,一般不做商用。oracle數據庫一般用於偏大型項目,具有良好的兼容性、可移植性、可連接性和高生產率,oracle是不開源的,一般稍大型公司都有自己優化過的oracle。

二.連接方面(jdbc連接方法)

oracle:

driverClassName=oracle.jdbc.driver.OracleDriver
url=jdbc:oracle:thin:服務器地址(localhost時前面加@):端口號:數據庫名

mysql:

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://服務器地址(localhost時前面加@):端口號/數據庫名

三.數據類型

自增長類型:mysql有,通過增加auto_increment實現字段自增長;oracle沒有,通過序列sequence實現自增長

時間類型:mysql(date,time,datetime,timestamp,year等,每個類型時間格式不一樣),oracle(date),長度自動設置

int類型:mysql(表示整數可以自定義長度),oracle(一般使用number,使用int時數據庫會自動保存爲number,我的oracle版本是11.2.0.1.0)

字符類型:oracle有char,nchar,varchar,varchar(char 定長字符,不能手動指定字符或者字節,nchar 定長字符,可以手動指定字符或者字節,varchar2 變長字符,varchar 目前跟varchar2功能一樣,估計後期會賦予新功能 ),mysql有char,varchar(cha, 固定長度,varchar 可變長度)

其他類型:mysql有枚舉類型enum和集合類型set以及json數據類型,oracle沒有

四.sql語句

分頁查詢:

mysql    select * from a limit a,b(從a+1開始,查詢a表中的b條數據)

oracle   select aa.* from (select rownum r,a.* from a) aa where r between c and d(查詢a表中的c-d的數據)

日期轉換:

mysql    一般使用dateformat()函數

oracle    一般使用to_date()

刪除語句(*)

mysql   delete from a where ...

oracle   delete a where ...

UUID的生成

mysql     直接用select uuid()函數可以生成uuid

oracle    一般需要運行語句

CREATE OR REPLACE
FUNCTION get_uuid
RETURN VARCHAR
IS
guid VARCHAR (50);
BEGIN
guid := lower(RAWTOHEX(sys_guid()));
RETURN
substr(guid,1,8)||'-'||substr(guid,9,4)||'-'||substr(guid,13,4)||'-'||substr(guid,17,4)||'-'||substr(guid,21,12);
END get_uuid;

之後使用select get_uuid from dual生成uuid

創建數據庫

oracle   create tablespace tbs datafile '路徑' size 文件大小 ...

mysql   create database [數據庫名稱] default character set utf8 collate utf8_general_ci;

創建用戶

oracle   create user usera identified by 密碼

mysql    CREATE USER 'fzj@localhost' IDENTIFIED BY '123456'

查詢所有表名

oracle select table_name from user_tables

mysql  select table_name from information_schema.tables where table_schema='dbname'

後續待補...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章