通常,数据库就如同一个黑匣子,我们输入 SQL 语句给它,它负责反馈执行结果给我们。尤其是 SQL 又是一种入门极简单的语言,使用者只要能看懂英语就能熟练写出增删改查的简单语句,对于刚入门的用户来说肯定感觉是极好的。
在数据量比较少时,用户对数据库操作得比较随意,数据库也不会提出反对意见。但是随着数据量的增加,若是再胡乱地拼凑几个查询,并期望数据库给出一个完美的结果,那只能一首《凉凉》送给你——数据库罢工了。这时用户会查阅手册或者咨询一些资深的 DBA,期望得到一个“合理的解释”,但往往针对特定问题只能得到特定解决方案,下次遇到其他状况仍旧无从下手。
所谓求人不如求己,若用户对一个 SQL 语句进入数据库究竟经历了怎样的历程了如指掌,则可以在书写 SQL 的时候就避免 freestyle,即使遇到问题也能胸有成竹地解决。既然前景如此美好,让我们就从最简单的一个 SQL 语句开始看看,一个 SQL 语句在进入数据库之后,到底经历了什么。
语法分析
要查询一个表中的一部分数据,用最简单的 SELECT 查询就可以了:
SELECT * FROM TEST_A;
这是一个单表查询语句,SELECT 告诉我们这是一个查询操作,FROM TEST_A 告诉我们 TEST_A 是要查询的表,而“*”则表示要输出的内