数据库-第二/三章 关系数据库和标准语言SQL【期末复习|考研复习】

前言

总结整理不易,希望大家点赞收藏。

给大家整理了一下计数据库系统概论中的重点概念,以供大家期末复习和考研复习的时候使用。
参考资料是王珊老师和萨师煊老师的数据库系统概论(第五版)。


文章目录

  • 前言
  • 第二、三章 关系数据库和标准语言SQL
    • 2.1 关系
    • 2.2 SQL语言的特点
    • 2.3 SQL语句总结(别看代码了,这个再看就过一遍注意点)
      • (1) 模式创建和定义:
      • (2) 删除模式:
      • (3) 基本表定义:
      • (4) 显示当前搜索路径:
      • (5) 修改基本表:
      • (6) 删除基本表
      • (7) 索引:
      • (8) 数据查询:
      • (9) 连接查询:
      • (10) 嵌套查询:
      • (11) 数据更新:
      • (12) 空值:
      • (13) 视图:
        • 13.1 视图的作用
    • 练手题


第二、三章 关系数据库和标准语言SQL

2.1 关系

关系代数:传统集合运算:并、差、交、笛卡尔积;
专门关系运算:选择σ(行),投影π(列),连接,除;
等值连接:相同属性不会合并,成为两列。
自然连接:相同属性合并(剔除相同)。
悬浮元组:因为合并而被丢弃的元组。(没有对应的可合并的元组)
外连接:悬浮元组全保留,没有的属性写NULL;
左外连接:保留左关系中的悬浮元组;
右外连接:保留右关系中的悬浮元组

2.2 SQL语言的特点

(1) 语句简单,逻辑清晰,综合统一
(2)高度非过程化
(3)面向集合
(4)同一种语法结构提供多种使用方式。

2.3 SQL语句总结(别看代码了,这个再看就过一遍注意点)

(1) 模式创建和定义:

create schema “s-t”(模式名) authorization user1(用户名);

可以在该语句后直接创建表/视图/授权。

(2) 删除模式:

drop schema “s-t” cascade/restrict [cascade]

cascade级联,删除该模式的同时删除模式下所有数据库对象。
Restrict限制,删除时如果该模式下还有其他数据库对象则拒绝删除]

(3) 基本表定义:

Create table student(
Sno char(9) primary key, //属性名 数据类型 列级约束;
Sname char(20) unique,
Age smallint,
Sdept char(29) //系名
Foreign key (sdept) references dept(dname) //我乱写的,表级完整性约束。

主键由多个属性构成,必须用表级完整性约束。Primary key(sno,cno)这样。

(4) 显示当前搜索路径:

show serach_path(用户,模式)

管理员设置路径:

set serach_path to +用户名,模式名

(5) 修改基本表:

//属于修改表中的列相关。

Alter table student add s_birth DATE; //增列
Alter table student alter column(这个column可写可不写) age int;//修改列类型
Alter table student drop column s_birth; //删列
Alter table student drop constraint primary key(sno);//删完整性约束

(6) 删除基本表

(突然发现删除时都有cascade/restrict规定)

Drop table student cascade;

(7) 索引:

用于加快查询速度。
顺序文件索引,B+索引,散列(hash)索引,位图索引。
索引由系统自动选择,用户不能选,属于内模式。
索引的SQL语言:

create unique index(关键字是index) stusno on student(sno);	//对student表的sno建立升序唯一索引stusno
Alter index stusno rename to snoindex;		//对索引改名
Drop index stusno;		//删除,没有cascade和restrict。根本没有和其他的索引之类有联系就不考虑级联。

(8) 数据查询:

Selectall / distinct 后者在查询时合并相同结果)列名……From 表名/视图Where 条件Group by 列名 having 条件(常+聚集函数)Order by 列名 asc/desc (排序)

注意事项:
where 和 having 的区别:
1、执行时机不同:where是分组之前进行过滤,不满足where条件不参与分组;having是分组后对结果进行过滤。
2、判断条件不同:where不能对聚合函数进行判断,而having可以。
执行顺序:FROM -> WHERE -> GROUP BY -> SELECT -> ORDER BY -> LIMIT

(9) 连接查询:

等值连接:

Select student.,sc. From student,sc Where student.sno=sc.sno;

自然连接则会合并相同列,这时候查询语句就会变成

Select student.sno,sname,sage,cno From student,sc Where student.sno=sc.sno;

注意事项:
1、自然连接一定是等值连接,但等值连接不一定是自然连接。
2、等值连接要求相等的分量,不一定是公共属性;而自然连接要求相等的分量必须是公共属性。3、等值连接不把重复的属性除去;而自然连接要把重复的属性除去。
外连接

Select student.sno,sname,sage,cno From student left outer join sc on(student.sno=sc.sno)

(10) 嵌套查询:

不相关子查询:子查询条件不依赖父查询
相关子查询:子查询查询条件依赖父查询
区别:不相关子查询一次查询,相关子查询循环求解。联合查询时UNION ALL 会有重复结果,UNION 不会。
联合查询比使用or效率高,不会使索引失效

(11) 数据更新:

插入数据,修改数据,删除记录(这都是对行的操作,区别alter table语句)
插入

Insert Into student(sno,sname,sex,age) Values(20000,’张三’,‘男‘,18);

更新

Update student Set age=22 Where sno=20000;

删除

Delete From student Where sno=20000;

(12) 空值:

判断用 is null 或者 is not null

(13) 视图:

视图是一张虚表。只存放视图的定义,不存放其真正的结构。对视图的操作也会转化成对基本表的操作。
创建

Create view is_student As select sno,sname From stuent Where sdept=isWith check potion //用来保证对视图更新的时候,满足子查询条件
注意事项;

with cascaded check option 级联检查,不管上面开没开检查选项都会检查。
with local check option 本地检查,先在本地检查,再向上检查,上面没开检查选项就不检查。
删除

Drop view is_student cascade;

视图消解:对视图进行查询操作的时候,首先进行有效性检查,检查相关定义是否存在,如果存在就在数据字典中取出视图的定义,把定义中的子查询和用户的查询结合起来,转换成对基本表的查询,再执行修正了的查询。
视图和派生表是有区别的。视图永久性,派生表临时。

13.1 视图的作用

(1) 视图能够简化用户的操作
(2) 使用户能以多种角度看待同一数据
(3)视图可以帮助用户屏蔽真实表结构变化带来的影响保证了数据的独立。
(4) 通过视图用户只能查询和修改他们所能看到的数据,保证了数据的安全。

练手题

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/418775.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用Portainer创建Nginx容器并搭建web网站发布至公网可访问【内网穿透】

文章目录 前言1. 安装Portainer1.1 访问Portainer Web界面 2. 使用Portainer创建Nginx容器3. 将Web静态站点实现公网访问4. 配置Web站点公网访问地址4.1公网访问Web站点 5. 固定Web静态站点公网地址6. 固定公网地址访问Web静态站点 前言 Portainer是一个开源的Docker轻量级可视…

STM32自学☞AD单通道

程序的最终运行成果: 当转动电位器时,数值和电压值发生变化 ad.c文件 #include "stm32f10x.h" #include "stm32f10x_adc.h" #include "ad.h" #include "stdint.h" void ad_Init(void) { /* 初始化步骤:…

Python爬虫——Urllib库-中

编解码 问题引入 例如: https://www.baidu.com/s?wd章若楠 https://www.baidu.com/s?wd%E7%AB%A0%E8%8B%A5%E6%A5%A0 第二部分的一串乱码就是章若楠 如果这里是写的章若楠就会 产生这样的错误 所以我们就可以使用get请求方式的quote方法了 get请求方式的q…

thefour--Love is like a tide

最后一部分了,要开始进行我们的训练了。 先上代码: import os import numpy as np from tqdm import tqdm import tensorflow as tf from thetwo import NeuralStyleTransferModel import theone import thethree #创建模型 modelNeuralStyleTransferM…

从零开始写 Docker(三)---基于 cgroups 实现资源限制

本文为从零开始写 Docker 系列第三篇,在mydocker run 基础上基于 cgroups 实现容器的资源限制。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注…

C# Post数据或文件到指定的服务器进行接收

目录 应用场景 实现原理 实现代码 PostAnyWhere类 ashx文件部署 小结 应用场景 不同的接口服务器处理不同的应用,我们会在实际应用中将A服务器的数据提交给B服务器进行数据接收并处理业务。 比如我们想要处理一个OFFICE文件,由用户上传到A服务器…

紫罗兰栽培养护简单,这些要点多注意——花园传说

紫罗兰,以其独特的芬芳和优雅的花姿,历来备受人们的喜爱。无论是摆放在室内还是庭院中,紫罗兰都能为生活增添一份别样的雅致。那么,如何将紫罗兰成功栽培到家中呢?下面就为大家详细介绍紫罗兰的养殖方法及养护要点。 选…

《Spring Security 简易速速上手小册》第3章 用户认证机制(2024 最新版)

文章目录 3.1 认证流程3.1.1 基础知识详解认证流程的核心概念认证流程的步骤 3.1.2 主要案例:内存用户认证案例 Demo:快速启动你的 Spring Boot 守护程序 3.1.3 拓展案例 1:数据库用户认证案例 Demo:让数据库守护你的秘密 3.1.4 拓…

Django学习笔记-ModelForm使用(完全依赖)

1.创建模型 ,code,name,sex,entrydate 2.模型映射 python manage.py makemigrations myapp01,python manage.py migrate 3.创建模型表单,继承forms.ModelForm,Meta:元数据,models需引入,fields填写引用的模型变量 4.创建testModelForm.html,添加urls 5.views编写testmodelfo…

【Python笔记-设计模式】模板方法模式

一、说明 模板方法模式是一种行为设计模式,就是继承和多态的使用,将通用操作在父类中实现,不同操作的细节在子类中具体实现,父类只声明接口。 (一) 解决问题 减少相似逻辑的重复代码,提高代码复用性提高代码逻辑性&…

深入探讨Python中的os模块:基础大总结与实战【第109篇—os模块】

深入探讨Python中的os模块:基础大总结与实战 在Python编程中,操作系统(os)模块是一个强大的工具,它提供了与操作系统交互的各种功能,使得开发者能够轻松地执行文件和目录操作、获取系统信息以及执行系统命令。在本篇技术博客中&a…

React中对表格实现列表的拖拽排序

1. 效果:推拽手柄列 2. 实现: react中我们需要两个包来实现 ‘array-move’‘react-sortable-hoc’Installation Use npm $ npm install react-sortable-hoc --save 引入 import { arrayMoveImmutable } from array-move import { SortableContainer, SortableElement, Sort…

具身智能计算系统,机器人时代的 Android | 新程序员

【导读】具身智能作为一种新兴的研究视角和方法论,正在刷新我们对智能本质及其发展的理解:传统的 AI 模型往往将智能视为一种独立于实体存在的抽象能力,而具身智能则主张智能是实体与其环境持续互动的结果。 本文深度剖析了具身智能计算系统…

Unity(第十六部)声音和视频

声音 1、听声音 创建相机的时候,相机自带Audio Listener 多个相机的时候,我们只保留一个Audio Listener就可以 2、声音源,环境音 添加Audio Source就行中文叫声音源 3、脚本执行的声音 using System.Collections; using System.Collection…

如何用ai智能写作?推荐5款优秀的AI写作神器

写作是件繁琐的事情,也是需要耗费精力和时间的,还好目前有了ai写作神器的出现,帮助我们解决了不少的写作难题。这些AI写作工具不仅可以帮助我们提高写作效率,还能够生成高质量的内容。在本文中,我将向你推荐5款优秀的A…

CentOS 定时调度

文章目录 一、场景说明二、脚本职责三、参数说明四、操作示例五、注意事项 一、场景说明 本自动化脚本旨在为提高研发、测试、运维快速部署应用环境而编写。 脚本遵循拿来即用的原则快速完成 CentOS 系统各应用环境部署工作。 统一研发、测试、生产环境的部署模式、部署结构、…

深度学习 精选笔记(7)前向传播、反向传播和计算图

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning ①如有冒犯、请联系侵删。 ②已写完的笔记文章会不定时一直修订修改(删、改、增),以达到集多方教程的精华于一文的目的。 ③非常推荐上面(学习参考&#x…

当无人机飞手真的有前途吗?无人机工作怎么找,感觉找不到太难了?无人机飞手未来的出路在哪里?

无人机飞手这个职业的前途很大程度上取决于市场需求和行业发展趋势。随着无人机技术的不断进步和应用领域的扩大,无人机飞手的需求量也在逐渐增加。然而,这个职业的发展也受到政策法规、技术更新换代等因素的影响,因此需要不断学习新技术和适…

Fastjson2 <== 2.0.26反序列漏洞

根据Y4TACKER师傅在2023-03-20发布了一篇关于Fastjson原生反序列化的文章,文章中引入注目的是利用条件限制条件,不常常关注漏洞预警或者内容的几乎都是未发觉Fastjson2 到Fastjson2 2.0.26版本都有问题,其实如果单独去使用一些关键词去搜索&a…

python 小游戏《2048》字符版非图形界面

参考链接: 闲谈2048小游戏和数组的旋转及翻转和转置 目录 2048 一、方阵类 二、随机插入1或2 三、 合并和递增 四、 判断和移动 五、 键盘控制 完整源代码 玩法过程 2048 上回说到2048小游戏中数组的各种旋转、翻转的方法,就是为代码编程作准…