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;
【MySQL】视图
最新推荐文章于 2024-07-19 00:12:38 发布