首頁  >  文章  >  資料庫  >  sql和oracle的語法上有什麼差別

sql和oracle的語法上有什麼差別

清浅
清浅原創
2019-05-10 11:16:1411906瀏覽

sql和oracle語法上的差別有:1、資料型別不同;2、取得目前系統時間的函數不同;3、建立使用者的方式不同;4、連結變數和字串的方式不一樣;5、條件語句「if…else…」的語法不同等等。

sql和oracle的語法上有什麼差別

sql和oracle的語法差異有資料型別不同,取得目前系統時間的函數不同,在oracle沒有預設約束,連接變數和字串的方式不一樣,case語句不一樣等

資料型別不同

sql server的資料型別:int ,smallint ,char,varchar,nchar,nvarchar, ntext,datetime,smalldatetime,money,decima,float,bit

oracle 的資料類型:number(p,s),char,varchar2,Date,LOB

#取得目前系統時間的函數不同

sql server:getdate()

oracle:sysdate

例如:設定日期格式的函數

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自動增長列,而是使用序列實現增長

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

oracle 使用序列自動成長:

create sequence se_id 
start with 1
increment by 1

使用序列實作自動成長: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 '学号',case
            when grade>=90 and grade<=100 then &#39;★★★★&#39;
            when grade>=80 and grade<90 then &#39;★★★&#39;
         when grade>=70 and grade<80 then &#39;★★&#39;
         when grade>=60 and grade<70  then &#39;★&#39;
            else &#39;差&#39;
            end as &#39;等级&#39; from score
            go

oracle中:

  declare
        nums number:=&nos;--&nos表示提示传入值
            begin
              case nums
                when 100 then
                  dbms_output.put_line(&#39;满分也,不错&#39;);
                when 90 then
                  dbms_output.put_line(&#39;90分页很不错了&#39;);
                end case;
            end;

建立使用者的方式不同
##sql server中

建立登陸帳號:sa-----123456

create Login 登陆名称 with password=&#39;登陆密码&#39;

修改登陸帳號:

alter Login 登陆名称 with name=&#39;新登录名称&#39; and password=&#39;新登录密码&#39;

停用/啟用登陸帳號

alter Login 登录名称 disable(禁用)/enable(启用)

刪除登陸帳號

drop Login 登录名称

建立使用者:

create user 用户名 for/from Login 登陆名称

修改使用者名稱

alter user 用户名 with name=&#39;新用户名&#39;

#刪除使用者名稱

drop user 用户名

授權限

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

oracle中:


建立使用者語法

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

修改密碼

alter user 用户名 identified by 新密码

授予權限

grant create session to 用户名

刪除用戶

drop user 用户名 cascade;

以上是sql和oracle的語法上有什麼差別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn