mysql5.7读书笔记7(查询SELECT)

栏目: 数据库 · 发布时间: 4年前

7、数据查询(SELECT)

7.1:SELECT语句基本格式:

SELECT {*|字段列表} [FROM <表1>,<表2>... [where <表达式> [GROUP BY <group by 字段> ] [HAVING <expression> [{<operator> <expression>}...]] [ORDER BY <order by 字段>] [LIMIT {<offest>,} <row count>]]

*

7.2:单表查询

  1. 查询所有字段

SELECT * FROM 表名

  1. 查询指定字段(提示:若非取所有字段,建议按需获取字段信息,提升查询效率)

SELECT 字段1、字段2... FROM 表名

  1. 查询指定记录,单条件(查询条件 例:id=3)

SELECT 字段1、字段2... FROM 表名 WHERE 查询条件

  1. 查询空值

SELECT 字段1、字段2... FROM 表名 WHERE 字段1 is null
SELECT 字段1、字段2... FROM 表名 WHERE 字段1 is not null

  1. 多条件的查询(查询条件 例:id=3 and name='abc' and ...)

SELECT 字段1、字段2... FROM 表名 WHERE 查询条件

  1. 对查询结果进行排序(默认asc升序 desc 降序)

SELECT 字段1、字段2... FROM 表名 WHERE 查询条件 ORDER BY 字段1 ASC|DESC

  1. 查询记录去重

SELECT DISTINCT 字段1 FROM 表名

  1. 查询结果分组

SELECT 字段1,字段2... FROM 表名 GROUP BY 字段1 HAVING <条件表达式>

  1. 限制显示条数(LIMIT 0,5)

SELECT 字段1,字段2... FROM 表名 LIMIT 0(位置偏移量即第几行开始),5(行数)

7.3: 聚合函数

函数 参数 作用
AVG() 列名 返回某列的平均值
COUNT() 列名 返回某列的行数
MAX() 列名 返回某列的最大值
MIN() 列名 返回某列的最小值
SUM() 列名 返回某列的和

7.4:连接查询|关联查询(内连|外连)

1.内连接(INNER JOIN)

2.外连接(LEFT JOIN | RIGHT JOIN)

连接类型 连接方式 返回结果
内连接 INNER JOIN 返回满足所有条件的记录即两表的交集
外连接 LEFT JOIN 返回包括左表中的所有记录和右表中连接字段相等的记录,即两表的交集+剩下的左表的数据
外连接 RIGHT JOIN 返回包括右表中的所有记录和左表中连接字段相等的记录,即两表的交集+剩下的右表的数据

7.5:子查询

将一个查询(子查询)的结果当做另一个查询(主查询)的条件去搜索返回结果

子查询常用操作符

名称 用法 描述
ANY() >(比较运算符) ANY(子查询) 满足子查询的任一条件,返回一结果当做主查询的条件
SOME() >(比较运算符) SOME(子查询) 满足子查询的任一条件,返回一结果当做主查询的条件
ALL() >(比较运算符) ALL(子查询) 满足子查询的所有条件,返回结果当做主查询的条件
IN() IN(子查询) 结果等同于 = ANY(子查询)
EXISTS() EXISTS(子查询) 子查询返回行,则为true,反之false,即要么执行主查询,要么不执行主查询
比较运算符 >(比较运行符) 子查询(返回结果为标量) where 子句的查询条件为比较子查询返回的值

7.6:合并查询结果

用 union 关键字 将两个或多个select查询结果合并成一个

两个或多个select查询结果的列数、数据类型必须一样

union 去重; union all 不去重.效率高点。

  • 例: SELECT abc,def FROM table1 union SELECT abc,def FROM table2

7.7:查询条件使用模糊匹配

1、使用REGEXP关键字指定正则表达式的字符匹配模式

选项 说明 例子 匹配值示例
^ 匹配文本的开始字符 '^b'匹配以字母b开头的字符串 book、big、banana、bike
$ 匹配文本的结束字符 'st$'匹配以st结尾的字符串 test、resist、persist
. 匹配任何单个字符 'b.t'匹配任何b和t之间有一个字符 bit、bat、but、bite
* 匹配零个或多个在它前面的字符 'f*n'匹配字符n前面有任意个字符f fn、fan、faan、abcn
+ 匹配前面的字符1次或多次 'ba+'匹配以b开头,后面至少紧跟一个a ba、bay、bare、battle
<字符串> 匹配包含指定字符的文本 'fa' fan、afa、faad
[字符集合] 匹配字符集合中的任何一个字符 '[xz]'匹配x或者z dizzy、zebra、x-ray、 extra
[^] 匹配不在括号中的任何字符 '[^abc]'匹配任何不包含a、b或c的字符串 desk、fox、f8ke
字符串{n,} 匹配前面的字符串至少n次 b{2}匹配至少2个的b bbb、bbbb、bbbbbbb
字符串{n,m} 匹配前面的字符串至少n次,至多m次 b{2,4}匹配最少2个,最多4个b bbb、bbbb

2、使用LIKE关键字匹配字符

where 字段1 like %abc% 同 where 字段1 regexp 'abc' 查找带abc的字符 where 字段1 like abc% 同 where 字段1 regexp '^abc' 查找abc开头的字符 where 字段1 like %abc 同 where 字段1 regexp 'abc$' 查找abc结束的字符

查询 sql 书写个人建议:

  • 1、建立合适的索引
  • 2、尽量避免全表扫描

以上所述就是小编给大家介绍的《mysql5.7读书笔记7(查询SELECT)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Computers and Intractability

Computers and Intractability

M R Garey、D S Johnson / W. H. Freeman / 1979-4-26 / GBP 53.99

This book's introduction features a humorous story of a man with a line of people behind him, who explains to his boss, "I can't find an efficient algorithm, but neither can all these famous people." ......一起来看看 《Computers and Intractability》 这本书的介绍吧!

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具