DROP TABLE IF EXISTS student;
-- 创建表
CREATE TABLE student (
sid VARCHAR(6),
sname VARCHAR(50),
chinese FLOAT,
math FLOAT
);
-- 插入数据
INSERT INTO student (sid,sname,chinese,math) VALUES ('S_1001', 'lili', 90, 80);
INSERT INTO student (sid,sname,chinese,math) VALUES ('S_1002', 'wang', 80, 70);
INSERT INTO student (sid,sname,chinese,math) VALUES ('S_1003', 'dodo', 70, 60);
INSERT INTO student (sid,sname,chinese,math) VALUES ('S_1004', 'xixi', 60, 90);
(2)创建视图
-- 创建视图
drop view if exists student_view;
create view student_view as select math,chinese,math + chinese from student;
(3)查看视图
-- 查看视图
select * from student_view;
(4)指定视图列名
默认情况下,创建视图字段名称和基本表字段名称是一样,可根据实际的需要指定视图字段名称
-- 创建视图
drop view if exists student_view;
create view student_view(m,c,s) as select math,chinese,math + chinese from student;
-- 查看视图
select * from student_view;
m:math
c:chinese
s:math+chinese
2.多表上建立视图
(1)准备数据
-- 创建表
DROP TABLE IF EXISTS studentInfo;
CREATE TABLE studentInfo (
sid VARCHAR(6),
province VARCHAR(50),
fatherName VARCHAR(50),
motherName VARCHAR(50)
);
-- 插入数据
INSERT INTO studentInfo (sid,province,fatherName,motherName) VALUES ('S_1001', 'hebei', 'plpl', 'uiui');
INSERT INTO studentInfo (sid,province,fatherName,motherName) VALUES ('S_1002', 'anhui', 'ktkt', 'hihi');
INSERT INTO studentInfo (sid,province,fatherName,motherName) VALUES ('S_1003', 'henan', 'wtwt', 'dtdt');
INSERT INTO studentInfo (sid,province,fatherName,motherName) VALUES ('S_1004', 'gansu', 'sdsd', 'xcxc');
(2)创建视图
-- 创建视图
create view student_studentInfo_view(id,name,province,fname,mname)
as
select st.sid,st.sname,sf.province,sf.fatherName,sf.motherName from student st,studentInfo sf where st.sid=sf.sid;
(3)查看视图
-- 查看视图
select * from student_studentInfo_view;
更新视图
(1)更新视图概述
指通过视图来更新(UPDATE)、插入(INSERT)、删除(DELETE)基本表中的数据。
通过视图更新数据时,其实是在更新基本表中的数据。
如果对视图中的数据进行操作时实际上就是在对基本表中的数据进行操作。
(2)更新视图语句
-- 通过update跟新数据
UPDATE student_view SET c=99 WHERE id='S_1001';
-- 通过INSERT插入数据
INSERT INTO view_student (id,name,chinese,math) VALUES ('S_1005', 'shua', 80, 80);
-- 通过DELETE删除数据
DELETE FROM view_student WHERE id='S_1002';
-- 查看视图
select * from student_view;
select sid,math,chinese,math + chinese from student;