mysql创建视图更新删除_⑨MySQL(创建-查看-修改-删除视图、视图新增-删除-更新数据)...

mysql.exe -h localhost -P 3306 -u root -p

use mydb;     ——     进入数据库

查看:show index from 表名\G

desc:查看表结构

select * from 表名:查询所有数据

视图(view):是一种有结构,但是没结果的虚拟表

视图优点:对外提供友好型,不同的视图对应不同的数据

一、创建视图1)基本语法:create view 视图名字 as select 语句;

2)创建单表视图:基表只有一个

3)创建多表视图:基表来源至少两个

-- 视图:单表+多表create view my_v1 as

select * from my_student;

create view my_v2 as

select * from my_class;

create view my_v3 as

select * from my_student as a left join my_class as

c on s.c_id=c.id;-- 错误,id重复

-- 多表视图create view my_v3 as

select s.*,c.c_name,c.room from my_student as s

join my_class as c on s.c_id=c.id;

二、查看视图

show tables [like] / desc 视图名 / show create table 视图名;

-- 查看视图创建语句show create view my_v3\G    -- \G:横向查看

三、修改视图

alter view 视图名字 as 新的select语句;

-- 视图使用select * from my_v1;

select * from my_v2;

select * from my_v3;

-- 修改视图alter view my_v1 as

select id,name,age,sex,height,c_id from my_student;

四、删除视图

drop view 视图名字;

-- 先创建v4create view my_v4 as

select * from my_student;

-- 删除视图drop view my_v4;

五、新增数据

1)多表视图不能新增数据

-- 多表视图不能插入数据insert into my_v3 values(null,'bc20200008','张三丰','男',150,180,3,'Python1910','A204');

2)可以向单表视图插入数据,但是视图中包含的字段必须有基表中所有不能为空、或没有默认值的字段

-- 将学生表的学号字段设置成不允许为空alter table my_student modify number char(10) not null unique;

-- 单表视图插入数据:视图不包含所有不允许为空的字段insert into my_v1 values(null,'张三丰',150,'男',180,3);

3)视图是可以向基表插入数据的

-- 单视图插入数据insert into my_v2 values(3,'Python1910','A204');

六、删除数据

1)多表视图不能删除数据

-- 多表示图不能删除数据delete from my_v3 where id=1;

2)单表视图可以删除数据

-- 单表视图删除数据delete from my_v2 where id=4;

七、更新数据

更新限制:with check option;

-- 多表视图更新数据update my_v3 set c_id=4 where id=6;

-- 视图:age字段限制更新create view my_v4 as

select * from my_student where age>30 with check

option;-- 表示视图的数据来源都是年龄大于30岁的,是由where age>30决定的

-- with check option决定通过视力更新的时候,不能将已经得到的数据age>30的改成<30的

-- 将视图可以查到的数据改成年龄小于30update my_v4 set age=29 where id=5;

-- 可以将修改数据让视图可以查到:可以改,但是无效果update my_v4 set age=32 where id=3;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值