sql >> データベース >  >> RDS >> Oracle

Oracleデータ型

    Oracleテーブルを作成するときは、各列のデータ型を指定する必要があります。これは、特定のストレージ形式、制約、および有効な値の範囲に関連付けられています。テーブルを作成する前に、データ型の知識が必要です。この記事では、Oracleデータベースでの作業中にPLSQL、SQLで頻繁に使用する重要なOracleデータ型について説明します。

    Oracleは、次のカテゴリの組み込みデータ型を提供しています。
    文字データ型
    数値データ型
    DATEデータ型
    LOBデータ型
    RAWおよびLONGRAWデータ型
    ROWIDおよびUROWIDデータ型

    文字データ型

    -CHAR、NCHAR、VARCHAR2、NVARCHAR2。

    CHARデータ型は、最大長がバイト単位の固定長の英数字ストリングです。

    -CHARデータ型を作成する場合、データベースは受信データ用のスペースを保持し、データが最大サイズより短い場合は、右側にスペースが埋め込まれます

    たとえば、CHAR(5)データ型の変数/列を宣言すると、この変数または列に1文字または5文字のどちらを格納しているかに関係なく、常に5バイトが必要になります。この例では、この変数/列をCHAR(5)として宣言しているため、この列に最大5文字を格納できます。

    -VARCHAR2データ型は可変長の英数字ストリングであり、最大長はバイト単位です。最大4000バイトを保存できます。

    VARCHAR2は可変長のデータ型です。たとえば、VARCHAR 2(10)データ型の変数/列を宣言すると、この列に格納されている文字数と同じバイト数が必要になります。したがって、この変数/列では、1文字のみを格納する場合は、1バイトのみを使用し、10文字を格納する場合は、10バイトを使用します。この例では、この変数/列をVARCHAR2(10)として宣言しているため、この列に最大10文字を格納できます。使用されるスペースは列の値によって異なり、スペースの浪費はありません。

    また、ここでVARCHAR2(10)を指定すると、10は文字ではなく、バイト数であるということを強調しておきます。 ASCII文字を使用する場合、文字数とバイト数は同じですが、ASCII以外の文字を使用して式を変更します

    The length semantics of character datatypes can be measured in bytes or characters.
    
    Byte semantics treat strings as a sequence of bytes. This is the default for character datatypes.
    
    Character semantics treat strings as a sequence of characters. A character is technically a codepoint of the database character set.
    
    So VARCHAR (10 Byte) has length measured in byte. VARCHAR (10 CHAR)  has length measured in character.
    
    The default for VARCHAR is based on NLS_LENGTH_SEMANTICS parameter set in the database. By default this is set to Byte,so when we use VARCHAR(10) , it uses length measured in byte
    

    -VARCHARデータ型はVARCHAR2データ型と同義です。動作の変更を避けるために、常にVARCHAR2データ型を使用して可変長文字列を格納してください。

    -NCHARおよびNVARCHAR2は、Unicode文字データを格納するUnicodeデータ型です。 NCHARおよびNVARCHAR2データ型の文字セットは、AL16UTF16またはUTF8のいずれかのみであり、データベースの作成時に国別文字セットとして指定されます。 AL16UTF16とUTF8はどちらもUnicodeエンコーディングです。

    Example
    
    create table test  (
    First_name char(6),
    Last_name varchar2(10));
    

    数値データ型

    -NUMBERまたはNUMBER(p、s)

    -NUMBER(p、s)データ型は、数値を精度とスケールで格納します。

    –NUMBERデータ型は最大38桁の精度を格納します

    -数値データ型は、負および正の整数の固定小数点数と浮動小数点数を格納します

    -列がNUMBER(6、2)として定義されている場合、値の範囲は–9999.99から9999.99まで格納できます。したがって、合計桁数は、小数点以下6桁と4桁、小数点以下2桁になります。Oracleは浮動小数点数を丸めます。

    Example
    
    create table test  (
    First_name char(6),
    Last_name varchar2(10)
    age number;
    Salary number(10,2)
    ); 

    日付と時刻

    –DATE、TIMESTAMP(タイムゾーンまたはローカルタイムゾーン付き)、

    -DATEデータ型は、日付と時刻の情報を格納するために使用されます。

    -このデータ型には、データを操作、フォーマット、表示するための特定の機能がいくつかあります。

    -DATEデータ型は7バイトのストレージを保持し、世紀、年、月、日、時、分、秒に関する情報を持っています。
    -NLS_DATE_FORMATパラメータを変更して、データの表示を制御できます。 SYSDATE関数は現在の日付を返します

    –Oracleデータベースは、タイムゾーン対応のDATEデータ型も提供します

    タイムスタンプ付きのタイムスタンプ
    ローカルタイムゾーン付きのタイムスタンプ

     Example
    
    create table test  (
    First_name char(6),
    Last_name varchar2(10)
    age number,
    Salary number(10,2),
    start_date date );

    大きなオブジェクト

    -BLOB (バイナリラージオブジェクト) 、CLOB (文字ラージオブジェクト) 、NCLOB&BFILE

    -これらのデータ型の列には、テキスト、画像、ビデオ、空間データなどの非構造化データを格納できます。 -CLOBデータ型は、CHARデータベースの文字セットを使用して最大8テラバイトの文字データを格納できます。

    -BLOBデータ型は、データが単に「ビット」値のストリームである画像やビデオデータに関連付けられているオブジェクトなどの非構造化バイナリラージオブジェクトを格納するために使用されます。

    -BFILEデータ型の値は、サーバーのファイルシステム上のファイルへのファイルロケーターまたはポインターとして機能します。サポートされる最大ファイルサイズは8TB〜128TBです。

    長い

    2Gまでの可変長文字データ

    乱暴な

    テーブル内の行の一意のアドレスを表す64基数システム

    Oracleデータ型に関するこのコンテンツが気に入っていただければ幸いです

    関連記事

    Oracleインデックス
    Oracleインタビューの質問
    Oracleの日付関数
    OracleのINSERTステートメント
    oracleのステートメントの更新
    oracleのテーブルのすべての制約をチェックする方法
    https://docs.oracle.com/cd/B28359_01/server.111/b28318/datatype.htm#CNCPT1832


    1. SQL Server(T-SQL)でログインのデフォルト言語を取得する2つの方法

    2. OracleインデックスとOracleのインデックスの種類と例

    3. テーブルから最大値で始まるOracleシーケンスを作成するにはどうすればよいですか?

    4. SQL Serverで連結文字列にセパレータを追加する方法– CONCAT_WS()