【数据库系统概论】第3章-关系数据库标准语言SQL(3)

news/2024/10/18 7:46:33/

文章目录

    • 3.5 数据更新
      • 3.5.1 插入数据
      • 3.5.2 修改数据
      • 3.5.3 删除数据
    • 3.6 空值的处理
    • 3.7 视图
      • 3.7.1 建立视图
      • 3.7.2 查询视图
      • 3.7.3 更新视图
      • 3.7.4 视图的作用

3.5 数据更新

3.5.1 插入数据

注意:插入数据时要满足表或者列的约束条件,否则插入失败,不成功!

// 挑选字段插入
insert into student(sno, sname) values('001','zs')
// 插入所有属性
insert into student values('001','zs','male')
// 一次插入多条
insert into student values('001','zs','male')
values('002','ls','famale')
// 插入子查询结果
insert into student2
select sno, sname
from student

3.5.2 修改数据

// 注意+where条件,否则全部被修改
update student
set sex = 'female'
where sno = '001'
//带子查询的修改
update student
set sex = 'male'
where sno in(select sno from scwhere sdept = 'cs')
  • 练习
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.5.3 删除数据

// 注意加where条件,否则删除全部
delete from student where sno = '001'
// 带子查询的
delete from sc
where sno in(select snofrom studentwhere sdept = 'cs'
)

3.6 空值的处理

  • 空值的约束
    在这里插入图片描述
  • 空值的运算
    在这里插入图片描述
  • 练习
    在这里插入图片描述

3.7 视图

3.7.1 建立视图

  1. 创建视图
    在这里插入图片描述
    在这里插入图片描述

    DBMS执行CREATE VIEW语句时只是把视图定义存入数据字典,并不执行其中的SELECT语句。在对视图查询时,按视图的定义从基本表中将数据查出。

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述 不指定属性列的坏处
    在这里插入图片描述

  • with check option
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  1. 删除视图
  • 格式
    在这里插入图片描述
    在这里插入图片描述

3.7.2 查询视图

  • 视图消解
    在这里插入图片描述
    在这里插入图片描述

3.7.3 更新视图

  • 视图消解,配合with check option
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 不可更新的情况(无法消解)
    在这里插入图片描述

3.7.4 视图的作用

  1. 视图能够简化用户的操作
  2. 视图使用户能以多种角度看待同一数据
  3. 视图对重构数据库提供了一定程度的逻辑独立性
  4. 视图能够对机密数据提供安全保护
  5. 适当的利用视图可以更清晰的表达查询

http://www.ppmy.cn/news/1283194.html

相关文章

安全运维是做什么的,主要工作内容是什么

安全运维,简称SecOps,是一种集成安全措施和流程到信息技术运维的实践。它的目的是确保在日常运维活动中,如网络管理、系统维护、软件更新等,均考虑并融入安全策略。安全运维的核心是实现安全和运维团队的密切协作,以快…

【并发设计模式】聊聊 基于Copy-on-Write模式下的CopyOnWriteArrayList

在并发编程领域,其实除了使用上一篇中的属性不可变。还有一种方式那就是针对读多写少的场景下。我们可以读不加锁,只针对于写操作进行加锁。本质上就是读写复制。读的直接读取,写的使用写一份数据的拷贝数据,然后进行写入。在将新…

Dash中的callback的使用 多input 6

代码说明 import plotly.express as pxmport plotly.express as px用于导入plotly.express模块并给它起一个别名px。这样在后续的代码中,你可以使用px来代替plotly.express,使代码更加简洁。 plotly.express是Plotly的一个子模块,用于快速创…

Unity 代码控制Text自适应文本高度

在使用代码给Text赋值时,且文本有多段,并需要根据实际文本高度适配Text组件的高度时,可以使用以下方法: //Text文本 public TextMeshProUGUI text;void Start() {//代码赋值文本text.text "好!\n很好!\n非常好!";//获…

音视频学习(二十二)——rtmp发流(tcp方式)

前言 本文主要介绍自研的RtmpStreamSender.dll,rtmp库提供接口接收裸流数据,支持将裸流数据封装为flv格式并通过rtmp协议发流。 关于rtmp协议基础介绍可查看:https://blog.csdn.net/www_dong/article/details/131026072 关于rtmp收流介绍可…

C语言中关于if else的理解

if else我们可以理解为 if(条件1) //如果条件1成立 语句1; //执行语句1 else //如果条件1不成立 语句2; //执行语句2 这是一个经典的if els…

ubuntu 20.04 tls桌面版扩/dev/sda5盘对应的/分区

1、安装好系统后,查看系统分区及盘空间情况 2、在控制台进行硬盘扩容 3、登录服务器后查看硬盘扩充后各个分区情况 4、阔分区 A、使用gparted进行扩盘 安装gparted工具 apt-get update apt-get upgrade apt-get install gparted启动gparted ~# gparted Unit t…

鸿蒙 - arkTs: 页面路由

页面栈最大容量为32,使用router.clear()可以清空页面栈,释放资源 跳转方式: router.pushUrl:目标页压入页面栈,使用router.back()可以返回上个页面。router.replaceUrl:目标页替换当前页,会清…