读SQL学习指南(第3版)笔记04_查询入门

这篇具有很好参考价值的文章主要介绍了读SQL学习指南(第3版)笔记04_查询入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读SQL学习指南(第3版)笔记04_查询入门文章来源地址https://www.toymoban.com/news/detail-667675.html

1. 在执行语句之前,会先检查下列事项

1.1. 是否有权限执行该语句

1.2. 是否有权限访问指定的数据

1.3. 语句的语法是否正确

2. select子句

2.1. select子句是select语句中的第一个子句,但最后才会被数据库服务器评估

2.2. 决定哪些列应该包含在查询的结果集中

2.3. 字面量

2.4. 表达式

2.5. 内建函数调用

2.6. 用户自定义函数调用

2.7. select  version(),database(),user()

2.8. 列的别名

2.8.1. AS是可选项

2.9. 移除重复数据

2.9.1. select后面直接添加关键字distinct来实现

2.10. 关键字all是默认的

2.10.1. 不需要指明

2.10.2. 如果不想让服务器移除重复数据或者确定结果集中不会出现重复数据,可以使用关键字all代替distinct

2.11. 生成一组不同的结果时需要对数据进行排序,这对于大型结果集会很耗时

2.12. 不要陷入为了确保没有重复数据而使用distinct的陷阱,而应该花时间充分理解所处理的数据,以便了解是否可能出现重复数据

3. from子句

3.1. 定义了查询要用到的数据表以及连接数据表的方式

3.2. 宽泛定义的数据表

3.2.1. 永久数据表(使用create table语句创建)

3.2.2. 派生数据表(由子查询返回并保存在内存中的行)

3.2.2.1. 子查询由一对小括号包围,可以出现在select语句的各个部分中

3.2.2.2. 子查询的作用在于生成其他所有查询子句中可见的派生数据表,以及与from子句中的其他数据表交互

3.2.3. 临时数据表(保存在内存中的易失数据)

3.2.3.1. mysql

   -> CREATE TEMPORARY TABLE actors_j
    ->  (actor_id smallint(5),
    ->   first_name varchar(45),
    ->   last_name varchar(45)
    ->  );

3.2.3.2. 临时保留在内存中,会话结束后就消失了

3.2.3.3. Oracle Database是一个例外,它会保留临时数据表定义,以备后续会话使用

3.2.4. 虚拟数据表(使用create view语句创建)

3.2.4.1. 视图是存储在数据目录中的查询,其行为表现就像数据表,但是并没有与之关联的数据(这就是将其称为虚拟数据表的原因)

3.2.4.2. 创建视图时,不会生成或存储额外的数据

3.2.4.3. 服务器只是保留select语句,以备后用

3.2.4.4. 创建视图的原因各种各样,包含对用户隐藏列、简化复杂的数据库设计

4. 数据表链接

4.1. 如果from子句中出现多个数据表,则必须包含用于链接(link)这些数据表的条件

4.2. 定义数据表别名

4.2.1. 使用完整的数据表名称

4.2.2. 为每个数据表指定别名,在查询中使用该别名

4.2.3. 使用别名可以在不造成困惑的情况下(只要选择合理的别名)编写出更紧凑的语句

5. where子句

5.1. 一种机制,用于过滤掉结果集中不想要的行

5.2. 在混用不同的运算符时,应该坚持使用括号对条件进行分组

5.2.1. 以便你自己、数据库服务器和后续人员都能够意见统一地修改代码

6. group by和having子句

6.1. 在返回结果集之前对数据进行处理,以便发现数据呈现的规律

7. order by子句

7.1. 使用原始列数据或基于列数据的表达式对结果集进行排序的一种机制

7.2. 可以通过关键字asc和desc来指定升序排序或降序排序

7.3. 默认为按照升序排序,如果希望按照降序排序,需要加入desc关键字

7.4. 降序排序多用于评级查询

7.5. MySQL提供了limit子句以允许对数据进行排序,然后只保留前X行

7.6. 比如“显示余额最多的前5个账户”

7.7. 通过数字占位符进行排序

7.7.1. 查询使用select子句中的第3列,按照降序进行排序

7.7.2. mysql

   -> SELECT c.first_name, c.last_name,
    ->   time(r.rental_date) rental_time
    -> FROM customer c
    ->   INNER JOIN rental r
    ->   ON c.customer_id = r.customer_id
    -> WHERE date(r.rental_date) = '2005-06-14'
    -> ORDER BY 3 desc;

7.7.3. 在编写临时查询的时候使用位置引用列

7.8. 在编写代码时,则坚持按照名称引用列

到了这里,关于读SQL学习指南(第3版)笔记04_查询入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 读SQL学习指南(第3版)笔记08_视图和索引

    3.1.3.1. Oracle Database用户另一种选择可以保护数据表的行列数据安全 3.1.3.2. VPD允许用户对数据表施加策略,服务器据此对用户的查询进行修改 5.10.4.1. sql 5.12.1.1. 平衡树索引(balanced-tree index) 5.12.1.1.1. B树索引(B-tree index) 5.12.1.2. MySQL、Oracle Database和SQL Server均默认采用B树

    2024年02月10日
    浏览(32)
  • 读SQL学习指南(第3版)笔记06_连接和集合

    1.1.2.1. 两个数据表的所有排列组合 1.1.3.1. 使用频率并不高 1.1.5.1. 涉及交叉连接、外连接、日期函数、分组、集合运算(union all)和聚合函数(count()) 1.1.5.2. sql 1.1.5.3. mysql 1.1.5.4. 如果生成{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}、{0, 10, 20, 30, 40, 50, 60, 70, 80, 90}和{0,100, 200, 300}这3个集合的

    2024年02月11日
    浏览(21)
  • 读SQL学习指南(第3版)笔记09_条件逻辑与事务

    1.3.1.1. Oracle的decode()函数 1.3.1.2. MySQL的if()函数 1.3.1.3. SQL Server的coalesce()函数 1.3.2.1. 在Oracle Database、SQL Server、MySQL、PostgreSQL、IBM UDB等数据库中实现 1.3.3.1. 用于select、insert、update和delete语句 1.3.4.1. sql 1.3.4.2. mysql 1.3.5.1. simple case expression 1.3.5.2. 类似于搜索型case表达式,但

    2024年02月10日
    浏览(29)
  • 读SQL学习指南(第3版)笔记12_时间函数和分析函数

    1.6.3.1. SQL Server的getutcdate() 1.6.3.2. MySQL的utc_timestamp() 1.8.2.1. 对于每个登录的用户可能有所不同 1.8.2.2. 改变当前会话的时区设置 1.8.2.3. mysql> SET time_zone = \\\'Europe/Zurich\\\'; 2.4.1.1. 年份,包括世纪 2.4.1.2. 1000--9999 2.4.2.1. 月份 2.4.2.2. 01 (1月)~12 (12月) 2.4.3.1. 日 2.4.3.2. 01~31 2.4.4.1

    2024年02月10日
    浏览(30)
  • 读SQL学习指南(第3版)笔记10_元数据与大数据

    1.3.19.1. system catalog 5.7.2.1. 服务器会检查数据表的元数据,以确定实际需要包含哪些分区 5.7.3.1. 只有那些包含查询所需数据的分区才会被包含在内 5.7.4.1. 财务数据可能需要在线保存7年,如果数据表已根据事务日期进行分区,就可以撤销数据保存时长超过7年的分区 5.9.1.1. 

    2024年02月10日
    浏览(30)
  • 读SQL学习指南(第3版)笔记03_创建和填充数据库

    3.2.3.1. ALTER TABLE person MODIFY person_id SMALLINT UNSIGNED AUTO_INCREMENT; 5.4.3.1. sql 5.4.3.2. %a 星期几的简写,比如Sun、Mon、... 5.4.3.3. %b 月份名称的简写,比如Jan、Feb、... 5.4.3.4. %c 月份的数字形式(0…12) 5.4.3.5. %d 月份中的天数(00…31) 5.4.3.6. %f 微秒数(000000…999999) 5.4.3.7. %H 24小

    2024年02月11日
    浏览(37)
  • 读SQL学习指南(第3版)笔记11_字符串函数和数值函数

    2.5.3.1. SQL Server 2005还包括varchar(max)数据类型,并建议使用其代替text类型,text类型将在未来的某个版本中被删除 2.9.7.1. 如果使用的是MySQL,可以通过内建函数quote()来实现,该函数会将整个字符串放入引号内并对其中任意的引号/撇号进行转义 2.9.7.2. mysql 2.9.7.3. 在检索数据用

    2024年02月10日
    浏览(35)
  • Vue3入门指南:零基础小白也能轻松理解的学习笔记

    配置 node.js 15.0 命令行创建命令 npm init vue@latest cd 项目名 npm install npm run dev cnpm下载方法,更快 设置 VSCode 自动保存 官方教程 VSCode + Volar 格式化代码:Shift + Alt + F .vscode:VSCode工具的配置文件 node_modules:Vue项目运行的依赖文件 public:资源文件夹(浏览器图标) src:源码文件

    2024年02月06日
    浏览(33)
  • 《TPM原理及应用指南》学习 —— TPM执行环境0

    本文对应《A Practical Guide to TPM 2.0 — Using the Trusted Platform Module in the New Age of Security》的第6章概述。 Future chapters in this book present code examples to illustrate concepts. In order for you to be able to build and run these code examples, this chapter describes how to set up an execution environment and build TPM 2.0 sample a

    2024年02月12日
    浏览(30)
  • 【机器学习学习】第一天:入门指南

    引言 当今社会,机器学习技术已经被广泛应用于许多领域,如自然语言处理、图像处理和金融分析等。然而,机器学习这一领域需要掌握大量的数学知识和编程技能,因此对于初学者来说,可能会感到非常困难。本文将为初学者提供一份机器学习入门指南,帮助他们了解机器

    2024年02月02日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包