データベースビューの操作

5981 ワード

JYデータベースビューの操作
USE JY
GO
1.ビューの作成
       :
CREAT VIEW view_name[column_list]
[WITH ENCRYPTION]
AS select_statement
[WITH CHECK OPTION]
–コメント:
–1.view_name:ビューの名前
–2.column_リスト:ビューで使用するリスト名。構成ビューの列名またはすべてを省略またはすべて指定して、一部の列名を指定することはできません。省略すればSELECTと一致します。
–2.1ビューのリスト名を指定しなければならない場合:
–2.1.1ある対象列は基本テーブルの列ではなく、基本テーブルで計算されたもので、集計関数と演算式を含めています。
–2.1.2複数テーブル接続時に同じ名前の列を選択しました。
–2.1.3図中の列にエイリアスを指定する必要があります。
–3.WITH ENCRYPTION:ビューの定義を暗号化する
–4.ASサブフレーズ:ビューの操作を指定します。
–5 select_statement:ビューを定義するSELECT文はAS後にSELECT文が一つしかありません。ORDER BY、COMPUTE BY、INTO、臨時表は使用できません。
–6.WITH CHECK OPTTION:ビューのデータの修正を強制的に要求する場合は、ビュー定義のクエリー設定条件に適合していなければなりません。
  • 閲覧回数が30以上の図書情報
  • CREATE VIEW v_book
    AS
        SELECT *
        FROM book
        WHERE interview_times > 30
    GO
  • 図書を借りた人の名前と本を借りる人の名前を調べてください。
    CREATE VIEW v_record(reader_name, book_name)
    AS
        SELECT reader.reader_name, book.book_name
        FROM reader, book, record
        WHERE reader.reader_id = record.reader_id AND book.book_id = record.book_id
    GO
    
    --             
    /*
    CREATE VIEW v_record
    AS
        SELECT reader.reader_name, book.book_name
        FROM record JOIN reader
        ON reader.reader_id = record.reader_id
        JOIN book
        ON book.book_id = record.book_id
    GO
    */
  • アクセス数が30より大きい図書名と閲覧回数を調べ、図中に別名
  • を列に指定します。
  • は、ビューv_に基づく。ブック作成ビュー
  • CREATE VIEW v_newbook(    ,     )
    AS
        SELECT book_name, interview_times
        FROM v_book
    GO
    
    --          SELECT     
    /*
    CREATE VIEW v_newbook
    AS
        SELECT book_name AS '    ', interview_times AS '    '
        FROM v_book
    GO
    */
  • WITH CHECK OPTTIONオプション付きビュー
  • を作成します。
  • は、ビューをUPDATE、INSERT、DELETEとすると、ビュー定義におけるクエリーに対する条件式
  • を満たすことを保証する。
    CREATE VIEW v_book2
    AS
        SELECT *
        FROM book
        WHERE interview_times > 30
    WITH CHECK OPTION
    GO
    2.管理ビュー
  • 表示v_を変更する。レコードは、読者の名前を確認したり、図の名前を借りたり、時間を借りることができます。そして、「読者の名前」「図書の名前を借りる」「借りる時間」という名前を表示します。
    ALTER VIEW v_record
    AS
        SELECT reader.reader_name AS '    ', book.book_name '    ',
                record.borrow_date AS '    '
        FROM record JOIN reader
        ON record.reader_id = reader.reader_id
        JOIN book
        ON book.book_id = record.book_id
    GO
  • ビューの削除と名前変更ビュー
  • DROP VIEW view_name
    sp_rename view_name, new_view_name
    3.ビューを使う
    –コメント
    –1.2つ以上の基本表を同時に更新することはできません。
    –2.ビューで計算された列を更新することはできません。
  • は、ビューv_を通過する。readerは、基本テーブルreaderにデータを挿入する
  • SELECT *
    FROM reader
    INSERT INTO v_reader
        VALUES('r0009','  ',' ','     ')
    SELECT * FROM reader
    GO
  • クエリービュー
  • SELECT *
    FROM v_book2
    GO