009_查询表内容

1. 查询表内容命令: select [distinct] [*] [`列名1`, `列名2`, ...] from `表名1`, `表名2`, ... [where 条件1 [and|or] 条件2 ...] [group by having] [order by] [limit N|limit M, N] [offset M]; 。

2. select语句

2.1. select语句用于从数据库中选取数据。选择显示哪些列, 结果被存储在一个结果表中, 称为结果集。

2.2. select语句使用星号(*)返回表的所有字段数据。

2.3. 查询所有列命令: select * from `表名`; 。

2.4. 查询部分列命令: select [`列名1`, `列名2`, ...] from `表名`; 。

3. distinct关键词

3.1. 在表中, 一个列可能会包含多个重复值, 有时您也许希望仅仅列出不同的值。distinct关键词用于返回唯一不同的值。

3.2. 去重查询命令: select distinct [`列名1`, `列名2`, ...] form `表名`; 。

4. 查询语句中你可以使用一个或者多个表, 表之间使用逗号分割。

5. where子句

5.1. where子句来设定查询条件。

5.2. where子句类似于程序语言中的if条件, 根据MySQL表中的字段值来读取指定的数据。

5.3. 使用主键来作为where子句的条件查询是非常快速的。

6. 关系运算符 

6.1. 关系运算符通常用于where子句中。

6.2. <>: 不等于, 标准SQL语法。

6.3. !=: 不等于, 非标准SQL语法。

6.4. 查询姓别等于女的学生

6.5. 查询姓别不等于女的学生

6.6. 查询身高大于1.80的学生

6.7. 查询身高大于等于1.80的学生

6.8. 查询身高小于1.80的学生

6.9. 查询身高小于等于1.80的学生

6.10. NULL值处理

6.10.1. 关于NULL的条件比较运算是比较特殊的。你不能使用=NULL或!=NULL在列中查找NULL值。

6.10.2. 在MySQL中, NULL值与任何其它值的比较(即使是NULL)永远返回NULL, 即NULL=NULL返回NULL。

6.10.3. MySQL中处理NULL使用IS NULL和IS NOT NULL运算符。

6.10.4. IS NULL当列的值是NULL, 此运算符返回true。

6.10.5. IS NOT NULL当列的值不为NULL, 运算符返回true。

6.10.6. <=>比较操作符(不同于 = 运算符), 当比较的的两个值相等或者都为NULL时返回true, 一般不用这个。

6.10.7. 查询名字为NULL的学生。

6.10.8. 查询名字不为NULL的学生。

7. MySQL的where子句的字符串比较是不区分大小写的。你可以使用binary关键字来设定where子句的字符串比较是区分大小写的。

8. 逻辑运算: and, or, not

8.1. not非, 查询非女性学生

8.2. and & or运算符用于基于一个以上的条件对记录进行过滤。

8.3. 如果第一个条件和第二个条件都成立, 则and运算符显示一条记录。

8.4. 如果第一个条件和第二个条件中只要有一个成立, 则or运算符显示一条记录。

8.5. and并列, 多个条件都满足。查询性别不是男也不是女的学生

8.6. or或, 满足任一条件就行。查询性别是男或者性别是女的学生

9. 模糊查询like

9.1. like操作符用于在where子句中搜索列中的指定模式。

9.2. %: 替代0个或多个字符。

9.3. _: 替代一个字符。

9.4. 查询name中包含l的学生

9.5. 查询name中不包含l的学生

9.6. 查询name倒数第二个字符是l的学生

10. in操作符

10.1. in操作符允许您在where子句中规定多个值。

10.2. 查询姓别是男或者女的学生

10.3. 查询姓别不是男或者女的学生

11. between操作符

11.1. between操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。

11.2. 选取身高在1.70和1.80之间的学生(非整数匹配并不好使, 还是关系运算符更好用)

11.3. 选取身高不在1.70和1.80之间的学生(非整数匹配并不好使, 还是关系运算符更好用)

11.4. 查询名字第一个字母a到j之间的学生(一般不用这种方式查询)

11.5. 查询名字第一个字母在a到z, 第二个字母a到j之间的学生(一般不用这种方式查询)

11.6. 查询出生日期从1980-01-16 09:23:33到2019-05-16 23:20:53的学生

12. limit & offset子句

12.1. limit属性只有一个参数的时候, 设置的是返回的记录数。limit有两个参数的时候, 第一个参数设置偏移量, 第二个参数设置的是返回的记录数。

12.2. 你可以通过offset指定select语句开始查询的数据偏移量, 默认情况下偏移量为0。offset要跟在只有一个参数的limit属性后面使用。

12.3. 使用limit属性查询5条记录

12.4. 使用limit属性, 从第三条记录起, 查询5条记录

12.5. 使用limit和offset属性, 从第三条记录起, 查询5条记录

13. 排序查询: order by

13.1. order by关键字用于对结果集按照一个列或者多个列进行排序。

13.2. order by关键字默认按照升序(asc)对记录进行排序。如果需要按照降序对记录进行排序, 您可以使用desc关键字。

13.3. 按身高升序对学生排序

13.4. 按身高降序对学生排序

13.5. 身高按升序, 体重按降序对学生排序

14. 分组: group by

14.1. group by语句用于结合聚合函数, 根据一个或多个列对结果集进行分组。

14.2. count()聚合函数, 返回行数。

14.3. avg()聚合函数, 返回平均值。

14.4. 按性别分组, 并且查出每组多少人

14.5. 在SQL中增加having子句原因是, where关键字无法与聚合函数一起使用。having子句可以让我们筛选分组后的各组数据。

14.6. 按性别分组, 并且平均身高大于1.72的学生

15. SQL别名

15.1. 通过使用SQL的as关键字, 可以为表名称或列名称指定别名。事实上as关键字也可以省略。

15.2. 基本上, 创建别名是为了让表名称或列名称的可读性更强。

15.3. 如果别名称包含空格, 要求使用双引号或方括号。

15.4. 在查询中涉及超过一个表, 可以使用别名。

15.5. 在查询中使用了函数, 可以使用别名。

15.6. 列名称很长或者可读性差, 可以使用别名。

15.7. 需要把两个列或者多个列结合在一起, 可以使用别名。

15.8. 列别名查询

15.9. 表别名查询

16. 查询一条按平均身高排序, 按姓别分组, 姓别是男或者女的学生数据

17. 编写顺序

17.1. select .. from .. where .. group by .. having .. order by ..  limit and offset

18. 执行顺序

18.2. from .. where .. group by .. having .. select .. order by ..  limit and offset

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值