2012年8月13日月曜日

SQL SERVERとORACLEの違い




SQL SERVERとORACLEのオブジェクトの違い。

分類
Microsoft SQL Server
Oracle
カラム数
1024
254
行のサイズ
8060バイトとは、テキストまたはイメージ列を表すために16バイトの
無制限(1行に1のlongまたはlong raw可能)
最大行数
無制限
無制限
Blob型のストレージ·
行と保存された16バイトのポインタ。他のデータページに格納されたデータ
各テーブルに一つのlongまたはlong raw、行の終わりにあること、行のブロックに格納されたデータ
クラスタ化テーブルインデックス
各テーブルに1
各テーブルに1(インデックスで構成され、テーブル)
クラスタ化テーブルインデックス
各テーブルに249
無制限
一つのインデックスで最大カラム数
16
16
インデックスのカラム値​​の最大長
900バイト
½ブロック
テーブルの命名規則
[[[Server] database] owner。] table_name
[schema。] table_name

SQL SERVERとORACLEのオブジェクト識別子を扱う方法
Oracle
Microsoft SQL Server
1-30文字の長さ。
データベース名は最大8文字
データベースリンク名:最大128文字

1〜128のUnicode文字の長さ
一時テーブル名:最大116文字

識別子の名前はアルファベットで始まり、英数字または_、$、#文字を含める必要があります。

識別子名は、英数字または_で始まり、実際に任意の文字を使用することができます。

識別子がスペースで始まるか、_、@、#、or $以外の文字が含まれている場合は、識別子の名前のあたりに[](区切り文字)を使用する必要があります。

オブジェクトが@で始まる場合は、
これはローカル変数です。
#ローカル一時オブジェクトです。
##グローバルな一時オブジェクトです。

表スペースの名前は一意でなければあります。

データベース名は一意でなければあります。

ユーザーアカウント(スキーマ)で識別子の名前は一意でなければあります。

データベースのユーザーアカウントでは、識別子の名前は一意でなければあります。

テーブルとビューからのカラム名は一意でなければあります。

テーブルとビューからのカラム名は一意でなければあります。

ユーザーのスキーマでは、インデックスの名前は一意でなければあります。

データベースのテーブル名でインデックス名は一意でなければあります。


テーブルとインデックスの格納パラメータ
Oracle
Microsoft SQL Server
CREATE TABLE DEPT_ADMIN.DEPT(
DEPT VARCHAR2(4)NOT NULL、
DNAME VARCHAR2(30)NOT NULL、
CONSTRAINT DEPT_DEPT_PK
                           PRIMARY KEY(DEPT)
USING INDEX TABLESPACE USER_DATA
PCTFREE 0 STORAG​​E(INITIAL 10K NEXT 10K
MINEXTENTS 1 MAXEXTENTS UNLIMITED)、
CONSTRAINT DEPT_DNAME_UNIQUE
                           UNIQUE(DNAME)
USING INDEX TABLESPACE USER_DATA
PCTFREE 0 STORAG​​E(INITIAL 10K NEXT 10K
MINEXTENTS 1 MAXEXTENTS UNLIMITED)

PCTFREE 10 PCTUSED 40
TABLESPACE USER_DATA
STORAG​​E(INITIAL 10K NEXT 10K
MINEXTENTS 1 MAXEXTENTS UNLIMITED
FREELISTS 1)
CREATE TABLE USER_DB.DEPT_ADMIN.DEPT(
DEPT VARCHAR(4)NOT NULL、
DNAME VARCHAR(30)NOT NULL、
CONSTRAINT DEPT_DEPT_PK
             PRIMARY KEY CLUSTERED(DEPT)、
CONSTRAINT DEPT_DNAME_UNIQUE
             UNIQUE NONCLUSTERED(DNAME)



0 件のコメント:

コメントを投稿