ホームページ > データベース > mysql チュートリアル > SQLとOracleの構文の違いは何ですか?

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

清浅
リリース: 2020-09-14 15:21:15
オリジナル
11941 人が閲覧しました

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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート