MySQL的所有语句中,我们日常用的最多的其实就是查询语句。因此这篇文章主要介绍查询语句中的一些基础语法。
目录
简单查询
简单条件查询
简单查询
最简单的查询语句的语法如下所示:
SELECT * FROM student;
它的语法解析如下:
- SELECT关键字:表示该语句是个查询语句。
- *:代表查询所有列
- FROM关键字:用来指定查询的位置(你要查哪张表)。
- student:表名
所以这条查询语句的含义是:从student这张表中,查询所有行的所有列的内容并返回结果。
上面这个典型的查询语句其实就代表了简单查询的基本语法规则:SELECT [列名] FROM [表名];
- [列名]:这个位置可以指定你想要查询的列,因为一张表可能包含多列数据,有时候我们只需要其中部分列的信息,此时我们只需要在这个位置写上具体的列名即可。列名的编写规范包括下面几点规则:
- 多个列之间用逗号(半角,也就是英文的逗号)分隔,*号表示查询所有列。
- 最后一个列名后一定不能加逗号,不然会出错
- 列名的表示形式有缩写型和全限定型:
- 缩写型:当要查询的表格只有一个时,可以直接写列名。
- 全限定型:表名.列名,这种表达形式的好处是,限定死了是哪一张表的哪一列;当存在两个表格的列名相同时,不会出现混淆的情况。
- 如下:
SELECT name,age FROM student; SELECT student.name,student.age FROM student;
上面两条语句都表示一样的含义:查询student表中所有行的name和age列的数据,并返回结果。
- [表名]:同上面例子一样,指定我们要从哪一张表中查询数据,多个表之间用逗号隔开。
虽然简单查询的语法很简单,但是有几下几点规范最好遵守:
- 虽然在MySQL中一般不区分大小写,但是关键字最好还是采用全大写的形式。
- 每条SQL语句都必须以分号;结尾。
简单查询的语法非常简洁明了,但是细心的同学可能发现了,它会直接将整张表中所有行的数据都查询出来;而在日常开发环境的大多数情况下,我们都不需要查询出某张表中全部行的数据,而是按照某些特定的条件,从表中找到我们所需要的数据,因此条件查询是查询语句的核心部分,这里我们介绍相对简单的条件查询。
简单条件查询
在讲条件查询之前,我们需要先知道一个概念,那就是 子句:无论是简单的SQL语句还是复杂的SQL语句都是由一个一个的子句组合在一起构成的,有些子句是必须的,有些子句是可选的,一个子句通常由一个关键字和所提供的数据组成,例如我们前面讲的最简单的查询语句SELECT * FROM student;它就是一个SELECT子句,并且这个子句在查询语句中是必不可少的。因此学习SQL的过程,其实就是学习一个个子句的过程,不同的子句有着不同的作用,有着不同的规范和不同的摆放位置,只要我们掌握了这些子句,剩下的就是利用这些子句去灵活的组合,来达到你想要的目的,而这是光看课本无法学会的,需要大量的练习。
首先,条件查询的子句由WHERE关键字和条件组成,它的基本语法是:
SELECT [列名] FROM [表名]
WHERE 条件;
例如下面这条语句:
SELECT * FROM student
WHERE name = '张三';
它的语法解析如下:
- 首先这条SQL语句由两个子句构成
- SELECT子句:必须子句,指明了需要查询的列以及从哪张表格中查
- WHERE子句:可选子句,指明了查询的条件
- 这条子句的含义是:从student表中,找出满足条件name = '张三'的所有的行,并且返回这些行的所有列的信息。
当然,条件查询时,不仅有等值判断,还有许多其它的判断条件,具体可以参照下表:
符号 | 含义 |
---|---|
= | 等于 |
> | 大于 |
>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
!=或<> | 不等于 |
除了这写普通的运算符之外,WHERE子句还支持另外几种关键字形式的运算操作符,分别是逻辑预算关键字AND,OR,NOT以及范围值查找关键字BETWEEN,IN。这些我们会在下一篇文章中介绍。