ホームページ  >  記事  >  データベース  >  SQLとOracleの構文の違いは何ですか?

SQLとOracleの構文の違いは何ですか?

清浅
清浅オリジナル
2019-05-10 11:16:1411899ブラウズ

SQL と Oracle の構文の違いは次のとおりです: 1. データ型が異なります; 2. 現在のシステム時刻を取得する関数が異なります; 3. ユーザーを作成する方法が異なります; 4. 変数と文字列を接続する方法が異なります; 5. 変数と文字列を接続する方法が異なります。 5. 条件文「if...else...」の構文が異なる等

SQLとOracleの構文の違いは何ですか?

SQL と Oracle の構文の違いには、データ型の違い、現在のシステム時刻を取得するための関数の違い、Oracle にはデフォルトの制約がないこと、接続方法などが含まれます。変数と文字列が異なる、case ステートメントが異なるなど。

#データ型が異なる
#SQL サーバーのデータ型: int、smallint、char、 varchar、nchar、nvarchar、ntext、datetime、smalldatetime、money、decima、float、bit

Oracle データ型:number(p,s)、char、varchar2、Date、LOB

現在のシステムを取得します。 時間の関数は異なります。


sql サーバー: getdate()

oracle: sysdate

例: 関数set date format

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

Oracle にはデフォルト制約はありません

SQL サーバーにデフォルト制約を追加します:

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

Oracle にデフォルト値を追加します:

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

変数と文字列の接続方法は異なります

##SQL サーバー媒体接続: " " 接続を使用します。例:

print 'aaaa'+@name;

oracle メディア接続: "|| " 接続を使用します。例:

dbms_output.put_line('aaa'||name);//name为变量

oracle には ID 自動拡張列がありませんが、シーケンスを使用して拡張を実現します

SQL Server 自動拡張: ID (1,1 はテーブルの主キー列に直接使用できます)成長を実現する

oracle 自動成長を実現するシーケンスを使用します:

create sequence se_id 
start with 1
increment by 1

自動成長を実現するシーケンスを使用します: se_id。 nextval

条件文の構文 if...else... 別の

sql サーバー:

  if 条件
            begin
              …………
            end
            else
            begin
              …………
            end

oracle:

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

case 文の構文が異なります

sql サーバー内:

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 サーバー

ログイン アカウントの作成: 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。