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

SQLiteでテーブルを作成する

    SQLiteでテーブルを作成するには、CREATE TABLEを使用します ステートメント。

    このステートメントは、テーブル名、列名とその定義、およびその他のオプションを受け入れます。

    これが基本的な例です。

    CREATE TABLE Products(
      ProductId INTEGER PRIMARY KEY AUTOINCREMENT, 
      ProductName TEXT NOT NULL,
      Price NUMERIC
    );

    したがって、この場合、Products はテーブルの名前であり、3つの列が含まれています。 ProductIdProductName 、およびPrice

    この例では、各列のデータ型といくつかの制約を追加しましたが、これらはすべてオプションです。

    スキーマを指定する

    テーブルの名前には、(オプションで)スキーマ名を前に付けることができます。これを行うとき、スキーマ名はmainのいずれかである必要があります 、temp 、または接続されているデータベースの名前。

    代わりにこれを行うことができます:

    CREATE TABLE Store.Products(
      ProductId, 
      ProductName,
      Price
    );

    この場合、Store テーブルを作成する接続済みデータベースの名前です。

    列名の後には、データ型と任意の制約を続けることができます。

    データ型はオプションです

    はい、あなたはその権利を読んでいます–データ型は実際にはオプションです。

    SQLiteは動的型付けを使用するため、値のデータ型はコンテナ(列)ではなく、値自体に関連付けられます。これは、列を作成するときにデータ型を指定する必要がある他のほとんどのSQLデータベースシステムとは対照的です。

    代わりにこれを行うことができます:

    CREATE TABLE Products(
      ProductId, 
      ProductName,
      Price
    );

    制約とその他のオプション

    各列に適用する制約やその他のオプションを指定するオプションがあります。これらには次のものが含まれます:

    • DEFAULT 句。これは、テーブルの各列のデフォルト値または式を指定します。
    • COLLATE 列のデフォルトの照合シーケンスとして使用する照合シーケンスの名前を指定する句。デフォルト値はBINARYです。
    • PRIMARY KEY 句。オプションで、列が主キーであることを指定できます。 SQLiteでは、単一列と複合(複数列)主キーの両方がサポートされています。
    • SQLiteは、UNIQUE、NOT NULL、CHECK、およびFOREIGNKEY制約もサポートしています。
    • 生成された列制約(計算列とも呼ばれます)。これらは、値が同じ行の他の列の関数である列です。
    • テーブルがWITHOUT ROWIDであるかどうか テーブル。これは、SQLiteがデフォルトで使用する特別な列である「rowid」列を省略するパフォーマンス最適化手法です。この手法の詳細については、SQLiteのドキュメントを参照してください。

    一時テーブル

    TEMPのいずれかを使用して、テーブルが一時テーブルであることを指定できます。 またはTEMPORARY キーワード。

    これらのキーワードのいずれかを使用する場合は、CREATEの間に挿入する必要があります およびTABLE

    次に例を示します:

    CREATE TEMP TABLE Products(
      ProductId, 
      ProductName,
      Price
    );

    tempを追加することもできます 必要に応じてスキーマ。

    SQLiteで一時テーブルを作成するその他の例については、一時テーブルを作成する方法を参照してください。

    別のテーブルからテーブルを作成する

    CREATE TABLE ... AS SELECTを使用することもできます 別のテーブルに基づいて新しいテーブルを作成するステートメント。これを行うと、新しいテーブルにSELECTからのデータが入力されます ステートメント(別の1つまたは複数のテーブルからデータを選択します)。

    基本的な例は次のとおりです。

    CREATE TABLE Store.Products2 AS 
    SELECT * FROM Store.Products;

    この例では、Products2という新しいテーブルを作成します Productsからのすべてのデータを入力します テーブル。

    すべての列名は元のテーブルと同じです。

    この方法で作成されたテーブルには主キーがなく、いかなる種類の制約もないことに注意することが重要です。また、各列のデフォルト値はNULLです。 。また、新しいテーブルの各列のデフォルトの照合シーケンスはBINARYです。


    1. Oracleで数値を通貨としてフォーマットする方法

    2. DAYOFMONTH()の例– MySQL

    3. ボリュームを使用してドッキングされたpostgresデータベースにデータを永続化する方法

    4. 10進数のNLS_NUMERIC_CHARACTERS設定