本文主要是介绍mysql从入门到精通笔记-第九章 数据表查询,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- 9.1 基本查询语句
- 9.1.1 使用SELECT * 查询所有列
- 9.1.2 使用SELECT C1,C2 查询一列或者多列
- 9.1.3 从一个或者多个表中获取数据
- 9.2 单表查询
- 9.2.1查询所有
- 9.2.2 指定字段
- 9.2.3 其他关键字
- 9.2.3.1 IN 和 NOT IN**
- 9.2.3.4 [NOT] BETWEEN ... AND...**(闭区间)
- 9.2.3.5 带有LIKE字符匹配查询
- 9.2.3.6 AND
- 9.2.3.7 OR
- 9.2.3.8 DISTINCT为字段筛选去重
- 9.2.3.9 ORDER BY 排序
- 9.2.3.10 GROUP BY
- 9.2.3.11 LIMIT
- 9.3 聚合函数查询
- 9.3.1 COUNT()函数
- 9.3.2 SUM()函数
- 9.3.3 AVG()函数
- 9.3.4 MAX()函数 和 MIN()函数
- 9.4 连接查询
- 9.4.1 内连接查询
- 9.4.2 外连接查询
- 9.4.3 复合条件连接查询
- 9.5 子查询
- 9.5.1 关键字IN和NOT IN的子查询
- 9.5.2 带比较运算符的子查询
- 9.5.3 EXISTS关键字 的子查询
- 9.5.3 ANY关键字 的子查询
- 9.5.3 ALL关键字 的子查询
- 9.6 合并查询结果
- 9.7 定义表和字段的别名
- 9.8 使用正则表达式进行查询
9.1 基本查询语句
SELECT语句功能强大,语法结构如下:
SELECT 列1,列2
FROM 数据表1,数据表2
WHERE ... #查询条件
GROUP BY ...#分组条件
ORDER BY ...#查询结果排序
LIMIT ...#限制查询输出的条数
9.1.1 使用SELECT * 查询所有列
9.1.2 使用SELECT C1,C2 查询一列或者多列
9.1.3 从一个或者多个表中获取数据
9.2 单表查询
9.2.1查询所有
SELECT * FROM 表名;
9.2.2 指定字段
SELECT 字段1,字段2 FROM 表名;
9.2.3 其他关键字
9.2.3.1 IN 和 NOT IN**
9.2.3.4 [NOT] BETWEEN ... AND...**(闭区间)
9.2.3.5 带有LIKE字符匹配查询
通配符:
- % 匹配一个或者多个字符,代表任意长度字符,长度可以为0;
- _ 匹配一个字符,中文和英文、数字都是指的一个字符
9.2.3.6 AND
9.2.3.7 OR
9.2.3.8 DISTINCT为字段筛选去重
9.2.3.9 ORDER BY 排序
- ASC = ASCEND
- DEC = DESCEND
9.2.3.10 GROUP BY
GROUP BY 的用法和数据透视表类似,用户统计某个字段下的聚合的一些信息。
9.2.3.11 LIMIT
- limit限制查询返回的记录的条数
- 多参数,LIMIT M,N,其中M是编号注意是从0开始,N是要查询的个数。
9.3 聚合函数查询
聚合函数,根据特定的计算方式,可以根据一组数据得出计算结果,如果存在有NULL的值,则不参与计算。
9.3.1 COUNT()函数
用于统计符合条件的值的个数。
增加自增字段
1)设置主键;2)设置自增;
9.3.2 SUM()函数
SUM函数用户计算莫格字段取值相加总和。
9.3.3 AVG()函数
9.3.4 MAX()函数 和 MIN()函数
9.4 连接查询
连接是把不同表的的记录连接到一起最普遍的方法。左连接返回包括左表中的所有记录和右表中连接字段相等的记录;右连接返回包括右表中的所有记录和左表中连接字段相等的记录;内连接只返回两个表中连接字段相等的行;全外连接返回左右表中所有的记录和左右表中连接字段相等的记录。
9.4.1 内连接查询
根据条件,返回相同的值的数据记录。
9.4.2 外连接查询
左连接和右连接,左连接 和 右连接,是指定以那个为基准,去查对应的数据,如果数据不存在,则为NULL。
左连接:先把usr_basic_info表放在左边,user_major放到右边,对应去查右边的数据,如果值右边就数据就为NULL;
有链接:先把user_major放到右边,对应去查usr_basic_info表中内容,如果没有数据内容,则为NULL;
9.4.3 复合条件连接查询
多条件的查询
9.5 子查询
SELECT 语句的嵌套,主查询语句使用附属查询语句返回值进行嵌套查询。
9.5.1 关键字IN和NOT IN的子查询
IN语句适合子查询语句返回的值是多个值的形式,可以使用IN。
9.5.2 带比较运算符的子查询
9.5.3 EXISTS关键字 的子查询
EXISTS子句返回一个TRUE或者FALSE的值,如果是TRUE则执行主句,如果是FALSE不执行主查询语句。
同样也可以使用NOT EXISTS
9.5.3 ANY关键字 的子查询
如果返回的值是一个列表或者单个值,主查询语句中的条件,只要返回的值中任意一个条件满足,则该条件满足。
SELECT * FROM t1 WHERE c1 > ANY(SELECT c2 WHERE ....)
如果字句返回来的值是一个列表[33,44,56,77],而C1的值为[1,3,5,34,88 99],则可以查询到[34,88,99]
9.5.3 ALL关键字 的子查询
和ANY类似,ALL关键字,要满足所有的条件,而不是任意的条件。
9.6 合并查询结果
将多个SELECT语句的结果合并显示出来,可以使用UNION 和 UNION ALL两个关键字,UNION合并会删除重复项,UNION ALL则会合并所有的结果。
9.7 定义表和字段的别名
9.7.1 为表取别名
9.7.1 为字段取别名
9.8 使用正则表达式进行查询
后续使用到后再补充。
这篇关于mysql从入门到精通笔记-第九章 数据表查询的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!