基本的な構文 CREATE VIEW ステートメントを使用してビューを作成できます。 構文の形式は次のとおりです。 CREATE VIEW <ビュー名> AS <SELECT ステートメント> 構文については以下に説明します。
ビューを作成する際の SELECT ステートメントの指定には、次の制限が適用されます。
ビュー定義で参照されるテーブルまたはビューが存在している必要があります。ただし、ビューを作成した後で、定義が参照するテーブルまたはビューを削除することができます。 CHECK TABLE ステートメントを使用して、ビュー定義にこのような問題がないか確認できます。 ビュー定義では ORDER BY ステートメントが許可されていますが、特定のビューから選択し、そのビューが独自の ORDER BY ステートメントを使用する場合、ビュー定義内の ORDER BY は無視されます。 TEMPORARY テーブル (一時テーブル) はビュー定義で参照できず、TEMPORARY ビューを作成することもできません。 WITH CHECK OPTION は、ビューを変更するときに、挿入されたデータが WHERE で設定された条件を満たしているかどうかを確認することを意味します。 単一のテーブルに基づいてビューを作成する MySQL は単一のテーブルにビューを作成できます。 以下に示すように、test_db データベースの tb_students_info テーブルのデータを表示します。 mysql> tb_students_info から * を選択; +----+---------+---------+-------+--------+----------+-----------+ | ID | 名前 | 部門 ID | 年齢 | 性別 | 身長 | ログイン日 | +----+---------+---------+-------+--------+----------+-----------+ | 1 | ダニー | 1 | 25 | F | 160 | 2015-09-10 | | 2 | グリーン | 3 | 23 | F | 158 | 2016-10-22 | | 3 | ヘンリー | 2 | 23 | 男 | 185 | 2015-05-31 | | 4 | ジェーン | 1 | 22 | F | 162 | 2016-12-20 | | 5 | ジム | 1 | 24 | 男性 | 175 | 2016-01-15 | | 6 | ジョン | 2 | 21 | 男性 | 172 | 2015-11-11 | | 7 | リリー | 6 | 22 | F | 165 | 2016-02-26 | | 8 | スーザン | 4 | 23 | 女性 | 170 | 2015-10-01 | | 9 | トーマス | 3 | 22 | 男 | 178 | 2016-06-07 | | 10 | トム | 4 | 23 | 男 | 165 | 2016-08-05 | +----+---------+---------+-------+--------+----------+-----------+ セット内の行数は 10 です (0.00 秒) 【例1】 tb_students_info テーブルに view_students_info というビューを作成します。入力した SQL 文と実行結果は次のとおりです。 mysql> ビュー view_students_info を作成します -> AS SELECT * FROM tb_students_info; クエリは正常、影響を受けた行は 0 行 (0.00 秒) mysql> view_students_info から * を選択します。 +----+---------+---------+-------+--------+----------+-----------+ | ID | 名前 | 部門 ID | 年齢 | 性別 | 身長 | ログイン日 | +----+---------+---------+-------+--------+----------+-----------+ | 1 | ダニー | 1 | 25 | F | 160 | 2015-09-10 | | 2 | グリーン | 3 | 23 | F | 158 | 2016-10-22 | | 3 | ヘンリー | 2 | 23 | 男 | 185 | 2015-05-31 | | 4 | ジェーン | 1 | 22 | F | 162 | 2016-12-20 | | 5 | ジム | 1 | 24 | 男性 | 175 | 2016-01-15 | | 6 | ジョン | 2 | 21 | 男性 | 172 | 2015-11-11 | | 7 | リリー | 6 | 22 | F | 165 | 2016-02-26 | | 8 | スーザン | 4 | 23 | 女性 | 170 | 2015-10-01 | | 9 | トーマス | 3 | 22 | 男 | 178 | 2016-06-07 | | 10 | トム | 4 | 23 | 男 | 165 | 2016-08-05 | +----+---------+---------+-------+--------+----------+-----------+ 10 行セット (0.04 秒) デフォルトでは、作成されたビューのフィールドはベーステーブルのフィールドと同じです。ビューフィールドの名前を指定してビューを作成することもできます。 【例2】 tb_students_info テーブルに v_students_info というビューを作成します。入力した SQL 文と実行結果は次のとおりです。 mysql> ビュー v_students_info を作成します -> (s_id、s_name、d_id、s_age、s_sex、s_height、s_date) -> AS SELECT id、名前、部門ID、年齢、性別、身長、ログイン日 -> tb_students_info から; クエリは正常、影響を受けた行は 0 行 (0.06 秒) mysql> v_students_info から * を選択します。 +------+--------+-------+-------+---------+----------+-----------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_date | +------+--------+-------+-------+---------+----------+-----------+ | 1 | ダニー | 1 | 24 | F | 160 | 2015-09-10 | | 2 | グリーン | 3 | 23 | F | 158 | 2016-10-22 | | 3 | ヘンリー | 2 | 23 | 男 | 185 | 2015-05-31 | | 4 | ジェーン | 1 | 22 | F | 162 | 2016-12-20 | | 5 | ジム | 1 | 24 | 男性 | 175 | 2016-01-15 | | 6 | ジョン | 2 | 21 | 男性 | 172 | 2015-11-11 | | 7 | リリー | 6 | 22 | F | 165 | 2016-02-26 | | 8 | スーザン | 4 | 23 | 女性 | 170 | 2015-10-01 | | 9 | トーマス | 3 | 22 | 男 | 178 | 2016-06-07 | | 10 | トム | 4 | 23 | 男 | 165 | 2016-08-05 | +------+--------+-------+-------+---------+----------+-----------+ セット内の行数は 10 行 (0.01 秒) view_students_info ビューと v_students_info ビューのフィールド名は異なりますが、データは同じであることがわかります。したがって、ビューを使用する場合、ユーザーは実際のテーブルのデータにアクセスするだけでなく、基本テーブルの構造を理解する必要もなく、データベースのセキュリティが確保されます。 複数のテーブルに基づくビューの作成 MySQL では、CREATE VIEW ステートメントを使用して 2 つ以上のテーブルにビューを作成することもできます。 【例3】 テーブル tb_student_info と tb_departments にビュー v_students_info を作成します。入力した SQL 文と実行結果は次のとおりです。 mysql> ビュー v_students_info を作成します -> (s_id、s_name、d_id、s_age、s_sex、s_height、s_date) -> AS SELECT id、名前、部門ID、年齢、性別、身長、ログイン日 -> tb_students_info から; クエリは正常、影響を受けた行は 0 行 (0.06 秒) mysql> v_students_info から * を選択します。 +------+--------+-------+-------+---------+----------+-----------+ | s_id | s_name | d_id | s_age | s_sex | s_height | s_date | +------+--------+-------+-------+---------+----------+-----------+ | 1 | ダニー | 1 | 24 | F | 160 | 2015-09-10 | | 2 | グリーン | 3 | 23 | F | 158 | 2016-10-22 | | 3 | ヘンリー | 2 | 23 | 男 | 185 | 2015-05-31 | | 4 | ジェーン | 1 | 22 | F | 162 | 2016-12-20 | | 5 | ジム | 1 | 24 | 男性 | 175 | 2016-01-15 | | 6 | ジョン | 2 | 21 | 男性 | 172 | 2015-11-11 | | 7 | リリー | 6 | 22 | F | 165 | 2016-02-26 | | 8 | スーザン | 4 | 23 | 女性 | 170 | 2015-10-01 | | 9 | トーマス | 3 | 22 | 男 | 178 | 2016-06-07 | | 10 | トム | 4 | 23 | 男 | 165 | 2016-08-05 | +------+--------+-------+-------+---------+----------+-----------+ セット内の行数は 10 行 (0.01 秒) このビューは、基本テーブル内のデータを効果的に保護できます。ビューには、s_id、s_name、および dept_name が含まれます。s_id フィールドは tb_students_info テーブルの id フィールドに対応し、s_name フィールドは tb_students_info テーブルの name フィールドに対応し、dept_name フィールドは tb_departments テーブルの dept_name フィールドに対応します。 クエリビュー ビューが定義されると、データ テーブルをクエリするのと同じように、SELECT ステートメントを使用してビュー内のデータをクエリできます。構文は、基本テーブル内のデータをクエリする場合と同じです。 ビューは、次の領域でのクエリに使用されます。
DESCRIBE を使用してビューを表示できます。構文は次のとおりです。 DESCRIBE ビュー名; 【例4】 DESCRIBE ステートメントを使用して、ビュー v_students_info の定義を表示します。入力 SQL ステートメントと実行結果は次のとおりです。 mysql> DESCRIBE v_students_info; +----------+---------------+------+-----+----------+-------+ | フィールド | タイプ | Null | キー | デフォルト | 追加 | +----------+---------------+------+-----+----------+-------+ | s_id | int(11) | いいえ | | 0 | | | s_name | varchar(45) | はい | | NULL | | | d_id | int(11) | はい | | NULL | | | s_age | int(11) | はい | | NULL | | | s_sex | enum('M','F') | はい | | NULL | | | s_height | int(11) | はい | | NULL | | | s_date | 日付 | はい | | 2016-10-22 | | +----------+---------------+------+-----+----------+-------+ セット内の行数は 7 行 (0.04 秒) 注意: DESCRIBE は通常、DESC と省略できます。このコマンドを入力した場合の実行結果は、DESCRIBE を入力した場合と同じです。 上記は、MySQL でビューを作成する方法の詳細です。MySQL でビューを作成する方法の詳細については、123WORDPRESS.COM の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: シンプルなドラッグ効果を実現するJavaScript
>>: VScode設定のリモートデバッグLinuxプログラムの問題を解決する
現在の日付 + 時刻 (日付 + 時刻) を取得する関数: now() mysql> now(...
目次Docker Composeとは要件に不適切な言語が使用されている実装Docker Compos...
/etc/yum.repos.d/フォルダに入るrabbitmq-erlang.repo ファイルを...
序文Nginx (「エンジン エックス」と発音) は、リバース プロキシ、ロード バランサ、HTTP...
目次リスナーウォッチ形式リスナーを設定します。要約するリスナーウォッチ関数名は、リッスンする要素の名...
ステップ: 1. 仮想マシンディレクトリに新しいdocker-compose.ymlファイルを作成し...
1. 約束の説明Promise は、非同期操作の最終状態 (失敗または正常完了) とその結果の値を...
序文: Vue では、props を使用して、もともと分離されていたコンポーネントを直列に接続するこ...
目次1. beforeCreateとcreated関数2. beforeMountとmount関数3...
CSS3 はアニメーションを作成でき、多くの Web ページのアニメーション画像、Flash アニメ...
Vue親コンポーネントは子コンポーネントの関数を呼び出す親コンポーネントはイベントを通じて子コンポー...
目次1. ファイルを開くパラメータの紹介2. ファイルの読み取り3. ファイルを書き込む4. 閉じる...
JavaScriptでよく使われるいくつかの文字列メソッド文字列は読み取り専用データです。よく使用...
結果: html <nav id="nav-1"> <a cl...
今日はベテランの貴重な経験を共有します。著者は技術管理の経験が7年あり、多い時は80人以上を率いてい...