1 MySQL基础
1.1 关系型数据库介绍
1.2 MySQL连接
1.3 引擎类型及区别
1.4 MySQL数据类型
2 查看数据库基本信息
2.1 基本语句
2.2 其他补充语句
3 对表的增(INSERT)、删(DELETE)、查(SELECT)、改(UPDATE)
3.1 查询数据(SELECT)
3.2 更新数据(UPDATE)
3.3 增加数据(INSERT)
3.4 删除数据(DELETE)
3.5 扩展知识
4 复杂XXXX
5 常用函数
5.1 字符串函数
5.2 聚合函数
6 子查询和联结
6.1 子查询
6.2 联结
7 组合查询和全文本搜索
8 视图和存储过程
8.1 视图
8.2 存储过程
9 游标、触发器和事务管理
9.1 游标
9.2 触发器
9.3 事务
10 索引和性能分析
10.1 索引
11 MySQL高级知识
11.1 MySQL锁机制介绍
12 MySQL进阶知识
13 MySQL维护、安全管理和其他
13.1 MySQL关键字和保留字(5.7版本)

查询数据(SELECT)

2018-01-07 12:25:00
linefo
642
最后编辑:linefo 于 2018-04-02 11:47:31



查询的结果都是以表的格式展示的,这里仅讲解基本的知识,更多可以到本章扩展知识去了解


检索单个列


【SQL语句】select  `[列名]` from `[表名]`



检索多个列


【SQL语句】select  `[列名1]`,`[列名2]` from `[表名]`



检索所有列

(* 表示所有)



在查询结果中,将列重命名

as 是将查询结果重命名的关键字,可以重命名结果中的表、列)


查询时,使用distinct关键字让列值唯一


先看原表数据:

【SQL语句】select distinct `[列名]` from `[表名]`;



【扩展】

distinct应用于所有列,多列时查询,判断两个行唯一的条件是:多列的值都相同

比如distinct作用于列A和列B:

列A  列B

1      2

1      2

上面两行,列A列B的值都相同的情况下,才表示相同的行

所以:


限制查询结果行数(limit)


【SQL语句】select `[列名]` from `[表名]` limit ([开始行数],)[行数]

(下面表示,查询从第0行[行数从0开始]开始的5行结果,开始行数省略掉的话,就是默认为第0行开始)



查询数据的排序(order by)


【SQL语句】select `[列名]` from `[表名]` order by `[列名]` ;

(由order by指定的列名来排序,默认是升序)



按多个列排序

(规则:以order by指定的列名顺序来排序,先排序的列更重要,也就是说当`docid`值相等的情况下,再按照`tagid`的值排序,所以下面的结果你可以看到当`docid`值为1时,tagid的值是1、3、5、7的顺序了。



指定排序方向(asc或desc)


【SQL语句】select `[列名]` from `[表名]` order by `[列名]`  asc或desc;

(使用order by时,后面跟asc关键字[升序,默认]或者desc关键字[降序]即可)




大小写、中文等数据的排序规则,我找了下网上资料比较散乱,应该去看MySQL官方文档会好一点。中文应该是根据第一个字的第一个字母?


设置条件(where)

(where关键字经常也用在删、改操作中)


【SQL语句】select `[列名]` from where [条件];



where支持的操作符


操作符 说明
= 等于
<> 或 != 不等于
< 小于
<= 小于等于
> 大于
>= 大于等于
between 在指定的两个值中间


设置多个条件(and,or,in)

(and表示并且、和的关系)



(or表示或者的关系)



(in表示在某个条件集合中,功能和or一样,但格式更清晰和简便)



设置范围条件

(要使用between和and)



否定条件(not)

(否定后面跟的所有条件,MySQL支持使用not对in、between和exists子句取反)