溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

sql和oracle的語法上有哪些區(qū)別

發(fā)布時間:2020-09-17 10:16:03 來源:億速云 閱讀:352 作者:小新 欄目:MySQL數(shù)據(jù)庫

小編給大家分享一下sql和oracle的語法上有哪些區(qū)別,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

sql和oracle的語法區(qū)別有數(shù)據(jù)類型不同,獲得當(dāng)前系統(tǒng)時間的函數(shù)不同,在oracle沒有默認約束,連接變量和字符串的方式不一樣,case語句不一樣等

sql和oracle的語法上有哪些區(qū)別

數(shù)據(jù)類型不同

sql server的數(shù)據(jù)類型:int ,smallint ,char,varchar,nchar,nvarchar,ntext,datetime,smalldatetime,money,decima,float,bit

oracle 的數(shù)據(jù)類型:number(p,s),char,varchar2,Date,LOB

獲得當(dāng)前系統(tǒng)時間的函數(shù)不同

sql server:getdate()

oracle:sysdate

例如:設(shè)定日期格式的函數(shù)

to_char(sysdate,'yyy-mm-dd');

在oracle中沒有默認約束的說法

sql server 中添加默認約束:

alter table talbe_name add DF_table_name default('男') for sex;

oracle 中添加默認值:

alter table table_name modify(sex default('男'));

連接變量和字符串的方式不一樣

sql server 中連接:使用“+”連接,例如:

print 'aaaa'+@name;

oracle  中連接:使用“||”連接,例如:

dbms_output.put_line('aaa'||name);//name為變量

oracle沒有identity自動增長列,而是使用序列實現(xiàn)增長

sql server 自動增長:在表的主鍵列中可直接使用identity(1,1)實現(xiàn)增長

oracle 使用序列自動增長:

create sequence se_id 
start with 1
increment by 1

使用序列實現(xiàn)自動增長:se_id.nextval

條件語句if……else……的語法不同

sql server中:

  if 條件
            begin
              …………
            end
            else
            begin
              …………
            end

oracle中:

  if 條件1 then
               …………;
            elsif 條件2 then
               …………;
            else
              …………;
            end if;

case語句的語法不同

sql server中:

select ....case.....(else)....end....語句
            select stuno '學(xué)號',case
            when grade>=90 and grade<=100 then '★★★★'
            when grade>=80 and grade<90 then '★★★'
         when grade>=70 and grade<80 then '★★'
         when grade>=60 and grade<70  then '★'
            else '差'
            end as '等級' from score
            go

oracle中:

  declare
        nums number:=&nos;--&nos表示提示傳入值
            begin
              case nums
                when 100 then
                  dbms_output.put_line('滿分也,不錯');
                when 90 then
                  dbms_output.put_line('90分頁很不錯了');
                end case;
            end;

創(chuàng)建用戶的方式不同

sql server中

創(chuàng)建登陸賬號:sa-----123456

create Login 登陸名稱 with password='登陸密碼'

修改登陸賬戶:

alter Login 登陸名稱 with name='新登錄名稱' and password='新登錄密碼'

禁用/啟用登陸賬號

alter Login 登錄名稱 disable(禁用)/enable(啟用)

刪除登陸賬號

drop Login 登錄名稱

創(chuàng)建用戶:

create user 用戶名 for/from Login 登陸名稱

修改用戶名

alter user 用戶名 with name='新用戶名'

刪除用戶名

drop user 用戶名

授權(quán)限

grant select/update/delete/insert on 表名 to 用戶名

oracle中:

創(chuàng)建用戶語法

create user 用戶名
identified by 密碼
default tablespace users
temporary tablespace temp
quota 10M on users

修改密碼

alter user 用戶名 identified by 新密碼

授予權(quán)限

grant create session to 用戶名

刪除用戶

drop user 用戶名 cascade;

以上是sql和oracle的語法上有哪些區(qū)別的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI