mysql 笔记五

聚集函数

  • count() 统计记录的条数
  • sum() 计算字段的值得总和
  • avg() 计算字段的值得平均数
  • max() 最大值
  • min() 最小值

group by 子句

group by 关键字可以将查询结果按某个字段或多个字段进行分组。

group by 还可以进行多个字段分组,字段间使用逗号隔开。

group by col_name1[,col_name2] [having条件表达式][with rollup]

select name,count(*) from data group by number;
# with rollup 统计最终人数
select c_name,count(*) from score group by grade with rollup;

select c_name,grade from score group by grade having grade>80;

# having 与 where 类似,限制显示,但是两者起作用的地方不一样。
# where 作用于表或视图,having作用于分组后的记录,用于选择满足条件的组。

order by 子句

order by 子句按一个或多个(最多16个)字段排序查询查询结果,可以是升序(ASC)/降序(DESC)。默认为升序。该子句通常放SQL语句的最后

Limit 子句

 select_statement limit {[offset,] row_count | row_count OFFSET offset}
 Select_statement :查询语句
 offset:    偏移量
 row_count: 取得记录的条数
 
 // 返回 2~3行记录
 select * from data limit 1,2;

union 合并结果集

select name from student
union
select c_name from score;

查询需要满足相容性

子查询

可以组合使用两个查询,即将一个查询放置到另一个查询的内部,内部的查询称为子查询。

where型子查询

where型子查询即把内部查询结果当作外层查询的比较条件

查询比 张三 年龄大的同学的信息
'' select * from student where brith < (select brith from student where name='张三')''

from 型子查询

  • 带 IN 关键字
  • 带 ANY 关键字
  • 带 ALL 关键字

exists 型子查询

exists 关键字表示存在, 使用exists 关键字时, 查询语句不返回查询的记录
注意点:

  • 内查询语句

    当查询到满足条件的记录,返回 True ; 否则 false

  • 外查询语句

    当查询为真时,使用外查询进行查询;否则外查询不进行查询

连接查询

连接查询即从笛卡尔积中找出满足条件的行

select 字段表 from 表1 left | right [outer] join 表2 on 表1.字段 = 表2.字段

  • 当 from 子句 指定两张或两张以上的表时。叫做表的连接(join),进行比较的两列叫做连接条件。
  • 连接分为内连接和外连接, 即 inter和outer,默认是内连接
  • 外连接分为 left , right ,即左连接 , 右连接
  • 两个表中重复的属性需要使用点操作符 “表名.列名”指定来自于那个表
  • 所有属性都可以指定其来自于哪个表,这可以提高查询的可读性。

内连接

内连接查询是最常用的一种查询,也称为等同查询,就是在表关系的笛卡尔积数据记录中,保留表关系中所有相匹配的数据,而舍弃不匹配的数据。

  • 等值连接(inner join)

用来连接两个表的条件称为连接条件,如果连接条件中的连接运算符是 = 时,称为等值连接。

  • 自然连接(natural join)

自然连接操作就是在表关系的笛卡尔积中,首先根据表的关系中相同名称的字段进行记录匹配,然后去掉重复的字段,还可以理解为在等值连接中把目标列中重复的属性列去掉,则为自然连接。

  • 不等值连接(inner join)

用来连接两个表的条件称为连接条件,如果连接条件中的连接运算符是 = 时,称为等值连接。 如果时其它的运算符,则是不等值连接

外连接

  • 左连接

  • 右连接

注意

  • 子查询通常是令某一表的查询结果作为外层查询的条件,查询的结果只来自一张表,这种情况通常使用子查询。

  • 查询结果来自于不同表,这种情况通常使用连接查询。

原文地址:https://www.cnblogs.com/duoban/p/11742930.html