MySQL----视图的创造和使用
这里写目录标题
- **创造视图**
- **查看视图**
- **修改视图**
- **更新视图**
- **删除视图**
创造视图
使用create view…
创造
- 语法格式
create[algorithm = {undefiend|merge|temptable}]view <视图名> [(<字段名1>[,……,字段名n])]as <select 语句>;
- 事例
创造视图v_stu,列出所有 1995年9月1日(birthday) 以及之前出生的 学生名单(student)
createview v_stuasselect *from studentwhere birthday >= '1995-9-1';
查看视图
- 1.使用
describe|desc
语句查看
查看 v_stu 的基本信息
desc v_stu;
- 2.使用
show table status
查看 v_stu 的基本信息
show table status like 'v_stu';
- 3.使用
show create view
查看 v_stu 的基本信息
show create view v_stu;
修改视图
使用create or replace
语句
如果视图 存在,则 修改
如果视图 不存在,则 创建
- 语法格式
create or replaceview <视图名>[(<字段名1>[,……,字段名n])]as <select语句>;
- 事例
修改视图 v_stu 列出所有 1995年9月1日(birthday) 以及之前出生的 女生名单(student)(sex)
create or replace view v_stuasselect *from studentwhere birthday >= '1995-9-1' and sex = '女';
使用 alter view
- 语法格式
alter view <视图名>[(<字段名1>[,……,字段名n])]as <select语句>;
- 事例
修改视图 v_stu_grade 列出“网络131” 班学生的
学号(sNo) 姓名(sName) 班级(deptName) 课程编号(cNo) 课程名称(cName) 成绩(grade)
alter view v_stu_gradeasselect student.sNo,deptName,course.cNo,cName,score.gradefrom scoreinner join student on student.id = score.sIdinner join course on course.id = score.cIdwhere deptName = '网络131';
更新视图
通过视图,向表中 插入数据
使用 insert values
语法
- 事例
通过视图 v_stu 插入一条新的学生记录
insert into v_stu( )values(……);
通过视图,修改 表中数据
使用 update set
语法
- 事例
将学号为 1457894 的学生班级修改为 “网络131”
update v_stu
set deptname = "网络131"
where sNo ="1457894";
通过视图,删除 表中数据
使用 delete from
语法
- 事例
删除课程编号为 01004 的课程记录
delete from v_stu
where cNo = '01004';
删除视图
使用drop view
语句
- 语法格式
drop from <视图名>;
- 事例
删除 v_stu
drop view v_stu;