前面几篇分别介绍了安装,可视化软件,数据库简介以及字段类型和约束,本篇文章开始正式开始查询语句的讲解。
内容介绍
本篇文章主要讲解SQL查询基础语法以及其中的一些关键字的用法,其中包括:select,from,where,group by,order by,limit等。
此处强调一句:每句SQL语句的结尾必须以英文分号;或者\g结尾。
select A from B where C;
select A from B where C;
此语法是遵循SQL标准的数据库中都会使用的,这个SQL语句实现了从哪个表查询出满足什么条件的数据,最终展示出来的是这些数据中的哪些字段。
其中from B表示从表名为B的数据表中取数据,
where C表示取出的数据需需要满足C这个条件,
select A表示最终展示的字段是A。
select取出不同的字段数据
select * from info;
这个语句是最最简单的一个查询语句,上面已经说过了from info表示的是从info这个个数据表中获取数据,而 * 在SQL语句中表示获取全部的字段,所以我们在需要一个表中的全部信息的时候就可以使用该语句。
select name from info;
select name, age from info;
这两个SQL语句都是从数据表info中获取单个或多个字段,此处需要注意的是select后面写的是需要获取的字段名,如果是多个字段,字段名和字段名之间需要以英文逗号隔开。
此种没有任何限制的SQL语句会把info表中所有的数据展示出来,但是如果指向展示前多少行就需要用到下面的limit。
limit
limit的作用是限制查询结果返回的数量,常用于分页查询,比如说现在info表中一共有1000行数据,但是我仅仅想查询显示出10行,这个时候我们就可以使用limit,语法如下:
-- limit语法
select * from table_name limit i,n;
-- 例子
select name from info limit 10;
limit后面的参数有两个,第一个参数可以省略不写,如果不写就是默认从第一行开始取出10行。如果limit后面两个参数都写的话,如下行代码:
select name from info limit 2,5;
这个SQL语句表示的是查询5条数据,从下标为2的这一条数据开始,也就是第三条数据开始的5条数据。
limit是针对查询结果进行限制,但是如果想筛选出来符合条件的数据就需要使用where
where
如果需要有条件的从数据表中选取数据,就可以使用where。语法如下:
select * from table_name where 条件;
where后面的条件中可以使用下面的操作符:
操作符 | 描述 |
---|---|
= | 等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
between and | 在某个范围内 |
like | 模糊查询 |
例子:查询姓名为张三的所有信息
select * from info where name='张三';
group by A having B
group by的作用是根据一个或者多个列进行分组,为了大家更好的理解,我们直接上图:现有以下数据
现在想得出每个人对应的总金额,我们就可以使用group by来对客户进行分组,然后对金额进行求和。group by的作用类似于下图
但是MySQL中没有办法输出这样的结果,所以如果想输出,我们需要把后面的price进行求和。
在MySQL中,如果需要求和我们可以使用函数sum(),函数的具体用法会单独写成一篇文章来讲解,咱们来看下SQL语句的写法
select name, sum(price) from info group by name;
having语句通常是和group by语句联合使用,用来过滤group by语句返回的结果集。此处需注意,where不可以筛选分组后的内容。
例子:用户购买总金额超过130的用户
select name, sum(price) from info
group by name having sum(price) > 130;
order by
order by语句用于根据指定的列对select输出的结果进行排序,
order by语句有两个参数 asc和desc,默认排序规则是从小到大,也就是asc,如果需要从小到大可以省略,从大到小则是desc,如果需要一定要指定。
-- 例子:以info表中的id字段进行从大到小排序。
select * from info order by id desc;
总结
本篇介绍了SQL查询语句中最基础的几个语句的用法,语句的用法一定要多练,孰能生巧,另外再次强调:每句SQL语句的结尾必须以英文分号;或者\g结尾。