sql视图和子查询

视图就是基于sql语句的结果集而产生的一个可视化的表,它其实就是一个虚表,只能进行查询操作,不能插入和修改。当原表的记录有变化时(比如插入修改和删除操作),它的结果集也会跟着变化。

比如这样一个student表

可以使用:create view teview as select id,name,age from student;创建一个teview视图,它是从student表里提取id,name,age这3个字段生成。如下所示:

然后,当我们就可以对这个teview视图当做普通的只读表,来进行记录查询了。但是因为它是只读,所以无法进行一切修改操作,只有对原表student进行变更操作时,它才会跟着变化。如下所示:

sqlite> update teview set name='haha' where id=3;
Error: cannot modify teview because it is a view
sqlite> update student set name='haha' where id=3;

另外就是子查询了,它就是一个嵌套查询,可以在where语句中进行再次查询,适用需要多个条件语句判断或者处理操作。比如有一个bird表,我们需要把字段swing里大于最小值的,都修改为缩小1倍乘以0.5,可以这样写:update bird set swing=swing*0.5 where swing>(select min(swing) from bird);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值