目录
当我们不清楚数据的具体值,只有较为模糊的印象时,就需要使用模糊查询了。模糊查询需要使用关键字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);

a、查询姓名由4个字符构成,且第四个字符为"a"的记录
SELECT * FROM student WHERE name LIKE'___a';

b、查询姓名由4个字符组成的记录
SELECT * FROM student WHERE name LIKE'____';

a、查询姓名以“z”开头的记录
SELECT * FROM student WHERE name LIKE'z%';

b、查询姓名中含有“a”的记录
SELECT * FROM student WHERE name LIKE'%a%';

查询姓名第二个字符为“a”的记录
SELECT * FROM student WHERE name LIKE'_a%';

英文单词: distinct 不同的,有区别的
去除age字段的重复记录
SELECT DISTINCT age FROM student;

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 ;

上面查询出现的列age+ifnull(score,0),我们给这一列起个别名为sum
SELECT *,age+IFNULL(score,0) AS sum FROM student;
给列起别名时,可以省略AS关键字:
SELECT *,age+IFNULL(score,0) sum FROM student;


关键字:ORDER BY 列名 [ASC];
查询所有记录,按成绩升序排序
SELECT * FROM student ORDER BY score ASC;
或
SELECT * FROM student ORDER BY score;


关键字:ORDER BY 列名 DESC;
查询所有记录,按成绩降序排序
SELECT * FROM student ORDER BY score DESC;

查询所有记录,按年龄降序排序,如果年龄相同时,按成绩升序排序
SELECT * FROM student ORDER BY age DESC,score ASC;
