图解SQL基础知识,小白也能看懂的SQL文章!

关系模型

关系模型(Relational model)由 E.F.Codd 博士于 1970 年提出,以集合论中的关系概念为基础;无论是现实世界中的实体对象还是它们之间的联系都使用关系表示。我们在数据库系统中看到的关系就是二维表(Table),由(Row)和(Column)组成。因此,也可以说关系表是由数据行构成的集合。

SELECT

下面是一个简单的查询语句:

SELECT employee_id, first_name, last_name, hire_date
  FROM employees;

它的作用就是从 employees 表中查询员工信息。
显然,我们都知道 FROM 之后是一个表(关系、集合)。不仅如此,整个查询语句的结果也是一个表
所以,我们可以将上面的查询作为表使用:

SELECT *
  FROM (SELECT employee_id, first_name, last_name, hire_date
          FROM employees) t;

括号内的查询语句被称为派生表,我们给它指定了一个别名叫做 t。同样,整个查询结果也是一个表;这就意味着我们可以继续嵌套,虽然这么做很无聊。
我们再看一个 PostgreSQL 中的示例:

-- PostgreSQL
SELECT *
  FROM upper('sql');
| upper |
|-------|
| SQL |

upper() 是一个大写转换的函数。它出现再 FROM 子句中,意味着它的结果也是一个表,只不过是 1 行 1 列的特殊表
SELECT 子句用于指定需要查询的字段,可以包含表达式、函数值等。SELECT 在关系操作中被称为投影(Projection),看下面的示意图应该就比较好理解了。

https://mp.weixin.qq.com/s/ES9o7MC-mREXivwjDMRmXw

https://www.cnblogs.com/ztfjs/p/15321207.html

posted @   Bonnie_ξ  阅读(171)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示