Seele

Seele

ビューとインデックス

ビューの作成と表示#

ビュー(view)は、データベースの操作を独立したデータベース操作として抽象化する特別なテーブルです。実際にはデータベースには存在しません。
データベースにはビューの定義のみが保存されており、ビューの実際のデータはデータベースをクエリすることで取得されます。したがって、データベースの内容が変わるとビューのデータにも影響します。

構文:

CREATE VIEW [view_name] AS [SELECT_statement]

ヒント:

  1. ビューの名前はデータベース内の他のテーブル名やビューと重複してはいけません。また、ビューの名前は数字で始めることはできません。
  2. SELECT_statement は SELECT 文です。複数のテーブルのデータをクエリできます。この文には以下の制限があります。
    1. ユーザーは CREATE VIEW 権限と、関連するテーブルおよびビューの SELECT 権限を持っている必要があります。
    2. SELECT_statement はシステムまたはユーザー変数を参照できません。
    3. SELECT_statement は FROM 句内のサブクエリを含めることはできません。
    4. SELECT_statement はプリペアードステートメントのパラメータを参照できません。

    プリペアード:SQL 文のテンプレートを作成し、データベースに送信します。予約された値はパラメータ "?" でマークされます。例えば:

    INSERT INTO MyGuests (firstname, lastname, email) VALUES(?, ?, ?)
    
  3. ビューを作成するには参照するテーブルまたはビューが存在する必要がありますが、作成後は存在しなくても構いません(ただし、データに問題が生じる可能性があります)。CHECK TABLEを使用してテーブルが存在するか確認できます。
  4. ビューの定義では ORDER BY 句を使用できます。ただし、ビューで ORDER BY 句を使用した場合、ビューをクエリする際にデータも ORDER BY 句でソートされます。
  5. ビューの定義では一時テーブルを参照できず、一時テーブルのビューを作成することはできません。
  6. WITH CHECK OPTIONキーワードを使用すると、ビュー内のデータが有効かどうかをチェックできます。

#

単一テーブルから作成

CREATE VIEW MyView AS
SELECT * FROM MyTable

複数テーブルから作成

CREATE VIEW MyView AS
SELECT * FROM MyTable1, MyTable2

複数テーブルから作成し、列を指定

CREATE VIEW MyView AS
SELECT MyTable1.id, MyTable1.name, MyTable2.age
FROM MyTable1, MyTable2

複数テーブルから作成し、列を指定し、列の順序を指定

CREATE VIEW MyView AS
SELECT MyTable1.id, MyTable1.name, MyTable2.age
FROM MyTable1, MyTable2
ORDER BY MyTable1.id, MyTable2.age

ビュー内の列名を指定し、対応関係を示す

CREATE VIEW MyView 
(id,name,number)    AS
SELECT MyTable1.id, MyTable1.name, MyTable2.age
FROM MyTable1, MyTable2

ビューのクエリ#

ビューはクエリに使用できますが、データの更新には推奨されません

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。