现有表 stuInfo
CREATE TABLE IF NOT EXISTS stuInfo(
id INT PRIMARY KEY AUTO_INCREMENT,
stuName VARCHAR(10) NOT NULL,
age INT DEFAULT 18
);
插入数据
INSERT INTO stuInfo VALUES(0,'z3', 18);
INSERT INTO stuInfo VALUES(0,'l4', 19);
INSERT INTO stuInfo VALUES(0,'w5', 20);
INSERT INTO stuInfo VALUES(0,'f6', 21);
1、 视图 多个地方使用了同样的查询结果 或 该查询使用的sql语句较为复杂时 使用视图
MySQL中的视图 view 是一张虚拟表,可以当做普通表一样使用,是通过表动态生成的数据。视图只保存了sql 逻辑,不保存查询结果。也就是说当原表中数据改变,视图中数据也会改变。视图 是 MySQL5.1之后的新特性。
创建视图 CREATE VIEW 视图名 AS 查询语句;
如 CREATE VIEW view1 AS SELECT * FROM stuInfo;
删除视图 DROP VIEW 视图名1,视图名2;
如 DROP VIEW view1;
修改视图 两种方式
CREATE OR REPLACE VIEW 视图名 AS 查询语句;
ALTER VIEW 视图名 AS 查询语句;
如
CREATE OR REPLACE VIEW view2 AS SELECT stuName,age FROM stuInfo;
ALTER VIEW view2 AS SELECT * FROM stuInfo;
查看视图
查看视图结构 DESC 视图名;
DESC view2
查看视图创建语句 SHOW CREATE VIEW 视图名;
SHOW CREATE VIEW view2;
视图使用和普通表基本一致
使用视图查看数据 SELECT * FROM view2;
注: 视图也可以进行增删改操作。对原数据有影响。但是不推荐使用,一般不用。
函数存储过程使用前准备 变量
- 系统变量
- 全局变量 服务器每次启动为所有全局变量赋初始值 针对所有连接有效,不能跨服务重启
- 会话变量 仅针对当前连接有效
- 自定义变量
- 用户变量 针对当前会话(连接)有效, 可以使用在任何地方