【MySQL】视图

USE db1;

CREATE TABLE student(
s_id INT(3),
NAME VARCHAR(20),
math FLOAT,
chinese FLOAT
);

INSERT INTO student(s_id,NAME,math,chinese) VALUES(1,'Tom',80,78);
INSERT INTO student(s_id,NAME,math,chinese) VALUES(2,'Jack',70,80);
INSERT INTO student(s_id,NAME,math,chinese) VALUES(3,'Lucy',97,95);

SELECT * FROM student;

/*单表视图*/
CREATE VIEW view_stu AS SELECT math,chinese,math+chinese FROM student;

SELECT * FROM view_stu;/*查看视图*/

UPDATE student SET math=1000 WHERE s_id=3;

SELECT * FROM view_stu;/*查看视图,会随主表内容变化而变化*/


CREATE VIEW view_stu2(math,chin,SUM) AS SELECT math,chinese,math+chinese FROM student;
SELECT * FROM view_stu2;


CREATE TABLE stu_info(
s_id INT(3),
class VARCHAR(50),
addr VARCHAR(100)
);

INSERT INTO stu_info(s_id,class,addr)VALUES(1,'erban','anhui');
INSERT INTO stu_info(s_id,class,addr)VALUES(2,'sanban','chongqing');
INSERT INTO stu_info(s_id,class,addr)VALUES(3,'yiban','shandong');

/*多表视图*/

CREATE VIEW stu_class(id,NAME,class)AS
SELECT student.s_id,student.name,stu_info.class
FROM student,stu_info
WHERE student.s_id=stu_info.s_id;

SELECT * FROM stu_class;

/*查看视图
查看视图,是指查看数据库中已经存在的视图的定义。查看视图必须要有SHOW VIEW的权限。
NULL:表示该列是否可以存储NULL值。
Key:表示该列是否已经编制索引。
Default:表示该列是否有默认值。
Extra:表示获取到的与给定列相关的附加信息。
*/
DESCRIBE stu_class;
DESC stu_class;
/*查看视图
使用SHOW TABLE STATUS语句可以查看视图的基本信息。*/
SHOW TABLE STATUS LIKE '%stu%';

/*查看视图
使用SHOW CREATE VIEW语句不仅可以查看创建视图时的定义语句,还可以查看视图的字符编码。*/
SHOW CREATE VIEW stu_class;

/*修改视图*/
CREATE OR REPLACE VIEW view_stu AS SELECT * FROM student;/*使用CREATE OR REPLACE VIEW语句修改视图*/
ALTER VIEW view_stu AS SELECT chinese FROM student;/*使用ALTER语句修改视图*/

/*更新视图
更新视图是指通过视图来更新、插入、删除基本表中的数据。
因为视图是一个虚拟表,其中没有数据,当通过视图更新数据时其实是在更新基本表中的数据,
如果对视图中的数据进行增加或者删除操作时,实际上就是在对其基本表中的数据进行增加或者删除操作。
*/

UPDATE view_stu SET chinese = 100;/*新view_stu视图中chinese字段对应的数据值,将字段值改为100*/

/*删除视图
删除视图时,只能删除视图的定义,不会删除数据。
*/
DROP VIEW IF EXISTS view_stu;

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值