mysql数据库 sql语句学习笔记03 查询 聚合 表连接 记录联合
2024-07-24 12:59:46
供稿:网友
聚合 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 ; ///去除重复后显示