Oracle のデータ型には次のものが含まれます: 1. 任意の文字列を表現できる文字列型 char および varchar2、2. 任意の数値を表現できる数値型、number(m,n)、3. 日付型、date、日付と時刻を保存します; 4. clob タイプ、シングルバイト文字列またはマルチバイト文字列データを保存します; 5. blob タイプ、非構造化バイナリ データを保存します; 6. rowid タイプ、データベース内のテーブルにレコードを保存します 物理アドレス; 7 . 他のデータ型。
#この記事の動作環境: Windows 10 システム、Oracle バージョン 19c、dell g3 コンピューター。
Oracle のデータ型には次のものがあります:
1. 文字列型: char および varchar2 (任意の文字列を表現できます)。
2. 数値タイプ:number(m,n)、任意の数値を表現できます。m は数値の全長、n は小数点以下の桁数です。n が 0 の場合、それは整数であることを意味します。
3. 日付タイプ: 日付、年 (yyyy)、月 (mm)、日 (dd)、時 (hh24)、分 (mi)、秒 (ss) を含む日付と時刻を保存します。 。
4. Clob タイプ。テキスト ファイルや XML ファイルなどのシングルバイト文字列またはマルチバイト文字列データを保存します。
5. BLOB タイプ。画像、オーディオ、ビデオ、オフィス文書などの非構造化バイナリ データを保存します。
6. データベースに記録されている物理アドレスをテーブルに格納するROWID型。
7. 他のデータ型。
1. 文字列型
は、C/C言語で使用されます。文字列は二重引用符で囲まれます。Oracleデータベースでは、文字列は一重引用符で囲まれます。
'www.freecplus.net'
'コーダーには方法がある'
'愚かな鳥'
1 、固定長string
固定長文字列は char で表されます。保存されたデータ コンテンツの長さが十分でない場合、Oracle は char(10 ) のように、固定長に達するまでデータ コンテンツの後にスペースを自動的に埋めます。常に 10 バイトの情報が含まれます。
char フィールドには、最大 2000 バイトのコンテンツを保存できます。
2. 可変長文字列
可変長文字列は varchar2 で表され、char 型とは異なり、Oracle はデータ内容の後に何も入力しません。
varchar2 フィールドには、最大 4000 バイトのコンテンツを保存できます。Oracle 12c バージョン以降では、32767 バイトのコンテンツを保存できます。
3. char と varchar2
char(10) の比較、'freecplus' に保存される場合、'freecplus' は最後にスペースが追加されてデータベースに保存されます。
varchar2(10)、「freecplus」を保存すると、「freecplus」はデータベースに保存され、何も追加されません。
実際のアプリケーションでは、Oracle が文字列の後にスペースを追加することを望まないため、char 型を放棄することはできますか?いいえ、通常は char 型を使用して、常に 18 ビットである ID 番号などの固定サイズのデータ コンテンツを格納するため、char(18) が非常に適しています。ID 番号を格納するのに varchar2(18) を使用できますか?もちろん可能ですが、char(18) の効率は varchar2(18) の効率よりもはるかに高くなります。
まとめると、性別、ID番号、携帯電話番号など、格納する文字列の長さが固定であることが確実、確実、保証されている場合はchar型を使用し、そうでない場合はvarchar2型を使用します。名前、学歴、住所、趣味など。 char は厳密ではありますが、効率的です。
4. 中国語の文字のストレージ
各漢字が占めるバイト数は、UTF-8 (1 ~ 3 バイト)、GB2312 (2 バイト)、 GBK (2 バイト)、GB18030 (1、2、4 バイト)。
2. 数値型
Oracle は数値を格納するために数値型を使用します。この型は最大 38 桁の精度を格納でき、従来の long 型よりもはるかに高い精度です。プログラミング言語の int 型と double 型。
number(m,n)、mは全長、nは小数点以下の桁精度を表し、格納データの小数点以下の桁精度がnを超える場合は四捨五入した値となります。
例:number(10,3)。10 は全長、3 は小数点以下の桁数 (123.456 など)。
123.4567 を入金した場合、実際の金額は 123.457 になります。
12345679.899 が格納されており、合計の長さが 10 を超える場合、Oracle はエラーを表示します。
整数を格納する場合は、number(m) を使用してください。m は、データに格納できる最大桁数を表します。
3. 日付型
Oracle は、日付と時刻を表すために日付型を使用します。これは、次の 7 つの属性を持つ 7 バイトの固定幅のデータ型です。世紀、世紀内の年、月、日、時、分、秒。
プログラミング言語では、日付と時刻は文字列を使用して表示および記述されます。Oracle では、日付型と文字列型の間で変換するための 2 つの関数、to_date および to_char が提供されています。
例:
insert into T_GIRL(name,birthday) values('西施',to_date('2000-01-01 01:12:35','yyyy-mm-dd hh24:mi:ss')); select name,to_char(birthday,'yyyy-mm-dd hh24:mi:ss') from T_GIRL where name='西施';
4. Clob および blob タイプ
clob タイプ、可変長文字列ラージ オブジェクト、最大 4GB、clobシングルバイト文字列またはマルチバイト文字列データを格納でき、clob はより大きな文字列とみなされます。データベースの文字セットが変換されると、clob タイプが影響を受けます。
Blob タイプ、可変長バイナリ ラージ オブジェクト、長さは最大 4GB。Blob は主に、画像、オーディオ、ビデオ、Office ドキュメントなどのフォーマットされた非構造化データを保存するために使用されます。データベース・キャラクタ・セットが変換される場合、BLOBタイプは影響を受けず、Oracle Databaseはどのようなコンテンツが格納されるかを気にしません。
5. Rowid タイプ
Oracle データベースの各テーブルのレコードの各行には、ストレージの物理的な場所、つまりテーブルの rowid 疑似列があります。 rowid を where 条件として使用すると、アクセス効率が最も高くなります。
ROWID はアクセス効率が最も高いですが、実際のアプリケーションでは注意が必要で、次の 2 つの問題に注意する必要があります:
1) ROWID はテーブル レコードの物理的な場所を保存します。および移行により、レコードの物理的な場所が変更されます。
2) rowid は Oracle データベース専用のデータ型であり、他のデータベースとは互換性がありません。
6. その他のデータ型
上記のコンテンツでは、アプリケーション シナリオの 99% 以上を満たすことができる、Oracle で最も一般的に使用されるデータ型が紹介されています。
Oracle は 22 の異なる SQL データ型を提供しています。他のデータ型は実用的ではないかもしれませんが、詳しく説明しなくても理解できるように、すべてをリストします。 20 年間、私は他のデータ型を使用したことがありません。
char: 固定長の文字列。最大長に達するまでスペースが埋め込まれます。 null 以外の char(10) には 10 バイトの情報が含まれます。 char フィールドには、最大 2000 バイトの情報を保存できます。
nchar: Unicode 形式のデータを含む固定長文字列。 nchar フィールドには、最大 2000 バイトの情報を保存できます。
varchar2: varchar の同義語です。これは可変長文字列であり、char 型とは異なり、フィールドや変数に最大長までスペースが埋め込まれません。 varchar(10) には 0 ~ 10 バイトの情報が含まれており、最大 4000 バイトの情報を保存できます。 12c 以降では、32767 バイトの情報を保存できるようになりました。
nvarchar2: Unicode 形式のデータを含む可変長文字列。最大 4000 バイトの情報を保存できます。 12c 以降では、32767 バイトの情報を保存できるようになりました。
raw: 可変長のバイナリ データ型。このデータ型に格納されたデータは文字セット変換されません。
number: 最大 38 桁の精度で数値を保存できます。このタイプのデータは、長さが 0 ~ 22 バイトの可変長形式で保存されます。
binary_float: 32 ビットの単精度浮動小数点数。少なくとも 6 桁の精度をサポートでき、ディスク上の 5 バイトの記憶領域を占有します。
binary_double: 64 ビットの倍精度浮動小数点数。少なくとも 15 桁の精度をサポートでき、ディスク上の 9 バイトの記憶領域を占有します。
long: この型は、最大 2GB の文字データを保存できます。
long raw: long raw 型は、最大 2GB のバイナリ情報を保存できます。
date: これは、 7 バイト単位の固定幅の日付/時刻データ型。世紀、世紀の年、月、日、時、分、秒の 7 つの属性が含まれます。
タイムスタンプ: これは、小数秒を含む 7 バイトまたは 11 バイトの固定幅の日付/時刻データ型です。
タイム ゾーン付きタイムスタンプ: これは、タイム ゾーン サポートを提供する 13 バイトのタイムスタンプです。
ローカル タイム ゾーンのタイムスタンプ: これは、7 バイトまたは 11 バイトの固定幅の日付/時刻データ型です。データの挿入および読み取り時にタイム ゾーンの変換が行われます。
interval year to month: これは、期間を格納するために使用される 5 バイトの固定幅のデータ型です。
interval day to Second: これは、期間を格納するために使用される 11 バイトの固定幅のデータ型です。期間を日/時間/分/秒として保存します。オプションで 9 秒の小数点以下も使用できます。
blob: このタイプは、最大 4 GB のデータを保存できます。
clob: このタイプは、最大 4GB のデータを保存できます。このタイプは、文字セットが変換されるときに影響を受けます。
nclob: このタイプは、最大 4GB のデータを保存できます。このタイプは、文字セットが変換されるときに影響を受けます。
bfile: このデータ型は、Oracle ディレクトリ オブジェクトとファイル名をデータベース列に格納でき、それを通じてファイルを読み取ることができます。
rowid: これは実際にはデータベース テーブル内の行のアドレスで、長さは 10 バイトです。
urowid: これは一般的な ROWID であり、固定の ROWID テーブルはありません。
以上がOracle のデータ型は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。