select语句基本语法格式:
select 查询内容
from 表名
where 表达式
group by 字段名
having 表达式
order by 字段名 asc(升序) desc(降序)
limit 记录数 (偏移量,记录数)
1.查询修改后的字段(比如查询十年后年龄)
可以将需要改的数值直接以一个式子的形式放再查询内容里面,即当作变量处理。
SELECT 2019-YEAR(Birthday)-10 AS 十年后的年龄
FROM typetbl_singer
2.查询某一条件下的字段(例如年龄大于30岁的)
此时只需给语句后面来一个where,然后再后面加上想要筛选的条件即可。
类似的运算符还有
SELECT 2019-YEAR(Birthday) AS 年龄
FROM typetbl_singer
where 2019-YEAR(Birthday)>30
3.带in的查询(简单理解就是在某某一个集合里in 与 not in)
为了方便看就直接用这个表了
可以看到年龄的值全是再in后面括号跟的值里。
SELECT 2019-YEAR(Birthday) AS 年龄
FROM typetbl_singer
where 2019-YEAR(Birthday) in (52,36,61)
4.带between and的查询(在一个区间里,并且包括两端的值。也就是大于等于某某,且小于等于某某)
注意between A and B 时,A,才有用。虽然不会报错,但匹配不到结果
SELECT 2019-YEAR(Birthday) AS 年龄
FROM typetbl_singer
where 2019-YEAR(Birthday) BETWEEN 30 AND 40
5.查询为空值或不为空值
也就时is null(空值) or is not null(不为空值)就不演示了
SELECT 2019-YEAR(Birthday) AS 年龄
FROM typetbl_singer
where 2019-YEAR(Birthday) IS NULL
6.查询过滤重复内容(语法:select distinct)
看结果没有一个重复的年龄,distinct
(1)
SELECT DISTINCT 2019-YEAR(Birthday) AS 年龄
FROM typetbl_singer
where 2019-YEAR(Birthday)
(2)
当我加入一个字段的时候发现,第二个字段没有把重复的去掉(自由猜测,在第二个字段前面加distinct会报错)可见只能给一个字段加这个distinct)
SELECT DISTINCT 2019-YEAR(Birthday),SingerType AS 年龄
FROM typetbl_singer
where 2019-YEAR(Birthday)
7.模糊查询(like 与 not like)
在遇到内容具有相同部分的时候,需要用到模糊查询.**通配符%与通配符_**
(注意当需要查询带有**%或者_的时候,需要用到转义字符\来表l:例如\%**)
SELECT *
FROM typetbl_singer
-- 在百分号前面的字符,就是选择以该字符开头的所有内容。字符%
SELECT *
FROM typetbl_singer
WHERE SingerName LIKE '张%'
-- %字符%,包含该字符的所有内容
SELECT *
FROM typetbl_singer
WHERE SingerName LIKE '%s%'
-- 以%字符,以该字符结尾的所有内容
SELECT *
FROM typetbl_singer
WHERE SingerName LIKE '%陆'
SELECT *
FROM typetbl_singer
WHERE SingerName LIKE '张__' -- 有几个下划线就可以匹配几个,在那一遍就匹配那一遍的字符