<Learning SQL> O'REILLY_Chap. 3_查询入门

OReilly.Learning.SQL.Aug.2005.pdf OReilly.Learning.SQL.Aug.2005.pdf 英文版本,chm格式转化的,包含目录 立即下载

<Learning SQL> O’REILLY_Chap. 3:查询入门

本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容.

FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性.

FollowMeReading系列的博客标题格式为: <书名> 出版社章节数章节名, 方便大家在纸质版书籍中查找.

FollowMeReading系列博文中的内容大部分是原文, 非原文部分前面将有’博主’字样提醒.

感谢<Learning SQL>作者 [美]Alan Beaulieu
感谢<Learning SQL>翻译 张伟超 林青松

正文

查询机制

原文

  • 首先打开mysql命令行工具, 然后使用用户名和密码登录.
  • 一旦服务器通过对用户名和密码的验证, 则为用户创建了一个数据库连接, 该连接从应用程序(即mysql)发出请求后一直保持, 直到应用程序释放连接(如输入quit命令)或者服务器关闭连接(如服务器关机). mysql服务器会给每个连接赋予一个标识符.
scott:~ scott$ mysql -u root -p
Enter password: 

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.11 MySQL Community Server (GPL)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
  • 在服务器验证完用户名和密码, 并且创建连接后, 用户就可以执行查询了. 每当查询被发送到服务端是, 服务器在执行语句之前将会进行下面的查询:

    • 用户是否有权执行该语句?
    • 用户是否有权限访问目标数据?
    • 语句的语法是否正确?
  • 如果查询语句通过了这 3 个测试, 就会被传递给查询优化器, 它负责为查询找到最有效率的执行方式. 优化器通常会做诸如from子句后面各表的连接顺序, 或是可以使用哪些索引之类的工作, 然后选择一个执行方案, 以供服务器执行该查询.

  • 当服务器执行完查询之后, 将会向调用程序(mysql工具)返回一个结果集.

查询语句

原文
query子句

子句名称使用目的
select确定结果集中应该包含哪些列
from指明所要提取数据的表, 以及这些表示如何连接的
where过滤不需要的数据
group by用于对具有相同列值的行进行分组
having过滤掉不需要的组
order by按一个或多个列, 对最后结果集中的行进行排序

select子句

原文
尽量select子句是select语句中的第一个组成部分, 但实际上在数据库服务中, 它是最后被评估的.

原文
select子句的作用概括如下:select子句用于在所有可能的列中, 选择查询结果集要包含哪些列.

列的别名

原文
尽管mysql命令行工具为查询所返回的每个列表提供了默认标签, 但或许你希望使用自己定义的标签. 通过在select子句中的每个元素后面增加列别名可以实现此目的.

SELECT emp_id,
  'ACTIVE' status,
  emp_id * 3.1415926 empid_x_pi,
  UPPER(lname) last_name_upper
FROM employee;

/* 上述命令的status, empid_x_pi, last_name_upper就是列的别名. */

去除重复的行

原文
在某些情况下, 查询可能会返回重复的行数, 此时可以在select关键字之后加上distinct关键字.

SELECT DISTINCT cust_id
FROM account;

原文
如果你并需要服务器删除重复的数据, 或者你确信结果集中不会包含重复记录, 那么可以指定ALL关键字来替代DISTINCT关键字. 不过ALL关键字是系统默认的, 不需要被显式地列出.

警告(原文)
注意产生无重复的结果集需要首先对数据排序, 这对于大的结果集来说是相当耗时的. 因此不要为了确保去除重复行而随意的使用DISTINCT, 而是应该先了解所使用的数据是否可能包含重复行, 以减少对DISTINCT的不必要的使用.


from子句

原文
from子句定义了查询中所使用的表, 以及连接这些表的方式

表的感念

原文
当使用术语”表”的时候, 大多数人联想到的是存储在数据库中关联行的集合, 但这些实际上知识表的类型之一而已, 我们可以使用更广泛的方式使用这个术语, 去除其中蕴含的”被存储的数据”的含义, 而仅仅考虑其关联行集合的含义. 因此在对”表的”宽泛的定义下, 存在3种类型的表:
* 永久表 (使用 create table 语句创建的表).
* 临时表 (子查询所返回的表).
* 虚拟表 (使用create view 子句所创建的视图).

这3种类型的表都可以在查询的from子句中使用.

子查询产生的表
/* 本例中, 针对employee表的子查询返回5个列, 而外围的查询获取其中的3个列, 在外围查询中, 通过别名(e)来引用子查询. */
SELECT e.emp_id, e.fname, e.lname
FROM (SELECT emp_id, fname, lname, start_date, title FROM employee) e;
视图

原文
视图是存储在数据字典中的查询, 它的行为表现得像一个表, 但实际上并不拥有任何数据(因此称为虚拟表). 当发出一个对视图的查询时, 该查询会被绑定到视图定义上, 以产生最终被执行的查询.

/* 首先定义一个查询employee表的视图. */
CREATE VIEW employee_view AS
  SELECT emp_id, fname, lname,
    year(start_date) start_year
  FROM employee;

当视图被创建后, 并没有产生或存储任何数据, 服务器只是简单的保留该查询以供将来使用

/* 对视图进行查询. */
SELECT  emp_id, start_year
FROM employee_view;
【八股】JUC并发编程篇 👉抽象队列同步器,就是一种锁,内部维护的是一个先进先出的双向队列,队列中存储的是排队的线程,用state来标识是否有线程获得锁【0是无锁状态】👉流程:当一个线程拿到锁后会修改state = 1,这时如果有其他线程访问则会进入队列进行排序,直到state变成0后,队头线程才会拿到锁。在对state进行修改时,用的是CAS操作,所以可以保证原子性。👉它可以实现公平锁或非公平锁【默认】,上述是一个公平锁。如果新线程和队头线程抢锁资源就是非公平锁。 阅读详情

相关推荐

Argoverse2数据集保姆级导入教程:从下载到预处理全流程解析

本文详细解析了Argoverse2数据集的完整导入流程,从环境配置、数据下载到预处理和高效加载策略。作为自动驾驶领域的标杆数据集,Argoverse2提供多模态传感器数据和高精地图信息,帮助研究者快速搭建数据处理流水线。文章包含实用代码示例和性能优化技巧,特别适合自动驾驶算法开发者参考。

weixin_29035405的博客 334

<Learning SQL> O'REILLY_Chap. 1_背景知识

<Learning SQL> O’REILLY_Chap. 1_背景知识 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeReading系列的博

Sponge_CMZ的博客 599

文献阅读笔记:量子微波测量技术综述

量子微波测量技术研究进展:量子微波测量技术利用里德堡原子与微波电场的相干相互作用,突破了传统测量方法的物理限制。该技术基于电磁诱导透明效应和里德堡原子能级跃迁原理,通过激光激发原子并监测光谱变化来测量微波电场强度。相比传统方法,量子微波测量具有超高灵敏度(理论极限可达nV/cm)、宽动态范围(超过100dB)、小型化等显著优势,且测量结果可直接溯源至普朗克常数。典型实验系统包括光源、原子气室和探测器,采用光谱法、干涉法等多种测量方法。近年来,该技术在基础研究和应用方面取得重要进展,展现出在通信、雷达、计量等

Grow into a more wonderful you 988

JavaScript字符串单引号和双引号的使用

在JavaScript程序中的字符串直接量, 是由单引号或双引号括起来的字符序列. 由单引号定界的字符串中可以包含双引号, 由双引号定界的字符串中也可以包含单引号.需要注意的是, 当使用单引号来定界字符串时, 需要格外小心英文中的缩写和所有格写法, 比如can’t和O’Reilly. 因为撇号和单引号是同一个字符, 所以必须使用反斜线()来转义所有的撇号.在客户端JavaScript程序设计中, J

Sponge_CMZ的博客 2262

oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权

oscp备考,oscp系列——Djinn3靶场:ssti漏洞,pkexec提权难度简单偏上对于低权限shell获取涉及:ssti漏洞对于提权:pkexec提权。

2202_75361164的博客 633

比例导引算法详解:从理论到Matlab实现(含3D轨迹可视化)

本文深入解析比例导引算法(PNG)的数学原理与Matlab实现,涵盖3D轨迹可视化技术。从基础运动学模型到导航比优化,详细讲解导弹拦截系统的核心算法,并提供Matlab代码示例,帮助读者掌握从理论到实战的全流程。

weixin_33725722的博客 548

HTML里嵌入JavaScript方式中的脚本类型

JavaScript是Web的原始脚本语言,而在默认情况下,假定<script>元素包含或引用JavaScript代码。如果要使用不标准的脚本语言,如Microsoft的VBScript (只有IE支持),就必须用”type”属性指定脚本的MIME类型:<script type="text/vbscript"> // 这里是VBScript代码 </script>”type”属性的默认值是“

Sponge_CMZ的博客 1920

(OSTrack)Joint Feature Learning and Relation Modeling for Tracking A One-Stream Framework

Joint Feature Learning and Relation Modeling for Tracking A One-Stream Framework (OSTrack)

小火山的博客 1653

<HeadFirst_HTML与CSS> O'REILLY_Chap.8_增加字体和颜色样式

<HeadFirst_HTML与CSS> O’REILLY_Chap.8_增加字体和颜色样式 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeR

Sponge_CMZ的博客 663

STM32H7 FOC控制时序优化与PWM中点更新策略

在永磁同步电机(PMSM)的磁场定向控制(FOC)系统中,控制时序精度是决定电流环带宽、观测器收敛性与动态响应能力的基础要素。其核心在于理解PWM生成、ADC采样与控制计算三者之间的硬件级时间耦合关系——尤其在中心对齐模式下,标准更新机制引入的半周期延迟会破坏电压-电流瞬时映射,导致滑模观测器失配与高频相位滞后。通过将PWM更新事件绑定至重复计数器(RCR)清零点,可实现控制指令在开关周期中点生效,使等效电压矢量中心与计算时刻严格对齐。该策略显著提升系统确定性,为20 kHz以上高频电流环提供物理支撑,并广

flink9streamer的博客 857

飞牛fnNAS个人小账本导入微信账单

本文介绍了将微信支付账单导入ezBookkeeping个人记账系统的详细方法。首先通过微信申请导出账单文件,接收后需进行Excel预处理:删除前导行、添加账户和分类列、整理金额格式等。在ezBookkeeping中需预先设置"微信"分类和账户。导入时需注意列映射关系,包括交易时间、账户名称等关键字段的对应设置。文章还提到处理交易标签、格式转换等细节问题,并建议避免使用"修改余额"功能。该方法同样适用于支付宝账单导入,解决了直接导入可能出现的格式不兼容问题。

dgnankai的专栏 482

<HeadFirst_HTML5> O'REILLY_Chap.6_与Web交流

<HeadFirst_HTML5> O’REILLY_Chap.6_与Web交流 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeReading

Sponge_CMZ的博客 636

基于 C# 实现 RTSP 摄像头监控分屏系统:从流媒体获取到多画面显示

通过本文的讲解,我们介绍了如何在 C# 中实现 RTSP 摄像头监控分屏系统。我们使用了FFmpeg和VLC两种不同的方法来获取和解码 RTSP 流,并通过PictureBox控件和控件实现了分屏布局。两种解码方案都非常强大,可以根据实际需求选择最适合的方案。通过这种方式,您可以轻松地在 C# 中集成 RTSP 流,并将多个摄像头的视频流实时显示在同一屏幕上,进行监控和分析。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 2307

<HeadFirst_HTML与CSS> O'REILLY_Chap.14(完)_HTML表单

<HeadFirst_HTML与CSS> O’REILLY_Chap.14(完)_HTML表单 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMe

Sponge_CMZ的博客 635

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

<HeadFirst_jQuery> O'REILLY_Chap.4_jQuery Web页面管理

<HeadFirst_jQuery> O’REILLY_Chap.4_jQuery Web页面管理 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. Follow

Sponge_CMZ的博客 561

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

<HeadFirst_jQuery> O'REILLY_Chap.5_jQuery 效果和动画

<HeadFirst_jQuery> O’REILLY_Chap.5_jQuery 效果和动画 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMe

Sponge_CMZ的博客 551

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

<HeadFirst_jQuery> O'REILLY_Chap.1_jQuery入门

<HeadFirst_jQuery> O’REILLY_Chap.1_jQuery入门 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeRead

Sponge_CMZ的博客 549

<HeadFirst_HTML与CSS> O'REILLY_Chap.7_CSS入门

<HeadFirst_HTML与CSS> O’REILLY_Chap.7_CSS入门 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeReadi

Sponge_CMZ的博客 536

<HeadFirst_HTML与CSS> O'REILLY_Chap.4_连接起来

<HeadFirst_HTML与CSS> O’REILLY_Chap.4_连接起来 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeReadin

Sponge_CMZ的博客 533

<HeadFirst_HTML与CSS> O'REILLY_Chap.13_表格与更多列表

<HeadFirst_HTML与CSS> O’REILLY_Chap.13_表格与更多列表 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeRe

Sponge_CMZ的博客 533

<HeadFirst_HTML与CSS> O'REILLY_Chap.2_认识HTML中的"HT"

<HeadFirst_HTML与CSS> O’REILLY_Chap.2_认识HTML中的”HT” 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. Follow

Sponge_CMZ的博客 525

<HeadFirst_HTML与CSS> O'REILLY_Chap.12_HTML5标记

<HeadFirst_HTML与CSS> O’REILLY_Chap.12_HTML5标记 本博客的FollowMeReading系列初衷是在线的读书笔记. 为方便后期查阅, 故写成博客形式, 使用关键字查询便可以快读的找到相关的内容. FollowMeReading系列所选的书籍一般选自O’REILLY或Apress出版社, 尽量保证笔记内容的权威性. FollowMeRe

Sponge_CMZ的博客 523

SQL并行执行的机制解析与计划调控实践

并行执行是大数据量场景的核心提速手段,但用错代价极高。本文从问题边界讲起,梳理并行度的确定层级、优化器生成并行计划的逻辑、数据再分布与通信代价、倾斜成因与识别方法,覆盖表设计、索引策略、并行DML、RAC调度与参数取舍,配合三个真实失败案例与诊断步骤,给出一套可落地的并行治理流程与误区清单。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 748

Flink SQL 连接器实战:MySQL Source、Flink CDC 与 JDBC Sink 全解析

提供有界流读取,适合批处理和维表场景,简单直接但无法感知变更。MySQL CDC提供无界流读取,通过「全量快照 + binlog 增量」的方式实现实时捕获,是实时数仓的核心入口,但需要 MySQL 侧正确配置 binlog 和权限。JDBC Sink负责结果回写,关键在于区分仅插入流和更新流,更新流必须依赖主键完成 upsert。掌握这三者的差异,本质上就是掌握了 Flink 中「有界与无界」「追加与更新」这两组最基本的语义。

2401_83857914的博客 430

云数仓向PostgreSQL生态延伸的技术动因与工程代价

Snowflake以2.5亿美元收购Crunchy Data,把云数仓的触角伸向PostgreSQL生态。本文从负载补齐、元数据标准化与AI应用低延迟读写三个切面拆解收购动机,逐层分析列存与行存的能力边界、存算分离下引入事务负载的提交延迟预算、逻辑复制的接缝风险、元数据统一与混合负载隔离冲突,并给出迁移落地的分阶段验收清单与七个典型误区,最后提供评估厂商PostgreSQL能力的六项观察指标。

搞定过:百亿级数据、万级QPS、零宕机、AI工业化。 440

记一次Sql Server2012免费版如何升级到2016企业版本

本文记录了将SQL Server 2012免费版升级至企业版的完整流程,重点解决因版本限制导致无法使用代理功能的问题。通过加载ISO安装包,选择从旧版本升级,完成功能安装与实例配置后,需手动启用“代理XP”并检查服务状态。若代理仍异常,需通过安装程序添加“SQL Server代理”组件,最终实现企业版功能完整启用。

qq_57492774的博客 156
上一篇: <Learning SQL> O'REILLY_Chap. 1_背景知识
下一篇: <HeadFirst_HTML5> O'REILLY_Chap.1_认识HTML5
CaoYuan_CIKU
博客等级 码龄11年 40粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值