数据库

简介: 数据更新、视图

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) 对视图进行修改

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

目录
相关文章
|
9月前
|
SQL Java 数据库
从0到1了解数据库—实现一个自己的数据库
从0到1了解数据库—实现一个自己的数据库
92 0
|
8月前
|
存储 数据管理 数据库
理解数据库中的参照完整性
【6月更文挑战第13天】数据库设计旨在创建和维护企业的数据管理系统,确保数据完整性和消除冲突。好的数据库设计应减少冗余,保证信息准确完整,并满足处理和报告需求。设计工具包括E-R图和UML等。
687 2
理解数据库中的参照完整性
|
9月前
|
存储 数据库 数据库管理
什么是数据库
什么是数据库。
63 2
|
SQL 数据库
数据库知识与技巧日常汇总
数据库知识与技巧日常汇总
129 0
|
关系型数据库 MySQL 数据库
|
存储 SQL Oracle
数据库(一)
数据库(一)
88 0
|
存储 SQL 开发框架
|
SQL XML 数据库
|
SQL 供应链 安全
地府数据库是什么样一个数据库?
地府数据库是什么样一个数据库?
137 0
|
存储 安全 关系型数据库
认识数据库
认识数据库
96 0