MySQLビュー
序文
この環境は、
特定の構築のためにMySQL-5.7.14を構築するためのCentos7.8システムに基づいています。MySQL-5.7.14環境構築を参照してください。
多くの場合、テーブルが接続され、同じ文字列のステートメントが書き込まれるたびに、empテーブルとdeptテーブルで結合クエリを実行する必要があります。同時に、給与キューデータの機密性が高いため、外部要件は次のとおりです。表示されません。
このように、ビューを作成することで完了できます
ビューの特性
- ビューには、カスタマイズされた方法で1つ以上のテーブルのデータが表示されます
- ビューは一種のデータベースオブジェクトであり、ユーザーは通常のテーブルのようにビューにクエリを実行できます。実際、ビューにデータは保存されず、テーブルに対するクエリにすぎません。
- ビューの定義はデータディクショナリに格納され、ビューが作成されるテーブルは「ベーステーブル」と呼ばれます。
ビューの利点
効果:
- セキュリティを制御する
- クエリデータを保存する
利点:
- 柔軟で一貫したレベルのセキュリティを提供します。
- データの複雑さを隠す
- ユーザーのSQLコマンドを簡素化する
- 列の名前を変更して、別の角度からデータを提供する
テーブルを作成する
mysql> CREATE TABLE college(
-> number INT(10) NOT NULL UNIQUE PRIMARY KEY COMMENT '学号',
-> name VARCHAR(20) NOT NULL COMMENT '姓名',
-> major VARCHAR(20) NOT NULL COMMENT '专业',
-> age INT(5) COMMENT '年龄'
-> )
テーブルにデータを挿入します
Query OK, 0 rows affected (0.18 sec)
mysql> INSERT INTO college_view VALUES(0901,'张三',20,'外语');
Query OK, 1 row affected (0.11 sec)
mysql> INSERT INTO college_view VALUES(0902,'李四',22,'计算机');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO college_view VALUES(0903,'王五',19,'计算机');
Query OK, 1 row affected (0.00 sec)
ビューを作成する
mysql> create
-> algorithm = merge
-> view college_view(student_num,student_name,student_age,department)
-> as
-> select number,name,age,major
-> from college
-> with local check option;
Query OK, 0 rows affected (0.18 sec)
ビュービュー
mysql> select * from college_view;
+-------------+--------------+-------------+------------+
| student_num | student_name | student_age | department |
+-------------+--------------+-------------+------------+
| 901 | 张三 | 20 | 外语 |
| 902 | 李四 | 22 | 计算机 |
| 903 | 王五 | 19 | 计算机 |
+-------------+--------------+-------------+------------+
3 rows in set (0.00 sec)
ビューを変更する
mysql> alter
-> algorithm = merge
-> view college_view(student_num,student_name,student_age,department)
-> as
-> select number,name,age,major
-> from college
-> where major='计算机'
-> with local check option;
Query OK, 0 rows affected (0.00 sec)
もう一度ビューを見てください
mysql> select * from college_view;
+-------------+--------------+-------------+------------+
| student_num | student_name | student_age | department |
+-------------+--------------+-------------+------------+
| 902 | 李四 | 22 | 计算机 |
| 903 | 王五 | 19 | 计算机 |
+-------------+--------------+-------------+------------+
2 rows in set (0.00 sec)