数据库原始表
user_info表格
school表格
语句
1、Group by(分组)
1.1、作用:将查询到的结果进行分组,即根据 By 后面的字段将相同的内容进行合并
1.2、语法格式:SELECT 字段名 FROM 表名 GROUP BY 字段名
1.3、例句:SELECT country FROM user_info GROUP BY country
例句讲解:在 user_info 表中查询 country字段,并根据country进行分组显示(即:将country字段中相同的值进行合并然后分别显示)
1.5、注释:GROUP BY大多跟聚合函数一起使用,可用来统计同组内容的数量、总数等数据
演示示例1(GROUP BY查询)
演示实例2(GROUP BY与聚合函数组合)
2、Having(筛选)
2.1、作用:对查询到的数据进行进一步的筛选
2.2、语法格式 :SELECT 字段名 FROM 表名 GROUP BY 字段名 HAVING 条件
2.3、例句: SELECT country ,sum(age) FROM user_info GROUP BY country HAVING sum(age) > 35
例句讲解:查询总共年龄大于35的城市,显示城市名称和总共年龄
2.4、注释:(1)HAVING通常与GROU BY配合使用,其弥补了GROUP BY和WHERE不能配合使用的缺陷
(2)Having是对 已经查询到的数据进行进一步筛选,所以所针对的数据也是上一步查询得到的数据,
(3)与where的不同:where后面的条件需要是数据库中存在的属性值,having可以是查询出来的结果,比如count、max等,对这些结果做进一步筛选
演示示例
3、Limit(限制)
3.1、作用:对查询到的结果进行限制显示
3.2、语法格式:SELECT 字段名 FROM 表名 LIMIT m (显示M条数据)
SELECT 字段名 FROM 表名 LIMIT m,n (显示第m+1~第n+1条数据)
3.3、例句:SELECT * FROM user_info ORDER BY tall ASC LIMIT 1,3
例句讲解:按照身高升序排列进行查询,按照查询加过只显示第2~4条数据
3.4、注释:数据库中语句中的序号是从0开始的
演示示例
4、IN(多值查询)
4.1、作用:允许WHERE子句中出现多个值进行查询
4.2、语法格式:SELECT * FROM 表名 WHERE IN (条件1,条件2......)
4.3、例句:SELECT * FROM user_info WHERE user_name IN ("萨达","多多")
例句讲解:查询用户名为萨达、多多的用户信息
演示示例
5、BETWEEN(范围查询)
5.1、作用:将规定的范围作为条件进行查询
5.2、语法格式:SELECT * FRON 表名 WHERE BETWEEN 条件1 AND 条件2
5.3、例句:SELECT * FROM user_info WHERE tall BETWEEN 170 and 190
例句讲解:查询身高在170到190之间的用户信息
演示示例
6、Aliases(使用别名)
6.1、作用:将表名或者列名指定一个别名(多用于一些名称长的表名或者列名,使用时更为方便)
6.2、语法格式:SELECT * FROM 表名 AS 别名 WHERE 别名.字段 = 条件 【表名使用别名】
SELECT 列名 AS 别名 FROM 表名 【列名使用别名】
6.3、例句:SELECT * FROM user_info AS info WHERE info.id = 1
例句讲解:查询用户id为1的用户信息
演示示例1(表名使用别名)
演示示例2(列名使用别名)
演示示例3(表名使用别名,多表查询)
7、NATURAL JOIN(自然连接)
7.1、作用:将两个表格根据“具有相同列名的列”进行对比匹配,将两个的表格信息进行合并显示
7.2、语法格式:SELECT 列名 FROM 表名 NATURAL JOIN 表名
7.3、例句: SELECT * FROM user_info NATURAL JOIN school
例句讲解:将 user_info和schoool两个表进行对比匹配
7.4、注释:两个表格根据列名相同的列进行对比和匹配并最终显示,如果两个表中列名相同的列中对应的内容完全一致,则合并显示,若列名相同的列中对应的内容(即某一行)有不一致,则该行不进行显示;无法指定具体需要匹配的列,它会自动将列进行匹配
演示示例(将user_info和school两个表进行匹配)
8、INNER JOIN(内连接)
8.1、作用:将两个表根据指定的列进行对比匹配,最终进行返回显示。表1内连接表2,只显示表1和表2中相匹配的数据,其余的数据不会显示。
8.2、语法格式:SELECT 字段名 FROM 表名1 INNER JOIN 表名2 ON 表名1.字段名 = 表名2.字段名
8.3、例句:SELECT * FROM user_info as U INNER JOIN school AS S ON U.id=S.id
例句讲解:将两个表根据id列进行对比匹配
8.4、注释:INNER JOIN和JOIN是相同的
演示示例 (这里使用了as)
9、LEFT JOIN(左连接)
9.1、作用:将两个表根据指定的数据进行对比匹配,最终进行返回显示。表1左连接表2,以表1为主,表1中的数据全部显示,表2中的数据只显示和表1匹配的数据
9.2、语法格式:SELECT 字段名 FROM 表名1 LEFT JOIN 表名2 ON 表名1.字段名=表名2.字段名
9.3、例句:SELECT * FROM user_info as U LEFT JOIN school AS S ON U.id=S.id
例句讲解:将两个表根据id列进行对比匹配,其中user_info表中的数据会全部显示(包括未成功匹配的)
演示示例
10、RIGHT JOIN(右连接)
10.1、作用:将两个表根据指定的数据进行对比匹配,最终进行返回显示。表1右连接表2,以表2为主,表2中的数据全部显示,表1中的数据只显示和表1匹配的数据
10.2、语法格式:SELECT 字段名 FROM 表名1 RIGHT JOIN 表名2 ON 表名1.字段名=表名2.字段名
10.3、例句:SELECT * FROM user_info as U RIGHT JOIN school AS S ON U.id=S.id
例句讲解:将两个表根据id列进行对比匹配,其中school表中的数据会全部显示(包括未成功匹配的)
注:持续更新…其中有问题的地方,欢迎指正