#聚合函数查询 作用:对表中搜索到的数据进行总结 1.count()函数 格式:count(*) 作用:计算表中总的行数,不管某列有数值或者空值 格式:count(字段名) 作用:计算指定列下总的行数,计算时忽略空值的行 2.sum()函数 格式:sum(字段名) 作用:计算指定列值的数量总和,计算时忽略值为NULL的行 3.AVG函数() 格式:avg(字段名) 作用:返回指定列数据的平均值 4.max()函数 格式:max(字段名) 作用:返回指定列中的最大值 5.min()函数 格式:min(字段名) 作用:返回查询列中的最小值 #连接查询 1.内连接查询 使用比较运算符进行表间数据的比较操作,且比较的表间数据为相同数据类型的字段 格式:select 表名.字段名 from 表名1,表名2 where 表名1.字段名 = 表名2.字段名 或者 select 表名.字段名 from 表名1 inner join 表名2 where 表名1.字段名 = 表名2.字段名 注意:两个表中有相同的字段名,所以在比较时需用表名.字段名格式,不然无法确定指的是哪一个 #子查询 在一个查询语句嵌套在另一个查询语句内部的查询 1.带ANY、SOME关键字的子查询 #ANY和some一样,表示满足其中任一条件,允许创建一个表达式对自查徐的返回值列表进行比较 eg.mysql> select num1 from tbl1 where num1 > any (select num2 from tbl2); +------+ | num1 | +------+ | 13 | | 27 | +------+ mysql> select num1 from tbl1 where num1 > some (select num2 from tbl2); +------+ | num1 | +------+ | 13 | | 27 | +------+ 2.带ALL关键字查询,需要满足所有内层查询的的条件 eg.mysql> select num1 from tbl1 where num1 > all (select num2 from tbl2); +------+ | num1 | +------+ | 27 | +------+ 3.带exists关键字查询 exists:后参数是一个任意的子查询,子查询至少返回一行为true,此时外层查询进行查询,子查询返回false,外层语句将不进行查询 eg.mysql> select * from test1 where exists (select c_id from test2 where c_id = 10001); +------+------+------------+---------+ | f_id | s_id | f_name | f_price | +------+------+------------+---------+ | a1 | 101 | apple | 5.20 | | a2 | 103 | apricot | 2.20 | | b1 | 102 | blackberry | 10.20 | | b2 | 104 | berry | 7.60 | | b5 | 107 | xxxx | 3.60 | | bs1 | 103 | orange | 11.20 | | bs2 | 104 | melon | 8.20 | | c0 | 101 | cherry | 3.20 | | l2 | 104 | lemon | 6.40 | | m1 | 106 | mango | 15.70 | | m2 | 105 | xbabay | 2.60 | | m3 | 105 | xxtt | 11.60 | | o2 | 107 | coconut | 9.20 | | t1 | 105 | banana | 10.30 | | t2 | 106 | grape | 5.30 | | t4 | 107 | xbababa | 3.60 | +------+------+------------+---------+ not exists:后参数是一个任意的子查询,子查询至少返回一行为false,此时外层查询进行查询,子查询没有任何返回,返回true,外层语句将不进行查询 eg.mysql> select * from test1 where not exists (select c_id from test2 where c_id = 10001); Empty set (0.00 sec) 4.带IN关键字查询 IN进行子查询,内层查询语句返回一个数据列,数据列中的值将提供给外层查询语句进行比较操作,且在内层语句结果中 NOT IN,内层查询语句返回一个数据列,数据列中的值将提供给外层查询语句进行比较操作,且不在内层语句结果中 #合并结果查询 (1)利用UNION关键字,给出多条select语句 ,将其结果组合成单个结果集,两个表对应数据列和数据类型必须相同。 (2)各个select语句之间使用UNION或UNION ALL关键字分割。 (3)不使用关键字ALL,执行时删除重复的记录,返回行是唯一的;使用关键字ALL不删除重复行也不对结果进行自动排序 eg.mysql> select s_id, f_name, f_price from test1 where f_price < 9.0 union all select s_id,f_name,f_price from test1 where s_id in(101,103); +------+---------+---------+ | s_id | f_name | f_price | +------+---------+---------+ | 101 | apple | 5.20 | | 103 | apricot | 2.20 | | 104 | berry | 7.60 | | 107 | xxxx | 3.60 | | 104 | melon | 8.20 | | 101 | cherry | 3.20 | | 104 | lemon | 6.40 | | 105 | xbabay | 2.60 | | 106 | grape | 5.30 | | 107 | xbababa | 3.60 | | 101 | apple | 5.20 | | 103 | apricot | 2.20 | | 103 | orange | 11.20 | | 101 | cherry | 3.20 | +------+---------+---------+ mysql> select s_id, f_name, f_price from test1 where f_price < 9.0 union select s_id,f_name,f_price from test1 where s_id in(101,103); +------+---------+---------+ | s_id | f_name | f_price | +------+---------+---------+ | 101 | apple | 5.20 | | 103 | apricot | 2.20 | | 104 | berry | 7.60 | | 107 | xxxx | 3.60 | | 104 | melon | 8.20 | | 101 | cherry | 3.20 | | 104 | lemon | 6.40 | | 105 | xbabay | 2.60 | | 106 | grape | 5.30 | | 107 | xbababa | 3.60 | | 103 | orange | 11.20 | +------+---------+---------+
MySql数据查询(二) 数据查询
猜你喜欢
转载自blog.csdn.net/poetry_and_distance/article/details/79940677
今日推荐
周排行