추천 모음 집-MySQL 보기 상세 설명
6159 단어 mysql
MySQL 에서 보 기 는 아마도 우리 가 가장 자주 사용 하 는 데이터베이스 대상 중의 하나 일 것 이다.그럼 보기 와 표 의 차 이 를 아 십 니까?보 기 를 만 들 고 사용 할 때 어떤 점 을 주의해 야 하 는 지 아 십 니까?많은 사람들 이 보기 에 대해 수박 겉 핥 기 일 수도 있 습 니 다.보 기 를 자세히 알 고 싶 은 학생 들 이 보 세 요.이 글 은 보기 의 개념,생 성 및 사용 방법 을 상세 하 게 소개 합 니 다.
1.보기 정의 및 간단 한 소개
보 기 는 SQL 문 구 를 기반 으로 한 결과 집합 을 시각 화 하 는 표 입 니 다.즉,보 기 는 가상 존재 하 는 표 입 니 다.표 의 전부 또는 일부 기록 을 포함 할 수도 있 고 표 나 여러 표 로 만 들 수도 있 습 니 다.보 기 를 사용 하면 데이터 시트 의 모든 데 이 터 를 보지 않 고 필요 한 데이터 만 얻 을 수 있 습 니 다.보 기 를 만 들 때 실제 데이터베이스 에서 SELECT 문 구 를 실 행 했 습 니 다.SELECT 문 구 는 필드 이름,함수,연산 자 를 포함 하여 사용자 에 게 데 이 터 를 표시 합 니 다.
보기 의 데 이 터 는 원래 표 의 데이터 에 의존 하기 때문에 원래 표 의 데이터 가 바 뀌 었 습 니 다.그러면 보 이 는 보기 의 데이터 도 달라 집 니 다.예 를 들 어 데이터 시트 에 데 이 터 를 삽입 하면 보 기 를 볼 때 보기 에 도 같은 데이터 가 삽 입 된 것 을 발견 할 수 있 습 니 다.보 기 는 실제 적 으로 미리 정 의 된 조회 형식의 표 로 구성 되 어 있다.
2.보기 생 성 및 사용 방법
보기 표준 문법 만 들 기:
CREATE
[OR REPLACE]
[ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
[DEFINER = user]
[SQL SECURITY { DEFINER | INVOKER }]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
문법 해석:
1)OR REPLACE:기 존 보 기 를 교체 하 는 것 을 의미 합 니 다.이 보기 가 존재 하지 않 으 면 CREATE OR REPLACE VIEW 는 CREATE VIEW 와 같 습 니 다.
2)ALGORITHM:보기 선택 알고리즘 을 표시 합 니 다.기본 알고리즘 은 UNDEFINED(정의 되 지 않 은):MySQL 에서 사용 할 알고리즘 을 자동 으로 선택 합 니 다.merge 합병;temptable 임시 표,일반적으로 이 매개 변 수 는 명시 적 으로 지정 되 지 않 습 니 다.
3)DEFINER:보기 의 작성 자 나 정의 자 를 가리 키 며,이 옵션 을 지정 하지 않 으 면 보 기 를 만 드 는 사용자 가 정의 자 입 니 다.
4)SQL SECURITY:SQL 보안,기본 값 은 DEFINER 입 니 다.
5)select_statement:selection 문 구 를 표시 합 니 다.기본 표 나 다른 보기에 서 선택 할 수 있 습 니 다.
6)WITH CHECK OPTION:보기 가 업 데 이 트 될 때 제약 이 있 음 을 의미 하 며,기본 값 은 CASCADED 입 니 다.
사실 우리 가 일상적으로 보 기 를 만 들 때 매개 변 수 를 지정 할 필요 가 없습니다.일반적인 상황 에서 보 기 를 만 드 는 것 을 권장 합 니 다.
create view [(column_list)]
as select
with check option;
다음은 몇 가지 구체 적 인 생 성 예 시 를 보 여 줍 니 다.
#
mysql> create view v_F_players( , , , )
-> as
-> select PLAYERNO,NAME,SEX,PHONENO from PLAYERS
-> where SEX='F'
-> with check option;
Query OK, 0 rows affected (0.00 sec)
mysql> desc v_F_players;
+--------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------+----------+------+-----+---------+-------+
| | int(11) | NO | | NULL | |
| | char(15) | NO | | NULL | |
| | char(1) | NO | | NULL | |
| | char(13) | YES | | NULL | |
+--------+----------+------+-----+---------+-------+
4 rows in set (0.00 sec)
mysql> select * from v_F_players;
+--------+-----------+--------+------------+
| | | | |
+--------+-----------+--------+------------+
| 8 | Newcastle | F | 070-458458 |
| 27 | Collins | F | 079-234857 |
| 28 | Collins | F | 010-659599 |
| 104 | Moorman | F | 079-987571 |
| 112 | Bailey | F | 010-548745 |
+--------+-----------+--------+------------+
5 rows in set (0.02 sec)
#
mysql> create view v_match
-> as
-> select a.PLAYERNO,a.NAME,MATCHNO,WON,LOST,c.TEAMNO,c.DIVISION
-> from
-> PLAYERS a,MATCHES b,TEAMS c
-> where a.PLAYERNO=b.PLAYERNO and b.TEAMNO=c.TEAMNO;
Query OK, 0 rows affected (0.03 sec)
mysql> select * from v_match;
+----------+-----------+---------+-----+------+--------+----------+
| PLAYERNO | NAME | MATCHNO | WON | LOST | TEAMNO | DIVISION |
+----------+-----------+---------+-----+------+--------+----------+
| 6 | Parmenter | 1 | 3 | 1 | 1 | first |
| 44 | Baker | 4 | 3 | 2 | 1 | first |
| 83 | Hope | 5 | 0 | 3 | 1 | first |
| 112 | Bailey | 12 | 1 | 3 | 2 | second |
| 8 | Newcastle | 13 | 0 | 3 | 2 | second |
+----------+-----------+---------+-----+------+--------+----------+
5 rows in set (0.04 sec)
보 기 는 사용 할 때 기본 표 와 같 습 니 다.예 를 들 어 우리 가 사용 할 수 있 습 니 다. select from view_name 또는 select from view_name where...보 기 는 우리 가 필요 로 하지 않 는 데 이 터 를 걸 러 내 고 관련 열 이름 을 사용자 정의 열 이름 으로 바 꿀 수 있 습 니 다.보 기 는 기본 표 의 구조 와 표 이름 이 아무리 복잡 하 더 라 도 접근 인터페이스 입 니 다.일반적인 상황 에서 보 기 는 조회 에 만 사 용 됩 니 다.보기 자체 에 데이터 가 없 기 때문에 보기 에 대한 dml 작업 은 최종 적 으로 기본 표 에 나타 납 니 다.보 기 를 delete,update,insert 작업 을 합 니 다.원래 표 역시 업데이트 되 고 drop 보기 의 원래 표 는 변 하지 않 으 며 보 기 는 truncate 가 안 됩 니 다.그러나 일반적인 상황 에서 우 리 는 보 기 를 업데이트 하 는 것 을 피해 야 한다.dml 작업 은 원 표를 직접 업데이트 할 수 있다.
3.보기 관련 최고의 실천
다음은 보기 의 장점 을 간단하게 소개 하고 이러한 장점 을 통 해 우 리 는 보기 의 적용 장면 을 쉽게 정리 할 수 있다.
1)간단 함:보 기 를 사용 하 는 사용 자 는 뒤에 대응 하 는 표 의 구조,관련 조건 과 선별 조건 에 전혀 관심 을 가 질 필요 가 없 으 며 사용자 에 게 는 이미 걸 러 진 복합 조건 의 결과 집합 이다.
2)보안:보 기 를 사용 하 는 사용 자 는 검색 이 허용 되 는 결과 집합 에 만 접근 할 수 있 습 니 다.표 에 대한 권한 관 리 는 한 줄 의 열 로 제한 할 수 없 지만 보 기 를 통 해 간단하게 이 루어 집 니 다.
3)데이터 독립:보기 의 구조 가 확정 되면 표 구조 변화 가 사용자 에 게 미 치 는 영향 을 차단 할 수 있 고 소스 표 의 증가 열 은 보기 에 영향 을 주지 않 습 니 다.원본 표 에서 열 이름 을 수정 하면 보기 수정 을 통 해 해결 할 수 있 으 며 방문 자 에 게 영향 을 주지 않 습 니 다.
한 마디 로 보 기 를 사용 하 는 경우 대부분 데이터 안전성 을 보장 하고 조회 효율 을 높이 기 위해 서다.예 를 들 어 우 리 는 몇 개의 표 와 관련 된 결 과 를 자주 사용 합 니 다.그러면 우 리 는 보 기 를 사용 하여 처리 하거나 제3자 프로그램 이 우리 의 업무 라 이브 러 리 를 호출 해 야 합 니 다.필요 에 따라 보 기 를 만들어 제3자 프로그램 에 조회 할 수 있 습 니 다.
일상적인 사용 과 보 기 를 유지 하 는 과정 에서 개인 은 다음 과 같은 몇 가지 실천 을 정리 하여 참고 할 수 있 습 니 다.
요약:
보 기 는 MySQL 에서 자주 사용 되 는데 이 글 은 보기 의 개념 과 생 성 방법 을 소개 하고 연장 되 었 으 며 그 다음 에 보기 의 사용 장면 과 장점 을 설명 했다.사용 할 때 보기 와 표 의 차 이 를 느끼 지 못 할 수도 있 습 니 다.사실 이 안의 도 로 는 아직 많 습 니 다.여기 서 보 기 는 조회 로 만 사용 하 는 것 을 권장 합 니 다.규범 에 따라 보 기 는 매우 편리 합 니 다.이 문장 이 너 에 게 도움 이 되 기 를 바란다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.