学斋随笔,初九潜龙勿用,-27mysql关于查询
一、连接查询
1、all | distinct
all 允许出现重复行 默认不写就是all
distinct:不允许出现——就是所谓的“消除重复行”
2、from子句 指定数据的来源,可以是表,也可以是多个表。
3、where子句 where子句,相当于php或js中的if条件语句:其最终结果就是布尔值(true/false)
算术运算符: + - * / %
比较运算符: > >= < <= =(等于) <>(不等于) ==(等于,mysql扩展),!=(不等于,mysql扩展)
逻辑运算符: and(与) or(或) not(非)
between语法: XX between 值1 and 值2;
字段XX的值在值1和值2之间(含),相当于:XX >=值1 and XX<=值2;
in语法:XX in (1,2,3,4,5) XX not in ()
ike语法(模糊查找): 语法形式: XX like ‘要查找字符’;
字符:% 其含义是:代表任意个数的任意字符
_ 其含义是:代表1个的任意字符
实际应用中的模糊查找,通常都是这样:like ‘%关键字%’;
4、group by分组子句
分组就是将数据以某个字段的值为“依据”,分到不同的“组别”里。
形式: group by 字段1 排序方式1,字段2 排序方式2, .....
在分组查询中,有以下几个函数:
count(*): 统计一组中的数量,通常用“*”做参数。
max(字段名):获取该字段中在该组中的最大值。
min(字段名):获取该字段中在该组中的最小值。
sum(字段名):获取该字段中在该组中的总和。
avg(字段名):获取该字段中在该组中的平均值。
group_concat(字段名):获取该分组内的这个字段所有信息,每条逗号分隔。
5、having子句
having子句其实和where一样,用来作条件判断的。
where对表的字段的值进行判断。
having对group by之后的 组 数据进行判断。
6、order by子句
形式: order by 排序字段1 [排序方式], 排序字段2 [排序方式], .....
说明:对前面取得的数据来指定按某个字段的大小来进行排序
排序的两种方式: 正序 asc(默认值 可以省略)
倒序 desc
7、limit子句
形式:limit [起始行号start], 要取出的行数num
二、连接查询
连接就是将两个或两个以上的表连接起来成为一个"数据源"
形式: from 表1 [连接方式] join 表2 [on 连接条件];
连接的结果可以当作一个“表”来使用。
常用的几种连接方式:
交叉连接:形式:from 表1 join 表2 ; //可见交叉连接只是没有on条件而已。
内连接:形式:from 表1 join 表2 on 表1.字段1=表2.字段2;
左[外]连接:形式:from 表1 left [outer] join 表2 on 连接条件。
右[外]连接:形式:from 表1 right [outer] join 表2 on 连接条件。
全[外]连接:形式:from 表1 full [outer] join 表2 on 连接条件;
三、子查询
子查询就是将查询结果当条件
形式:selelct 字段或表达式或(子查询1) [as 别名] from 表名或(子查询2) where 字段或表达式或(子查询3) 的条件判断
四、联合查询
联合查询就是将两个select语句的查询结果“层叠”到一起成为一个“大结果”。
两个查询结果的能够进行“联合”的先觉条件是:结果字段数相等。
联合查询的关键字:union
连接查询的关键字: join

浙公网安备 33010602011771号