基础查询:
1.select 列名
from 表名
where 筛选条件
2.as //取名
3.distinct //去重 格式:select distinct 字段名 from
4.all //查看所有,默认的,不写就默认all
5.逻辑符:
AND和&& //逻辑与,同时为真,结果才为真
or和|| //逻辑或,只要一个为真,则结果为真
not和! //逻辑非,若操作数为假,结果则为真
6.比较操作符:
is null // 格式:a is null 若操作符为NULL,则结果为真
is not null // 格式: a is not null 若操作符不为NULL,则结果为真
范围查询:between and // 格式:a between b and c 若a范围在b与c之间则结果为真
模糊查询:like //格式:a like b SQL模式匹配,若a匹配b,则结果为真
//在where子句中使用
//与 % 使用,如:select 字段名 from 表名 where 字段名 like '%在%'
意思是查看列中含有 '在' 的值,% 表示匹配0或任意多个字符
//与 _ 使用,如:select 字段名 from 表名 where 字段名 like '在__'
意思是查看列中叫 '在'的某某 _ 表示匹配单个字符
in() //格式:a IN (a1,a2,a3,….) 若a等于a1,a2…中的某一个,则结果为真
//如:select 字段名 from 表名 where 字段名 in(值1,值2)
意思是查询列中值1,值2
null空值条件查询:需使用is null 和 is not null 比较操作。
条件查询:
排序查询:
order by asc升序 desc降序
//格式:select 列名
from 表名
where 筛选条件
order by 要排的字段 asc;
2.limit 语句用法
limit m,n 或者 limit n offset m
//返回的是几行到几行
m 制定第一个返回记录行的偏移量
n 制定返回记录行的最大数目
常见函数查询:
放在 select 字段后面
count() 和 count(1) 一样效果 //返回满足SELECT条件的记录总和数,如 SELECT COUNT()…
sum() 总和
avg() 平均
max() 最大
min() 最小
系统函数 length
数学函数:
abs() sqrt(a) power(x,y) floor(a) ceil(a) truncate(a) round(a,i)
字符串函数:
trim(a)
substring(a,i,length) //截取
insert(a,x,y,b) //
concat(a…)
日期函数:
now()
year()
month()
date()
unix_timestamp()
from_unixtime()
datediff()
date_add()
date_format()
系统信息函数:
version()
统计函数:
count(*)
count(1)
count(列名)
分组函数:
group by //使用GROUP BY关键字对查询结果分组
//对所有的数据进行分组统计
//分组的依据字段可以有多个,并依次分组
//与 having 结合使用,进行分组后的数据筛选
//格式:select 字段名
from 表
where 筛选条件
group by 指定结果按照哪几个字段来分组
having 过滤分组的记录必须满足的次要条件
分组查询:
连接查询:
1.内连接 (inner join):
格式: select 字段1,字段2
from 表1
inner join 关联的表2 on 表1.字段=表2.字段
//如果表1和表2没有关联的值就不返回值
非等值连接查询:select 字段1,字段2
from 表1,表2
//结果为两个列行数相乘个
等值连接查询:select 字段1,字段2
from 表1,表2
where 表1.字段1=表2.字段2
//等效于内连接
自连接:select a.字段1, b.字段2
from 表1 as a, 表1 as b
where a.字段3=b.字段4
2.外连接(out join):
左连接:从左 表1 中返回所有的记录,即便在右 表2 中没有匹配都行
select 字段1,字段2
from 表1
left join 表2 on 表1.字段A=表2.字段B
右连接:从左 表1 中返回所有的记录,即便在右 表2 中没有匹配都行
select 字段1,字段2
from 表1
left join 表2 on 表1.字段A=表2.字段B
子查询:
在查询语句中的 where 条件子句中,又嵌套了另外一个查询语句
select 字段名
from 表名
where (select
from 表名
where 筛选条件) = 条件
分页查询:
inner join // 如果表中有至少一个匹配,则返回行
left join // 不论右表是否有匹配,都会返回左表的所有行
right join // 不论左表是否有匹配,都会返回右表的所有行
union联合查询: