<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;
uni-app蓝牙MTU设置失效探因:从20字节限制到跨设备兼容性实战 本文深入探讨了uni-app蓝牙开发中MTU设置失效的常见问题,特别是20字节限制的成因及解决方案。通过分析设备兼容性、蓝牙协议栈特性和系统版本差异,提供了智能延迟策略、设备特征检测和渐进式MTU提升等实战方案,帮助开发者优化蓝牙数据传输效率。 阅读详情

相关推荐

Vienna整流器双PI闭环仿真:从SVPWM调制到中点电位平衡的实践解析

本文深入解析Vienna整流器双PI闭环仿真技术,涵盖SVPWM调制和中点电位平衡的实践细节。通过详细的MATLAB/Simulink仿真搭建流程和常见问题排查方法,帮助工程师掌握高效整流器控制策略,提升系统稳定性和动态响应性能。

weixin_29168153的博客 326

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

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

Sponge_CMZ的博客 599

Stm32L0 STM32CUBE中UART和使用LPUART1以及串口不进中断问题解决

/* 开启串口1中断 */ LL_USART_EnableIT_RXNE(LPUART1); /* 开启串口2中断 */ LL_USART_EnableIT_RXNE(USART2);

シ❤゛甜虾的个人博客 7686

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

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

Sponge_CMZ的博客 2262

三相电机控制中的端电压、相电压与线电压波形解析

本文深入解析了三相电机控制中端电压、相电压与线电压的核心概念与波形差异。通过对比方波控制、SPWM和SVPWM三种主流控制策略下的实测波形特征,揭示了不同控制逻辑对电压波形(如梯形波、正弦波、马鞍波)的影响。文章重点阐述了SVPWM控制如何通过生成马鞍波形端电压来提高直流母线电压利用率,并提供了实用的波形测量与调试指南,帮助工程师深入理解电机控制原理并进行有效调试。

qsc901234567的博客 1396

ADNI数据集下载(详细)

刚刚接触到这个数据集的时候比较头疼,用了好长的时间才把下载过程和预处理过程弄明白。需要发送电子邮件给官方平台,收到回信后才能够下载到数据集。 1、ADNI账号注册 第一步:搜索百度打开ADNI 第二步,点击ADTA&amp;amp;SAMPLES 第三步:一直将鼠标往下拉 点击ADNI,进入里面填写信息。需要填写的信息还是挺多的,耐心填写,再等到邮件回复就可以了 2、ADNI数据集下载 登录申请的邮...

蜗牛遥遥 3万+

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

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

Sponge_CMZ的博客 1920

LLVM 编译器学习笔记之三十六-- 指令调度Instruction scheduling

1、参考Instruction scheduling in LLVM - 知乎,在中后端均存在指令调度 指令调度模型 2、在llvm12->llvm14 中Machine Instruction Scheduler有个patch增强了load/store指令的合并,也就是指令调度不仅仅只是改变指令的顺序,该优化类似gcc中的store-merge优化 .....................................................................

~ 飞 扬 的 天 空 ~ 5687

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

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

Sponge_CMZ的博客 663

YOLOv11【第一章:零基础入门篇·第10节】YOLOv11项目实战:从零搭建检测系统!

🏆 本文收录于专栏 《YOLOv11实战:从入门到深度优化》。本专栏围绕 YOLOv11 的改进、训练、部署与工程优化 展开,系统梳理并复现当前主流的 YOLOv11 实战案例与优化方案,内容目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。

**My Coding Family** 5769

VCS NLP 低功耗验证系列(六):功耗分析与优化——SAIF 报告与验证效率提升

本文是VCS NLP低功耗验证系列的第六篇,主要解决功耗数据采集和验证效率优化问题。文章首先介绍了SAIF(Switching Activity Interchange Format)文件在功耗分析中的作用,详细讲解了VCS的Region-Based SAIF功能,包括三个关键系统任务($saif_region_create、$saif_region_exclude、$saif_region_monitor)的使用方法和工程实践建议。接着从编译侧、运行侧和方法学侧三个维度提出了NLP验证效率优化策略,特别强

元直的博客 470

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

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

Sponge_CMZ的博客 636

07 Zabbix 微信告警

Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员 2.2创建应用 2.3 获取四项数据 (1)AgentID (2) Secret (3) 企业ID (4)部门ID 3.Zabbix Server配置 3.1确认脚本目录 # grep alertscripts /etc/zabbix/zabbix_server....

Jian Sun_的博客 1297

<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

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

<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

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

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

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

Sponge_CMZ的博客 551

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

<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工业化。 749

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

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

2401_83857914的博客 431

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

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

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

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

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

qq_57492774的博客 168
上一篇: <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、付费专栏及课程。

余额充值