学斋随笔,初九潜龙勿用,-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

 

 

posted @ 2019-01-05 14:46  玩转手绘  阅读(127)  评论(0)    收藏  举报