大家好,作为一名互联网行业的小白,写博客只是为了巩固自己学习的知识,但由于水平有限,博客中难免会有一些错误出现,有不妥之处恳请各位大佬指点一二!
博客主页:链接: https://blog.csdn.net/weixin_52720197?spm=1018.2118.3001.5343
1.简单查询
简单查询只需要通过 SELECT 语句来实现。
1.1. 查询所有字段
1.1.1.指定所有字段
select column_name1, column_name2, ··· , column_namen from table_name;
其 中 ,
“ select ” 为 查 询 数 据 时 必 须 使 用 的 关 键 字 ;
“ column_name1,column_name2, ··· , column_namen”表示表中所有字段的名称,两个字段名之间使用“,”隔开;“table_name”表示要查询的表的名称。
1.1.2. 使用“*”通配符代替所有字段
select * from table_name;
其中,“*”为通配符,在此表示所有的字段。
1.2.查询指定字段
select column_name1, column_name2, ··· from table_name;
1.3.去除重复记录的查询
select distinct column_name1, column_name2, ··· from table_name;
其中,“distinct”为去除查询结果中重复记录时使用的关键字;“column_name1,column_name2, ··· ”表示要去除重复记录的字段名。
1.4.使用算术运算符的查询
1.4.1.使用字段别名的查询
select column_name1 [as] othername1, column_name2 [as] othername2, ··· from table_name;
其中,“column_name1”和“column_name2”表示要查询的字段名;
“as”为可选项,可有可无;
“othername1”和“othername2”分别为字段“column_name1”和
“column_name2”的别名。
1.5.设置数据显示格式的查询
select concat('key:',value, ','key:',value, ','key:',value, ','key:',value, ') info
from 表格名称;
1.6.对查询结果排序
1.6.1.按照指定的单字段排序
select column_name1, column_name2, ··· from table_name order by order_name [asc|desc];
其中,“column_name1”和“column_name2”表示要查询的字段名;
“order_name”表示按照该字段进行排序;
“asc”和“desc”分别表示升序和降序,如果没有指定排序规则,则默认是按照升序(asc)进行排序。
1.6.2.按照指定的多字段排序
select column_name1, column_name2, ··· from table_name order by order_name1[asc|desc], order_name2 [asc|desc], ··· ;
其中,“order_name1”表示查询结果首先按照该字段进行排序,即第一个排序字段;
“order_name2”表示在按照第一个字段排序时,如果遇到值相同的记录,则按照该字段进行排序,即第二个排序字段;以此类推;每个字段需要单独指定排序规则(升序或者降序)。
2. 条件查询
select column_name1, column_name2, ··· from table_name where where_condition;
其 中 , “ where where_condition ” 为 where 子 句 , 用 来 指 定 查 询 条 件 ,
“where_condition”就是指定的查询条件。
2.1.使用比较运算符的查询
2.2.使用[NOT] BETWEEN AND 的范围查询
select column_name1, column_name2, ··· from table_name where column_name[not] between value1 and value2;
其中,“column_name”为指定要进行判断的字段名;
“between value1 and value2”表示字段的值在 value1 和 value2 之间(包括 value1 和 value2);
“not”为可选项,如果使用了 not 则查询的是指定范围之外的所有记录。
2.3.使用[NOT] IN 的指定集合查询
select column_name1, column_name2, ··· from table_name where column_name[not] in (value1, value2, ···);
其中,“column_name”为指定要进行判断的字段名;
“in (value1, value2, ···)”用来判断字段的值是否在(value1, value2, ···)这个集合中;
“not”为可选项,如果使用了 not则查询的是指定集合之外的所有记录。
2.4. 使用 IS [NOT] NULL 的空值查询
select column_name1, column_name2, ··· from table_name where column_name is[not] null;
其中,“column_name”为指定要进行判断的字段名;
“is null”用来判断字段的值是否为空;“not”为可选项,如果使用了 not 则查询的是字段值不为空的所有记录
2.5.使用[NOT] LIKE 的模糊查询
select column_name1, column_name2, ··· from table_name where column_name[not] like value;
其中,“column_name”为指定要进行比较的字段名;
“value”表示要进行匹配的字符串值,value 的值可以是一个完整的字符串,也可是包含有一个或者多个通配符(%或者_)的字符串;“not”为可选项,如果使用了 not 则查询的是字段值与 value 不匹配的所有记录。
2.6.使用 AND 的多条件查询
select column_name1, column_name2, · · · from table_name where
where_condition1 and where_condition2 [and where_condition3 ···];
其中,“where_condition1”、“where_condition2”和“where_condition3”为指定的多个查询条件,不同的查询条件之间使用 and 连接。
2.7.使用 OR 的多条件查询
select column_name1, column_name2, · · · from table_name where
where_condition1 or where_condition2 [or where_condition3 ···];
3. 限制查询
select column_name1, column_name2, ···
from table_name
where where_condition
limit [start_index,] row_count;
其中,“start_index”为可选项,表示显示记录的初始位置;“row_count”表示记录显示的行数
3.1. 不指定初始位置的限制查询
在不指定初始位置的限制查询中,查询结果中的记录会默认从满足条件的第一条记录开始显示,即“start_index”参数的值默认为 0(第一条记录对应的位置为 0,而不是 1)。
3.2.指定初始位置的限制查询
在指定初始位置的限制查询中,需要指定“start_index”参数的值。如果指定的start_index 为 0,则表示从第一条记录开始显示。如果指定的“start_index 为 1”,则表示从第二条记录开始显示,以此类推。
4.使用函数查询
4.1.单行函数
4.1.1.字符串函数
4.1.2.数值函数
4.1.3.日期与时间函数
4.1.4.流程函数
4.2.多行函数
5.分组查询
5.1.简单 GROUP BY 查询
select column_name1[, column_name2, ···]
from table_name
where where_condition
group by column_name3[, column_name4, ···];
其中,“group by”后边可以指定一个或多个字段,如果指定的为一个字段
“column_name3”,表示表示记录将按照该字段进行分组;如果指定的为多个字段
“column_name3”和“column_name4”等,表示记录首先按照字段“column_name3”
进行分组,然后针对每组按照字段“column_name4”进行分组,以此类推。
5.2.GROUP BY 与统计函数
select [column_name1, column_name2, ···,] function1()[, function2(), ···]
from table_name
where where_condition
group by column_name3[, column_name4, ···];
其中,“function1()”和“function2()”表示在分组查询中使用的统计函数。
5.3. GROUP BY 与 HAVING
select [column_name1, column_name2, ···,] function1()[, function2(), ···]
from table_name
where where_condition
group by column_name3[, column_name4, ···]
having group_condition;
其中,“group_condition”表示针对分组的限制条件。