SQL必知必会笔记(13~16章)

第十三章 创建高级联结

1、别名:缩短SQL语句,允许在一条Select语句中多次使用相同的表

SELECT A.Name, A.Maths, A.English FROM transcript AS A INNER JOIN student_id As B ON A.Name = B.Name;

2、Oracle数据库中没有AS关键字,直接在表名或者列名后加上别名即可

SELECT A.Name, A.Maths, A.English FROM transcript  A INNER JOIN student_id  B ON A.Name = B.Name;

​​​​​​3、联结类型:自联结、自然联结、外联结

4、自联结:针对相同的表进行的连接被称为“自联结”

SELECT A.Name AS name1, B.Name AS name2 FROM transcript AS A JOIN transcript AS B ON A.Name == B.Name

5、外联结

外联结分为主表和从表,在内联结里可以将两个表的数据都列出来,但是外联结会把主表的数据都列出来,如果从表中没有对应的数据,那么输出就会设置为null。

SELECT transcript.English, transcript.Name FROM transcript LEFT JOIN student_id ON student_id.Name = transcript.Name 

eab3c55c0f6d4f61abdbb1b1b0ae9ba7.png

6、不同的数据库管理器不是支持所有的外联结类型,例如SQLite支持左联结,但是不支持右联结类型,MariaDB、MySQL 和 SQLite 不支持 FULL OUTER JOIN 语法

7、外联结的基本形式:左外联结和右外联结。他们之间的唯一的差别是所关联表的顺序。调整FROM或者WHERE子句中表的顺序,左外联结可以转换为右外联结。这两种联结方式可以互换使用。

第十四章 组合查询

1、使用UNION操作符将多条SELECT语句组成一个结果集

2、

SELECT transcript.Maths FROM transcript WHERE transcript.Name = 'Lily'
UNION 
SELECT transcript.Maths FROM transcript WHERE transcript.Name in ('Tom', 'Ben')
这里如果select查询的列数不一致,会报错:

SELECTs to the left and right of UNION do not have the same number of result columns

3、UNION可以进行多条组合,具体条数SQL里没有限制,要看具体的DBMS

4、多条UNION和多个where子句的性能没有明确的区别,要在具体的DBMS和查询条件去对比使用,但是UNION ALL是WHERE无法取代的,如果确实需要每个条件的匹配行全部出现(包括重复行), 就必须使用 UNION ALL,而不是 WHERE

5、UNION规则:

a.UNION 必须由两条或两条以上的 SELECT 语句组成,语句之间用关键字 UNION 分隔(因此,如果组合四条 SELECT 语句,将要使用三个 UNION 关键字);

b.UNION 中的每个查询必须包含相同的列、表达式或聚集函数(不过, 各个列不需要以相同的次序列出);

c.列数据类型必须兼容:类型不必完全相同,但必须是 DBMS 可以隐含 转换的类型(例如,不同的数值类型或不同的日期类型)

第十五章 插入数据

1、插入的方式:插入完整的行、插入行的一部分、插入某些查询的结果
2、插入完整的行
INSERT INTO transcript VALUES('Tony', 99, 97); //按照字段顺序插入
INSERT INTO transcript (Name, Maths, English) VALUES ('Jim', 88, 78);//更推荐方式,列出表字段名称,并按照其顺序插入

3、插入行的一部分

INSERT INTO transcript (Name, Maths) VALUES ('Fox', 79);

这里要注意,未插入的字段在要确保不是非空字段或者索引字段,否则这些字段在INSERT不插入时,SQL语句会报错

4、插入某些查询的结果
INSERT INTO transcript (Name) SELECT Name from student_id WHERE No = 4;
INSERT 和SELECT的组合可以一次性插入多条符合查询到条件的语句。

5、表的内容复制创建

CREATE TABLE transcript_bak AS SELECT * FROM transcript;

第十六章 更新和删除数据

1、更新数据方式:更新表中的所有行;更新表中的特定行
2、更新语句的三个组成部分:要更新的表名;列名和他们的新值;确定要更新哪些行的过滤条件
UPDATE transcript SET Maths = 99 WHERE Name = 'Tom';
要素1:transcript;要素2:Maths = 99; 要素3: Name = 'Tom

3、Update可以结合SELECT查询子句使用

4、删除数据方式:删除表中所有行;删除表中的特定行

5、删除指定行:

DELETE FROM transcript WHERE Name = 'Ball'

两个要素:1、表名transcript;2:条件Name = 'Ball'

6、如果在更新和删除中没有WHERE 条件,就代表针对全表的记录做操作

7、下面是许多 SQL 程序员使用 UPDATE 或 DELETE 时所遵循的重要原则。 

a.除非确实打算更新和删除每一行,否则绝对不要使用不带 WHERE 子句 的 UPDATE 或 DELETE 语句。 

b.保证每个表都有主键,尽可能 像 WHERE 子句那样使用它(可以指定各主键、多个值或值的范围)。 

c. 在 UPDATE 或 DELETE 语句使用 WHERE 子句前,应该先用 SELECT 进 行测试,保证它过滤的是正确的记录,以防编写的 WHERE 子句不正确。 

d. 使用强制实施引用完整性的数据库, 这样 DBMS 将不允许删除其数据与其他表相关联的行。 

e.有的 DBMS 允许数据库管理员施加约束,防止执行不带 WHERE 子句 的 UPDATE 或 DELETE 语句。如果所采用的 DBMS 支持这个特性,应 该使用它

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英码科技携手昇腾共建算力底座:推出EA500I超强AI处理能力边缘计算盒子!

在数字经济浪潮中,算力已成为不可或缺的驱动力,为各行各业的数字化转型提供了强大的推动力。面对多元化和供需不平衡的挑战,需要实现从理论架构到软硬件实现的质的飞跃,以满足持续增长的算力需求,华为昇腾在这一方面展…

VS Code+Live Server插件开发游戏并结合内网穿透分享好友异地访问

文章目录 前言1. 编写MENJA小游戏2. 安装cpolar内网穿透3. 配置MENJA小游戏公网访问地址4. 实现公网访问MENJA小游戏5. 固定MENJA小游戏公网地址 前言 本篇教程,我们将通过VS Code实现远程开发MENJA小游戏,并通过cpolar内网穿透发布到公网,分…

人脸识别基本流程

人脸识别一般包括:人脸检测、人脸对齐、人脸特征提取和人脸比对四个步骤 人脸检测:检测到人脸的位置人脸对齐:同一个人采集到的不同图像可能呈现出不同的姿态和表情等,这种情况是不利于人脸特征提取的。所以有必要将人脸图像都变…

ubuntu系统下c++ cmakelist vscode debug(带传参的debug)的详细示例

c和cmake的debug,网上很多都需要配置launch.json,cpp.json啥的,记不住也太复杂了,我这里使用cmake插件带有的设置,各位可以看一看啊✌(不知不觉,竟然了解了vscode中配置文件的生效逻辑🤣) 克隆…

【PPT密码】ppt设置的编辑密码,如何取消?

不知道大家是否了解PPT文件的编辑密码,首先ppt中没有限制编辑功能,设置为只读模式后仍然可以编辑文件,但其实有一种类似于限制编辑的加密方式。在我们打开PPT文件的时候会有密码输入框。 如果我们没有输入密码,以只读方式进入&…

Linux项目自动化构建工具之make/Makefile演示gcc编译

文章目录 一、背景二、如何使用?三、原理四、关于make的问题五、再次理解/编写makefile依赖关系依赖方法 六、原理讲解项目清理makefile是支持变量的取消执行make后显示命令依赖方法可以多行 一、背景 会不会写makefile,从一个侧面说明了一个人是否具备…

ResizeObserver的使用

这篇说下ResizeObserver API。ResizeObserver接口监视 Element 内容盒或边框盒或者 SVGElement 边界尺寸的变化。 ResizeObserver避免了通过回调函数调整大小时,通常创建的无限回调循环和循环依赖项。它只能通过在后续的帧中处理 DOM 中更深层次的元素来做到这一点…

Yarn常见问题处理

任务出现container OOM异常导致作业失败 原因 Container内存不足或者作业数据倾斜 解决方案 检查Container相关参数,判断是否设置过小(低于4GB)。如果Container小于4GB,优先考虑调大当前作业container大小,如果是Tez任务,还需要同步调整以下参数 # tez container size…

双非本科准备秋招(17.1)—— 力扣二叉树

1、257. 二叉树的所有路径 要求返回根节点到叶子节点的所有路径,这里用前序遍历就好。 每次递归前,都让字符串s加上当前节点的值和“->”,然后判断是否为叶子节点,如果是的话,说明这条路径是一个答案,因…

为啥餐饮界营销频频出圈?媒介盒子分享

回看2023年的营销热点,茶饮界和餐饮行业依然占据了最多的出圈镜头,从麦当劳的“麦门”到海底捞的科目三,许多餐饮和食品品牌都依靠营销策划和巧思成功占据了用户心智。毫无疑问,内容已经成为公认的和用户沟通的最佳手段。今天媒介…

Django的配置文件setting.py

BASE_DIR 项目路径:默认是已经打开的主项目路径 ​​​​​​​BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY 密钥 SECRET_KEY (dh&_fm2hfn9y)35!_6#$a7q%%^onoy#-a8x18r4(6*8f(aniDEBUG 帮助调试,默认…

【EI会议征稿通知】第三届智能控制与应用技术国际学术会议(AICAT 2024)

第三届智能控制与应用技术国际学术会议(AICAT 2024) 2024 3rd International Symposium on Artificial Intelligence Control and Application Technology 2024年第三届智能控制与应用技术国际学术会议(AICAT 2024)定于2024年5月…

Android14之Selinux报错:unknown type qemu_device at token (一百八十三)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

在bash或脚本中,如何并行执行命令或任务(命令行、parallel、make)

最近要批量解压归档文件和压缩包,所以就想能不能并行执行这些工作。因为tar自身不支持并行解压,但是像make却可以支持生成一些文件,所以我才有了这种想法。 方法有两种,第一种不用安装任何软件或工具,直接bash或其他 …

QXlsx Qt操作excel(2)

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件(.xlsx格式)。该库支持多种操作,包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 关于QXlsx的…

动力电池智能工厂数字孪生可视化,助力新能源汽车产业数字化转型

动力电池智能工厂数字孪生可视化,助力新能源汽车产业数字化转型。随着新能源汽车产业的快速发展,动力电池作为新能源汽车的核心组成部分,其生产制造的数字化转型也成为了行业关注的焦点。动力电池智能工厂数字孪生可视化平台作为一种新型的技…

Python中的HTTP代理服务器和客户端的区别与联系

在Python编程中,当我们涉及到网络通信,尤其是HTTP请求时,经常会听到“HTTP代理服务器”和“客户端”这两个词。它们在网络世界中扮演着不同的角色,但又有着紧密的联系。 区别 首先,我们来谈谈它们的区别。 HTTP代理…

阿里云服务器多少钱一年?4核16G10M带宽26元/月

2024年2月阿里云服务器租用价格表更新,云服务器ECS经济型e实例2核2G、3M固定带宽99元一年、ECS u1实例2核4G、5M固定带宽、80G ESSD Entry盘优惠价格199元一年,轻量应用服务器2核2G3M带宽轻量服务器一年61元、2核4G4M带宽轻量服务器一年165元12个月、2核…

vue基本语法总结大全

vue基本语法 文章目录 vue基本语法基本用法内容渲染指令属性绑定指令使用js表达式事件绑定指令条件渲染指令v-else和v-else-if指令列表渲染指令v-for中的key 组件化开发安装详细讲解 第三方组件1. 组件间的传值2. element-ui介绍3. 组件的使用4. 图标的使用 Axios网络请求1. Ax…

15:矩阵按键

矩阵按键 1、 矩阵按键的原理图分析2、 矩阵键盘的工作过程3、编程实战3.1、先通过LED灯进行按键测试3.2、通过静态数码管显示键值 1、 矩阵按键的原理图分析 (1)横向和纵向分割 (2)按键两端分别接不同的IO引脚 (3)按键的物理作用不变:按下接通电路,弹起…