目次
一般的なデータベース オブジェクト
ビューの概念
ビューの作成
ビューを表示
ビューの更新データ
ホームページ データベース mysql チュートリアル MySQLビューの概念と操作機能は何ですか?

MySQLビューの概念と操作機能は何ですか?

May 27, 2023 pm 10:17 PM
mysql

一般的なデータベース オブジェクト

オブジェクト 説明
Table( TABLE ) テーブルはデータを格納するための論理単位であり、行と列の形式で存在します。列はフィールド、行はレコードです
データ ディクショナリ はシステム テーブルであり、データベース関連の情報を格納するテーブルです。システム テーブルのデータは、通常、データベース システムによって維持されます。プログラマは、通常、これを変更すべきではありません。プログラマは、実行のための
制約 (CONSTRAINT) ルールを表示することのみができます。データ検証。データの整合性を確保するためのルールを使用します。
ビュー (VIEW) 1 つ以上のデータ テーブル内のデータの論理表示。ビューにはデータは保存されません。
インデックス (INDEX) はクエリのパフォーマンスを向上させるために使用されます。書籍のディレクトリと同等です。
ストアド プロシージャ(PROCEDURE) 完全なビジネス プロセスを完了するために使用され、戻り値はありませんが、送信パラメータを通じて複数の値を呼び出し環境に渡すことができます
ストレージ関数 (FUNCTION) 特定の計算を完了するために使用され、戻り値が返されます。
トリガー (TRIGGER) はイベント リスナーに相当します。 、データベース内で特定のイベントが発生したとき その後、トリガーがトリガーされ、対応する処理が完了します
#

ビューの概念

ビューは一種の仮想テーブルであり、それ自体はデータを持たず、メモリ領域をほとんど占有せず、SQL における重要な概念です。

ビューは既存のテーブルに基づいて構築され、ビューが構築されるこれらのテーブルはベース テーブルと呼ばれます。

ビューの作成と削除はビュー自体にのみ影響し、対応するベース テーブルには影響しません。追加、削除、変更 (DML) 操作がビューで実行されると、それに応じてビュー内のデータが更新され、逆も同様で、データ テーブル内のデータも変更されます。

ビューがデータ内容を提供するステートメントは SELECT ステートメントです。ビューは保存された SELECT ステートメントとして理解できます

データベースでは、ビューはデータを保存しません。実際にはデータテーブルに保存されます。データ テーブル内のデータを追加、削除、または変更すると、ビュー内のデータもそれに応じて変更されます。逆に。

View は、ユーザーにベース テーブル データを提供する別の形式の式です。通常の状況では、小規模プロジェクトのデータベースではビューを使用する必要はありませんが、大規模プロジェクトやデータ テーブルが比較的複雑な場合、ビューの価値が顕著になります。頻繁にクエリされる結果セットを仮想テーブルに配置するのに役立ちます。使用効率を向上させます。非常に理解しやすく、使いやすいです。

ビューの作成

クエリ ステートメント内のフィールドのエイリアスは、ビューのエイリアスとして表示されます

CREATE VIEW vu_emps
AS 
SELECT employee_id,last_name,salary
FROM emps;
ログイン後にコピー
CREATE VIEW vu_emps2(emp_id,name,monthly_sal)
AS 
SELECT employee_id,last_name,salary
FROM emps;
ログイン後にコピー

複数のテーブルのビューの作成

CREATE VIEW vu_emp_dept
AS
SELECT employee_id,e.department_id,department_name
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
SELECT * FROM vu_emp_dept;
ログイン後にコピー

ビューを使用してデータを操作する 書式設定

CREATE VIEW vu_emp_dept1
AS
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
ログイン後にコピー

ビューに基づいてビューを作成する

CREATE VIEW vu_emp4
AS 
SELECT department_id,department_name FROM vu_emp_dept;
SELECT * FROM vu_emp4;
ログイン後にコピー

ビューを表示

データベースのテーブル オブジェクト、ビュー オブジェクトを表示する

SHOW TABLES;
ログイン後にコピー

データベース構造の表示

DESC vu_emp4;
ログイン後にコピー

データの属性情報の表示

mysql> SHOW TABLE STATUS LIKE 'vu_emp4'\G;
*************************** 1. row ***************************
           Name: vu_emp4
         Engine: NULL
        Version: NULL
     Row_format: NULL
           Rows: NULL
 Avg_row_length: NULL
    Data_length: NULL
Max_data_length: NULL
   Index_length: NULL
      Data_free: NULL
 Auto_increment: NULL
    Create_time: NULL
    Update_time: NULL
     Check_time: NULL
      Collation: NULL
       Checksum: NULL
 Create_options: NULL
        Comment: VIEW
1 row in set (0.00 sec)
ERROR: 
No query specified
ログイン後にコピー

ビューの詳細定義情報の表示

mysql> SHOW CREATE VIEW vu_emp4\G;
*************************** 1. row ***************************
                View: vu_emp4
         Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `vu_emp4` AS select `vu_emp_dept`.`department_id` AS `department_id`,`vu_emp_dept`.`department_name` AS `department_name` from `vu_emp_dept`
character_set_client: utf8
collation_connection: utf8_general_ci
1 row in set (0.00 sec)
ERROR: 
No query specified
ログイン後にコピー

ビューの更新データ

ビュー内のデータを更新すると、ベース テーブル内のデータが変更されます。 変更

テーブル内のデータを更新すると、ビュー内のデータも変更されます

ビューを更新可能にするには、ビュー内の各行がベース テーブル内の行に対応する必要があります。また、この 2 つの間には 1 対 1 の関係があります。さらに、ビュー定義で次の条件が発生した場合、ビューは更新操作をサポートしません。

  • ビューの定義時に "ALGORITHM = TEMPTABLE" が指定されている場合、ビューは更新操作をサポートしません。 INSERT および DELETE 操作をサポートします。

  • ビューには、空ではないものとして定義され、デフォルト値が指定されていないベース テーブル内のすべての列が含まれているわけではありません。また、ビューは、 INSERT 操作;

  • ビューを定義する SELECT ステートメントで JOIN 結合クエリが使用されている場合、ビューは INSERT および DELETE 操作をサポートしません;

  • 数式は、ビューの数式またはサブクエリを定義する SELECT ステートメントの後のフィールド リストで使用されており、ビューは INSERT をサポートせず、数式またはサブクエリを使用する UPDATE フィールド値もサポートしません。

  • ## は、ビューを定義する SELECT ステートメントの後のフィールド リストにあります DISTINCT、集計関数、GROUP BY、HAVING、UNION などを使用すると、ビューは INSERT、UPDATE、DELETE をサポートしません;
  • ビューを定義する SELECT ステートメントにはサブクエリが含まれており、サブクエリ FROM の後のテーブルがクエリで参照されており、ビューは INSERT、UPDATE、および DELETE をサポートしません。
  • ビュー定義は、更新不可能なビュー、つまり定数ビューに基づいています。
  • ビューはデータを更新できますが、一般に、仮想テーブルとしてのビューは主にクエリを容易にするために使用され、ビュー データを更新することはお勧めできません。ビューデータの変更は、実際のデータテーブルのデータを操作することで完了します。
ビューを変更する

方法 1: CREATE OR REPLACE VIEW 句を使用してビューを変更する

CREATE OR REPLACE VIEW empvu80
(id_number, name, sal, department_id)
AS
SELECT employee_id, first_name || ' ' || last_name, salary, department_id
FROM employees
WHERE department_id = 80;
ログイン後にコピー
CREATE OR REPLACE VIEW vu_emp4
AS 
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
ログイン後にコピー

注: CREATE VIEW 句の各列の別名は次のようにする必要があります。サブクエリの各列と同じに対応します。

方法 2: ALTER VIEW

ビューを変更する構文は次のとおりです:

ALTER VIEW ビュー名

AS
クエリ ステートメント


ALTER VIEW vu_emp4
AS 
SELECT CONCAT(e.last_name,'(',d.department_name,')') emp_info
FROM emps e JOIN depts d
ON e.department_id = d.department_id;
ログイン後にコピー

View の削除

DROP VIEW vu_emp4;
DROP VIEW IF EXISTS vu_emp1;
ログイン後にコピー
View のメリットとデメリット

メリット:

簡単な操作
  • #データの冗長性の削減

  • #データ セキュリティ

  • #柔軟で変化するニーズに適応
  • ## 複雑なクエリ ロジックを分解できる

  • 欠点:

  • 高いメンテナンス コスト

可読性良くない#########

以上がMySQLビューの概念と操作機能は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

PHP を使用して MySQL テーブルを作成するにはどうすればよいですか? PHP を使用して MySQL テーブルを作成するにはどうすればよいですか? Jun 04, 2024 pm 01:57 PM

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracleデータベースとmysqlの違い Oracleデータベースとmysqlの違い May 10, 2024 am 01:54 AM

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。

See all articles