mysql数据库 sql语句学习笔记03 查询 聚合 表连接 记录联合

时间:2022-06-11 01:01:44


聚合  
  SELECT [field1,field2 , ....] function_name FROM tablename [WHERE where_contition] [GROUP BY  field1,field2... [WITH ROLLUP]] [HAVING where_contition]


其中 field 表示列名
     function_name 表示需要进行的聚合操作  可选值可以是 sum 求和 ,    count(*) 记录数 ,  max 最大值 , min 最小值 
     where_contition 表示筛选条件
     GROUP_BY 表示 需要进行聚合操作的字段  
     WITH ROLLUP (可选)表示是否需要对聚合的字段进行再汇总操作
     HAVING (可选)  表示可以对已聚合分类的结果进行再次筛选






表连接 
   表连接是表示当需要同时显示多个表的字段的时候使用的   大致可分为 内连接和外连接  
内连接 
例  select table1_field1,table2_field1 from table1,table2 where table1.table1_field1=table2.table2_field1;

外连接   外连接又可分为 左连接和右连接
左连接: 包含所有的左边表中的记录甚至是右边表中没有和它匹配的记录
右连接: 包含所有的右边表中的记录甚至是左边表中没有和它匹配的记录
>_<!!  貌似刚刚相反
左连接
例:select table1_field1,table2_field1 from table1 left  join table2 on  where table1.table1_field1=table2.table2_field1;

  右连接
例:select table1_field1,table2_field1 from table1 right join table2 on  where table1.table1_field1=table2.table2_field1;




子查询
   某些情况下 进行查询的时候 需要的条件是另一个select查询的结果 这个时候就须用到子查询  用于子查询的关键字 主要包括  in , not in ,= ,!= , exists ,not exists 等等
 例如:  select * from table1 where field in(select table2_field1 from table2);
        select * from table1 where field =(select table2_field1 from table2 limit 1);




记录联合  
两个表的数据查询出来后将其合并到一起并显示出来   关键字有  union , union all
例如:select table1_field1 from table1  union all select table2_filed1 from table2  ;   /// 全部显示
     select table1_field1 from table1  union select table2_filed1 from table2  ;       ///去除重复后显示