赞
踩
视图就是船舰出来一个虚拟的表来简化一些数据表的操作
create View 视图名
- CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
- VIEW view_name [(column_list)]
- AS select_statement
- [WITH [CASCADED | LOCAL] CHECK OPTION]
视图定义服从下述限制:
· SELECT语句不能包含FROM子句中的子查询。
· SELECT语句不能引用系统或用户变量。
· SELECT语句不能引用预处理语句参数。
· 在存储子程序内,定义不能引用子程序参数或局部变量。
· 在定义中引用的表或视图必须存在。但是,创建了视图后,能够舍弃定义引用的表或视图。要想检查视图定义是否存在这类问题,可使用CHECK TABLE语句。
· 在定义中不能引用TEMPORARY表,不能创建TEMPORARY视图。
· 在视图定义中命名的表必须已存在。
· 不能将触发程序与视图关联在一起
DESCRIBE语句查看视图基本信息
SHOW TABLE STATUS语句查看视图基本信息
SHOW CREATE VIEW语句查看视图详细信息
alter View 视图名 as sql语句
DROP VIEW [IF EXISTS] view_name [, view_name] ... [RESTRICT | CASCADE]
CREATE TRIGGER trigger_name trigger_time trigger_event ON tbl_name FOR EACH ROW trigger_stmt 触发器只能应用在增删改查中
INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。
UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。
DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。
SHOW TRIGGERS;
- CREATE TABLE test1(a1 INT);
- CREATE TABLE test2(a2 INT);
- CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
- CREATE TABLE test4(
- a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
- b4 INT DEFAULT 0
- );
-
- DELIMITER |
-
- CREATE TRIGGER testref BEFORE INSERT ON test1
- FOR EACH ROW BEGIN
- INSERT INTO test2 SET a2 = NEW.a1;
- DELETE FROM test3 WHERE a3 = NEW.a1;
- UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
- END
- |
-
- DELIMITER ;
-
- INSERT INTO test3 (a3) VALUES
- (NULL), (NULL), (NULL), (NULL), (NULL),
- (NULL), (NULL), (NULL), (NULL), (NULL);
-
- INSERT INTO test4 (a4) VALUES
- (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
- 如果将下述值插入表test1,如下所示:
-
- mysql> INSERT INTO test1 VALUES
- -> (1), (3), (1), (7), (1), (8), (4), (4);
- Query OK, 8 rows affected (0.01 sec)
- Records: 8 Duplicates: 0 Warnings: 0
- 那么4个表中的数据如下:
-
- mysql> SELECT * FROM test1;
- +------+
- | a1 |
- +------+
- | 1 |
- | 3 |
- | 1 |
- | 7 |
- | 1 |
- | 8 |
- | 4 |
- | 4 |
- +------+
- 8 rows in set (0.00 sec)
-
- mysql> SELECT * FROM test2;
- +------+
- | a2 |
- +------+
- | 1 |
- | 3 |
- | 1 |
- | 7 |
- | 1 |
- | 8 |
- | 4 |
- | 4 |
- +------+
- 8 rows in set (0.00 sec)
-
- mysql> SELECT * FROM test3;
- +----+
- | a3 |
- +----+
- | 2 |
- | 5 |
- | 6 |
- | 9 |
- | 10 |
- +----+
- 5 rows in set (0.00 sec)
-
- mysql> SELECT * FROM test4;
- +----+------+
- | a4 | b4 |
- +----+------+
- | 1 | 3 |
- | 2 | 0 |
- | 3 | 1 |
- | 4 | 2 |
- | 5 | 0 |
- | 6 | 0 |
- | 7 | 1 |
- | 8 | 1 |
- | 9 | 0 |
- | 10 | 0 |
- +----+------+
- 10 rows in set (0.00 sec
DROP TRIGGER [schema_name.]trigger_name
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。