目录
一、模糊查询
当我们不清楚数据的具体值,只有较为模糊的印象时,就需要使用模糊查询了。模糊查询需要使用关键字LIKE。
通配符:
_ :任意一个字符;
%:任意0~n个字符
英文单词:like 像,类似
先创建数据库mysql06,在数据库mysql06中创建表student
create database `student`;
use student;
create table `student`(
`num` int primary key,
`name` varchar(20) not null,
`age` int,
`denger` varchar(10),
`score` double
);
向student数据表中添加5条记录
insert into student values
(1,'zhangsan',18,'male',59),
(2,'lisa',20,'female',96),
(3,'wanger',18,'male',92),
(4,'mazi',19,'female',84),
(5,'helen',21,'male',78);
1、通配符"_"的使用
a、查询姓名由4个字符构成,且第四个字符为"a"的记录
SELECT * FROM student WHERE name LIKE'___a';
b、查询姓名由4个字符组成的记录
SELECT * FROM student WHERE name LIKE'____';
2、通配符"%"的使用
a、查询姓名以“z”开头的记录
SELECT * FROM student WHERE name LIKE'z%';
b、查询姓名中含有“a”的记录
SELECT * FROM student WHERE name LIKE'%a%';
3、"_"和"%"的混合使用
查询姓名第二个字符为“a”的记录
SELECT * FROM student WHERE name LIKE'_a%';
二、字段控制查询
英文单词: distinct 不同的,有区别的
1、去除重复记录
去除age字段的重复记录
SELECT DISTINCT age FROM student;
2、字段数据之间的计算
a、查询学生的年龄与成绩之和
SELECT *,age+score FROM student;
因为age和score两列的类型都是数值类型,所以可以做加运算
b、把helen的成绩修改为null,查询学生的年龄与成绩之和
UPDATE student SET score=NULL WHERE name='helen';
任何数据与NULL相加结果还是NULL
函数:IFNULL,转换数据
使用IFNULL将NULL转换为数值0:
SELECT * ,age+IFNULL(score,0) FROM student ;
3、给列名添加别名
上面查询出现的列age+ifnull(score,0),我们给这一列起个别名为sum
SELECT *,age+IFNULL(score,0) AS sum FROM student;
给列起别名时,可以省略AS关键字:
SELECT *,age+IFNULL(score,0) sum FROM student;
三、排序查询
1、升序排列
关键字:ORDER BY 列名 [ASC];
查询所有记录,按成绩升序排序
SELECT * FROM student ORDER BY score ASC;
或
SELECT * FROM student ORDER BY score;
2、降序排列
关键字:ORDER BY 列名 DESC;
查询所有记录,按成绩降序排序
SELECT * FROM student ORDER BY score DESC;
3、多字段排序
查询所有记录,按年龄降序排序,如果年龄相同时,按成绩升序排序
SELECT * FROM student ORDER BY age DESC,score ASC;