第01课:SQL 语句的历程

通常,数据库就如同一个黑匣子,我们输入 SQL 语句给它,它负责反馈执行结果给我们。尤其是 SQL 又是一种入门极简单的语言,使用者只要能看懂英语就能熟练写出增删改查的简单语句,对于刚入门的用户来说肯定感觉是极好的。

在数据量比较少时,用户对数据库操作得比较随意,数据库也不会提出反对意见。但是随着数据量的增加,若是再胡乱地拼凑几个查询,并期望数据库给出一个完美的结果,那只能一首《凉凉》送给你——数据库罢工了。这时用户会查阅手册或者咨询一些资深的 DBA,期望得到一个“合理的解释”,但往往针对特定问题只能得到特定解决方案,下次遇到其他状况仍旧无从下手。

所谓求人不如求己,若用户对一个 SQL 语句进入数据库究竟经历了怎样的历程了如指掌,则可以在书写 SQL 的时候就避免 freestyle,即使遇到问题也能胸有成竹地解决。既然前景如此美好,让我们就从最简单的一个 SQL 语句开始看看,一个 SQL 语句在进入数据库之后,到底经历了什么。

语法分析

要查询一个表中的一部分数据,用最简单的 SELECT 查询就可以了:

SELECT * FROM TEST_A; 

这是一个单表查询语句,SELECT 告诉我们这是一个查询操作,FROM TEST_A 告诉我们 TEST_A 是要查询的表,而“*”则表示要输出的内容是 TEST_A 表的所有列的内容。

当用户将语句输入客户端工具(比如 psql)之后,客户端工具会将这个语句发送给数据库服务器,这时候 SQL 语句就进入了黑匣子里面,那么黑匣子如何处理它呢?

首先,黑匣子会通过 Lex 工具对 SQL 语句进行词法分析并产生 to

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值