1、多个字段的查询
- select 字段名1,字段名2...from 表名;
Select
字段列表
Form
表名列表
Where
条件列表
Group by
分组字段
Having
分组之后的条件
Order by
排序
Limit
分页限定
注意:如果查询所有字段,则可以使用*来替代字段列表
2、去除重复
- distinct
PS:只有两个字段名的结果集完全一样,去重才发挥作用
3、计算列
- 一般可以使用四则运算计算一些列的值。(一般只会对数值型的计算)
- ifnull(表达式1,表达式2):null参与的运算,计算结果都为null
- 表达式1:哪个字段需要判断是否为null
- 表达式2:如果该字段为null后的替换值
4、起别名
- as
as也可以省略
案例学习:
1、计算math和English分数之和
分析:
A、
SELECT NAME,math,english,math+english FROM stu;
执行SQL后发现有空值,name为2的一行记录中English成绩为null,和math相加之和的结果还是为null,想让结果为66,怎么解决呢?
B、
因为null参与的运算,运算结果都为null,所以我们需要借助IFNULL函数,来把遇到的null全都转换为0,这样结果就不会出现null了。为了显示的更清楚,可以把math和English之和重新命名一个字段为总分。
SELECT NAME,math,english,math+IFNULL(english,0 ) AS 总分 FROM stu;
二、条件查询
1、where子句后跟条件
2、运算符
- > 、 <、<=、>=、=、<>
- BETWEEN...AND
- IN(集合)
- LIKE
- IS NULL
- and 或&&
- or 或||
- not 或 !
案例学习:
模糊查询:
LIKE:模糊查询
占位符:
- _:单个任意字符
- %:多个任意字符
案例学习:
1、查询姓马的有哪些?
分析:
SELECT * FROM stu WHERE NAME LIKE '马%';
2、查询姓名第二个字是化的人
分析:
SELECT * FROM stu WHERE NAME LIKE '_化%';
3、查询名字是三个字的人
分析:
SELECT * FROM stu WHERE NAME LIKE '___';
4、查询姓名中包含马的人
分析:
SELECT * FROM stu WHERE NAME LIKE '%马%';