MySQL 시리즈 의 다섯 가지 보기,저장 함수,저장 과정,트리거
MySQL 시리즈 의 시작 MySQL 관계 형 데이터베이스 기초 개념
MySQL 시리즈 중 하나 인 MariaDB-server 설치
MySQL 시리즈 의 두 번 째 인 스 턴 스 설정
MySQL 시리즈 의 3 가지 기초 편
MySQL 시리즈 의 4 SQL 문법
MySQL 시리즈 의 6 사용자 및 권한 부여
MySQL 시리즈 7 MySQL 저장 엔진
MySQL 시리즈 8 MySQL 서버 변수
MySQL 시리즈 의 9 my sql 캐 시 및 색인 조회
MySQL 시리즈 의 10 MySQL 사무 격 리 병행 제어 실현
MySQL 시리즈 의 11 로그 기록
MySQL 시리즈 의 12 백업 및 복구
MySQL 시리즈 13 MySQL 복사
MySQL 시리즈 의 14 MySQL 의 높 은 사용 가능 한 구현
MySQL 시리즈 의 15 MySQL 상용 설정 및 성능 압력 테스트
보기
보기:VIEW,가상 표,실제 표 가 있 는 조회 결 과 를 저장 하고 실제 데 이 터 는 디스크 에 저장 하지 않 습 니 다.
물리 보기:실제 데 이 터 는 디스크 에 저장 되 어 있 으 며 접근 을 가속 화 합 니 다.MySQL 은 물리 보 기 를 지원 하지 않 습 니 다.
기본 표:보기 의존 표
보기 의 데 이 터 는 사실상'기본 표'에 저장 되 어 있 기 때문에 수정 작업 도 기본 표 에 따라 이 루어 집 니 다.그 수정 작업 은 기본 표 의 제한 을 받는다.
메모:보 기 를 수정 할 때 수정 한 원본 표 입 니 다.
1.보기 의 생 성
CREATE VIEW view_name AS select_statement
MariaDB [testdb]> CREATE VIEW v_students AS SELECT id,name,ages FROM students;
MariaDB [testdb]> SELECT * FROM v_students;
+----+---------------+------+
| id | name | ages |
+----+---------------+------+
| 1 | tom | 26 |
| 2 | jerry | 19 |
| 3 | maria | 19 |
| 4 | xiaolongnv | 18 |
| 5 | dongfangbubai | 28 |
| 6 | ouyangfeng | 56 |
+----+---------------+------+
2.보기 정의 보기SHOW CREATE VIEW view_name
MariaDB [testdb]> SHOW CREATE VIEW v_students\G
View: v_students
Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v_students` AS select `students`.`id` AS `id`,`students`.`name` AS `name`,`students`.`ages` AS `ages` from `students`
MariaDB [testdb]> SHOW TABLE STATUS LIKE 'v_students'\G
Name: v_students
Comment: VIEW #
3.보기 삭제DROP VIEW [IF EXISTS] view_name [, view_name] ...
MariaDB [testdb]> DROP VIEW v_students;
저장 함수설명:매개 변 수 는 여러 개 일 수도 있 고 매개 변수 가 없 을 수도 있 으 며 반환 값 이 하나 밖 에 없어 야 합 니 다.
1.시스템 함수
공식 문서 참조:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html
2.사용자 정의 함수(user-defined function:UDF)
사용자 정의 함수 가 my sql.proc 표 에 저 장 됩 니 다.
MariaDB [testdb]> DELIMITER // # //
MariaDB [testdb]> CREATE FUNCTION addTwoNumber(x SMALLINT UNSIGNED, Y SMALLINT UNSIGNED)
-> RETURNS SMALLINT
-> BEGIN
-> DECLARE a, b SMALLINT UNSIGNED DEFAULT 10;
-> SET a = x, b = y;
-> RETURN a+b;
-> END//
Query OK, 0 rows affected (0.01 sec)
MariaDB [testdb]> DELIMITER ; #
MariaDB [testdb]> SELECT addTwoNumber(8,9); # UDF
+-------------------+
| addTwoNumber(8,9) |
+-------------------+
| 17 |
+-------------------+
저장 프로시저저장 프로 세 스 는 자주 사용 하 는 SQL 문장 이나 업무 논 리 를 패키지 하여 데이터베이스 에 미리 컴 파일 하여 저장 하고 필요 할 때 데이터베이스 에서 직접 호출 하여 컴 파일 과정 을 생략 합 니 다.운행 속 도 를 높이 는 동시에 네트워크 데이터 전 송 량 을 낮 추 었 다.
저장 프로 세 스:저장 프로 세 스 는 my sql.proc 표 에 저 장 됩 니 다.
공정 제어
저장 프로 세 스 와 함수 에서 프로 세 스 제 어 를 사용 하여 문장의 집행 을 제어 할 수 있다
트리거 의 실행 은 프로그램 에서 호출 되 는 것 이 아니 라 수 동 으로 시작 되 는 것 이 아니 라 이벤트 에서 촉발 되 고 활성화 되 어 실 행 됩 니 다.
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
trigger_body
trigger_name:트리거 이름trigger_time:{BEFORE|AFTER}
trigger_이벤트:{INSERT|UPDATE|DELETE},실행 할 구체 적 인 이벤트
tbl_name:이 트리거 는 표 이름 에 작 동 합 니 다.
MariaDB [testdb]> CREATE TABLE students_info (id TINYINT(2) NOT NULL AUTO_INCREMENT,name VARCHAR(30) DEFAULT NULL,PRIMARY KEY(id)); #
MariaDB [testdb]> CREATE TABLE students_count (stu_count TINYINT(2) DEFAULT 0); #
MariaDB [testdb]> INSERT INTO students_count VALUES(0); # 0
MariaDB [testdb]> CREATE TRIGGER trigger_students_count_insert
-> AFTER INSERT
-> ON students_info FOR EACH ROW
-> UPDATE students_count SET stu_count=stu_count+1;
Query OK, 0 rows affected (0.00 sec)
MariaDB [testdb]> CREATE TRIGGER trigger_students_count_delete
-> AFTER DELETE
-> ON students_info FOR EACH ROW
-> UPDATE students_count SET stu_count=stu_count-1;
Query OK, 0 rows affected (0.01 sec)
MariaDB [testdb]> INSERT students_info(id,name) VALUES (1,'Tom'),(2,'Maria');
MariaDB [testdb]> SELECT * FROM students_info;
+----+-------+
| id | name |
+----+-------+
| 1 | Tom |
| 2 | Maria |
+----+-------+
MariaDB [testdb]> SELECT * FROM students_count; # , , 2
+-----------+
| stu_count |
+-----------+
| 2 |
+-----------+
MariaDB [testdb]> DELETE FROM students_info WHERE id=1;
MariaDB [testdb]> SELECT * FROM students_info;
+----+-------+
| id | name |
+----+-------+
| 2 | Maria |
+----+-------+
MariaDB [testdb]> SELECT * FROM students_count; # , 1
+-----------+
| stu_count |
+-----------+
| 1 |
+-----------+
총결산MySQL 보기,저장 함수,저장 과정,트리거 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 MySQL 보기,저장 함수,저장 과정,트리거 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 지원 을 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift3에서 UIView를 View의 중심에 배치하는 방법텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.