MySQL 케이스 전투 -MySQL보기

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)

추천

출처blog.csdn.net/XY0918ZWQ/article/details/112918548