开发者社区> 游客ibn5k4fkeepui> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

数据库

简介: 数据更新、视图
+关注继续查看

3.3数据更新

1.插入数据

1.插入元组
insert into 表名 [(表的各个属性)可不写]
values(信息)        //字符串常数要用单引号括起来

2.插入子查询结果
insert into 表名 [(表的各个属性)可不写]
子查询
  • 如果into子句中没有指明任何属性列名,则新插入的元组必须在每个属性列上均有值,而且符合表头顺序

指明属性列名,可以不按顺序,新插入元组顺序和属性列一样

  • into指明属性列,values少写信息会自动赋空值

没有属性列,values要明确指定空值

2.修改数据

1.修改某个元组的值
update 表名
set 怎么改
where 条件(Sno='201215121')

2.修改多个元组的值
update 表名
set 怎么改

3.带子查询的修改
update 表名
set 怎么改
where 嵌套查询(子查询)

3.删除数据

1.删除某个元组的值
delete
from 表名
where 条件(Sno='201215121')

2.删除多个元组的值
delete
from 表名

3.带子查询的修改
delete
from 表名
where 嵌套查询(子查询)

3.4视图

1.建立和删除视图

create view 语句只是把视图的定义存入数据字典,并不执行select 语句

只是在对视图查询时,才按视图的定义从基本表中将数据查出

drop view 语句只是将视图的定义从数据字典中删除

  • 基本表删除后,基本表导出的视图也无法使用,但定义还没有删。还要使用drop view
1.建立视图
create view 视图名
as
子查询
[with check option]
保证以后对视图进行插入、修改、删除操作时总满足子查询where的条件

2.删除视图
drop view 视图名

如果create 后面不指定目标列,则视图列为select 子句中的目标列

下面情况必须指定所有列名:

  • 某个目标列不是单纯的属性名,而是聚集函数列表达式
  • 多表连接时选出几个同名列作为视图目标列
  • 视图中某个列需要更合适的别名

行列子集视图:从单个基本表导出某些行和某些列,而且保留了主码

分组视图:带有聚集函数和group by 子句的查询来定义视图

视图建立:

  • 视图可以建立在一个或多个基本表上
  • 可以建立在一个或多个以定义好的视图上
  • 建立在基本表和定义好的视图上
定义基本表时,为了减少数据库中数据冗余,表中只存基本数据,由基本数据经各种计算派生出的数据一般是不存储的

由于视图中的数据并不实际存储,所以定义视图时可以根据需要设置一些派生列属性

这写派生列在基本表中不实际存在,称为虚拟列。这种视图也称带表达式的视图

2.查询视图

查询视图跟查询基本表一样

流程:(后两步成为视图消解

  1. 数据库管理系统进行有效性检查,检查查询中涉及到的视图和基本表是否存在
  2. 从数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,
  3. 等价的转换成对基本表的查询,执行修正了的查询

3.更新视图

通过插入(insert)、删除(delete)、修改(update) 对视图进行修改

由于视图是不实际储存数据的虚表,对视图的更新操作最终要转变为对基本表的更新

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
数据库题
数据库题
0 0
数据库练习02
数据库练习02
0 0
TuGraph数据库
TuGraph数据库 过去的几年中创造的数据超过人类以往历史,有效地管理、操纵和保护这些信息资产的需求从未像现在这样重要,这一需求一直由领先的数据库供应商来解决,然而,在过去的十年中,无数的挑战者已经进入了这个战场,扰动着数据爆炸时代的数据库市场秩序。
0 0
你不知道的达梦数据库
达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.0版本,简称DM8。
0 0
KEGG数据库
KEGG数据库
0 0
数据库知识杂点
1.如何求最大的或者最小的 select * from A order by id(从小到大排序) desc(逆序)limit 1(只取第一个) 或者 select * from A where id = (select max(id) from A) //使用max()函数 2.
538 0
各种数据库间的比较及选择
<p><span style="font-size: 18pt;">oracle数据库的选用原则:</span></p> <p><img src="http://images.cnitblog.com/blog/532810/201307/27083131-279925ce4b804b79869bac0c8c29af65.png" alt="" width="1102" height="53
685 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
数据库2025 V3
立即下载
为什么PostgreSQL是最适合去O的数据库
立即下载
PostgresChina2018_赵振平_PostgreSQL和Greenplum数据库故障排查
立即下载