Представление MySQL
Предисловие
Эта среда основана на системе Centos 7.8 для сборки MySQL-5.7.14 для
конкретной конструкции, обратитесь к построению среды MySQL-5.7.14
Часто бывает необходимо выполнять запрос соединения для таблиц emp и dept каждый раз, когда таблицы подключаются и записывается одна и та же строка операторов. В то же время, поскольку данные очереди зарплат более чувствительны, внешние требования невидимый.
Таким образом, мы можем завершить создание представления
Посмотреть характеристики
- Представление отображает данные из одной или нескольких таблиц настраиваемым способом
- Представление - это своего рода объект базы данных. Пользователи могут запрашивать представление, как обычную таблицу. На самом деле, в представлении нет данных, хранящихся в представлении, это просто запрос к таблице.
- Определение представления хранится в словаре данных, а таблица, в которой создается представление, называется «базовой таблицей».
Преимущества просмотров
эффект:
- Контроль безопасности
- Сохранить данные запроса
преимущество:
- Обеспечивает гибкий и постоянный уровень безопасности.
- Скрыть сложность данных
- Упростите 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)