《SQL初学者指南(第2版)》——1.3 关系型数据库

本文涉及的产品
云原生数据库 PolarDB MySQL 版,Serverless 5000PCU 100GB
简介:

本节书摘来自异步社区出版社《SQL初学者指南(第2版)》一书中的第1章,第1.3节,作者:【美】Larry Rockoff,更多章节内容可以访问云栖社区“异步社区”公众号查看。

1.3 关系型数据库

介绍完了这些预备知识,我们来了解一下关系型数据库的基础知识以及它们是如何工作的。关系型数据库就是一个数据集合,它保存了任意多个表。在常见的用法中,术语“关系(relational)”用来表示各个表以某种形式彼此相互关联。然而,更准确地讲,关系指的是数学关系理论,并且和一些逻辑属性相关,而这些逻辑属性负责管理表之间相关的方式。

例如,我们来看数据库的一个简单示例,它只有两个表:Customers表和Orders表。Customers表为每位下订单的客户保存一条记录。Orders表针对每个订单保存一条记录。每个表都可以包含任意多个字段,字段用来存储与每条记录相关的不同属性。例如,Customers表可以保存诸如FirstName和LastName这样的字段。

这时,可视化一些表和表中所包含的数据是很有用的。通常习惯是,把表显示为由行和列组成的一个表格。每一行表示表中的一条记录,每一列表示表中的一个字段。表的顶行通常是字段名。剩余的其他行则显示实际的数据。

在SQL术语中,记录(record)和字段(field)实际上就称为行(row)和列(column),这和视觉上的展示是对应的。因此,今后我们使用术语“行”和“列”来说明关系型数据库中表的设计,而不再使用记录和字段。

我们来看关系型数据库中一个可能的、最简单的示例。在这个数据库中,只有两个表,分别是Customers表和Orders表。这两个表看上去如下所示。

image

在这个示例中,Customers表包含了3个列:CustomerID、FirstName和LastName。目前,表中有3行,分别表示Bob Davis、Natalie Lopez和Connie King。每一行表示一个不同的客户,每一列表示该客户的一段不同的信息。与之类似,Orders表有4行和3列。这表示数据库中有4笔订单,每笔订单有3种属性。

当然,这个示例非常简单,并且只是提示了哪些数据类型可以存储到一个真实的数据库中。例如,Customers表通常会包含描述客户的其他属性的许多附加的列,诸如city、state、zip和phone number。同理,Orders表一般也会有一些描述订单的其他属性的列,诸如order date、sales tax以及接受该订单的salesperson。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
12天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
51 10
|
29天前
|
SQL 存储 BI
【软件设计师备考 专题 】数据库语言(SQL)
【软件设计师备考 专题 】数据库语言(SQL)
90 0
|
1月前
|
SQL 安全 数据库
SQL-Server 数据库部署
SQL-Server 数据库部署
63 0
|
1月前
|
SQL 数据库 数据安全/隐私保护
Sql Server数据库Sa密码如何修改
Sql Server数据库Sa密码如何修改
|
1月前
|
SQL 数据库
sql server中创建数据库和表的语法
sql server中创建数据库和表的语法
18 1
|
12天前
|
SQL 算法 数据库
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
【SQL server】玩转SQL server数据库:第三章 关系数据库标准语言SQL(二)数据查询
74 6
|
1天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
1天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
8天前
|
SQL 数据库
数据库SQL语言实战(二)
数据库SQL语言实战(二)
|
8天前
|
SQL 关系型数据库 数据库
【后端面经】【数据库与MySQL】SQL优化:如何发现SQL中的问题?
【4月更文挑战第12天】数据库优化涉及硬件升级、操作系统调整、服务器/引擎优化和SQL优化。SQL优化目标是减少磁盘IO和内存/CPU消耗。`EXPLAIN`命令用于检查SQL执行计划,关注`type`、`possible_keys`、`key`、`rows`和`filtered`字段。设计索引时考虑外键、频繁出现在`where`、`order by`和关联查询中的列,以及区分度高的列。大数据表改结构需谨慎,可能需要停机、低峰期变更或新建表。面试中应准备SQL优化案例,如覆盖索引、优化`order by`、`count`和索引提示。优化分页查询时避免大偏移量,可利用上一批的最大ID进行限制。
33 3