MySQL——创建与管理视图
学习目标:
- 一个月掌握MySQL入门知识
学习内容与笔记:
创建学生成绩管理数据库中的视图:可以理解为视图只是一个查询结果,看你需要哪些数据,在基表的基础上,生成视图,只展示数据。当基表内容发生改变,视图内容也发生改变。
- 创建基于一个基表的视图
- 创建基于多个基表的视图
- 查看视图的定义
- 修改视图
- 通过视图插入数据
- 通过视图修改数据
- 通过视图删除数据
1. 创建基于一个基表的视图
例1:创建学生视图,查看所有学生基本信息。
USE cjgl;
CREATE OR REPLACE VIEW 学生 AS SELECT * FROM xs;
SELECT * FROM 学生;
例2:创建男生视图,查看所有男生基本信息。
CREATE VIEW 男生 AS SELECT 学号,姓名,专业名 FROM xs WHERE 性别='男';
SELECT * FROM 男生;
例3:创建学生平均成绩视图。
CREATE VIEW cj_avg AS
SELECT 学号, AVG(成绩) AS 平均成绩 FROM cj GROUP BY 学号;
2. 创建基于多个基表的视图
例1:创建学生成绩视图,包括学号、课程名、成绩。(两个基表)
CREATE VIEW xscj AS
SELECT cj.学号, kc.课程名, cj.成绩 FROM cj, kc WHERE cj.课程号=kc.课程号;
例2:创建学生成绩视图2,包括学号、姓名、课程名、成绩。(三个基表)
CREATE VIEW xscj2 AS
SELECT xs.学号, xs.姓名, kc.课程名, cj.成绩 FROM xs,kc,cj WHERE xs.学号=cj.学号 AND cj.课程号=kc.课程号;
3. 查看视图的定义
SHOW CREATE VIEW 学生;
4. 修改视图——ALTER
ALTER VIEW xscj
AS
SELECT cj.学号, kc.课程名, cj.成绩, kc.TIME FROM cj, kc WHERE cj.课程号=kc.课程号;
5. 通过视图插入数据——INSERT INTO
INSERT INTO 学生 VALUES('10008', '米东', '数据', '男', '1999-01-12', 43, NULL);
6. 通过视图修改数据——UPDATE
UPDATE 学生 SET 性别='女' WHERE 学号='10006';
7. 通过视图删除数据
DELETE FROM 学生 WHERE 学号='10006';