MySQL之常用函数、聚合函数以及合并

  • Post author:
  • Post category:mysql




1、笛卡尔集


笛卡尔集会在下面条件下产生:


①、 省略连接条件


②、连接条件无效


③、 所有表中的所有行互相连接


④、为了避免笛卡尔集, 可以在 WHERE 加入有 效的连接条件。



2、等值/连接连接


①、使用连接在多个表中查询数据


(1) 在 WHERE 子句中写入连接条件;


(2)在表中有相同列时,在列名之前加上表名前缀。


②、区分重复的列名


(1) 在不同表中具有相同列名的列可以用表的别名加以区分。


(2)如果使用了表别名,则在select语句中需要使用表别名代替表名。


(3) 表别名最多支持32个字符长度,但建议越少越好。


③、表的别名


(1)使用别名可以简化查询。


(2) 使用表名前缀可以提高执行效率。


④、连接多个表


(1) 连接 n个表,至少需要 n-1个连接条件。 例如:连接三个表,至少需要两个连接条件。


一、连表查询

1、 内连接 [inner] join on

语法:select 查询列表 from 表1 别名 inner join 表2 别名 on 连接条件;


特点:

①添加排序、分组、筛选;

②inner可以省略;

③ 筛选条件放在where后面,连接条件放在on后面,提高分离性,便于阅读;

④inner join连接和sql92语法中的等值连接效果是一样的,都是查询多表的交集;


2、 外连接

特点:



①、外连接的查询结果为主表中的所有记录如果从表中有和它匹配的,则显示匹配的值如果从表中没有和它匹配的,则显示null外连接查询结果=内连接结果+主表中有而从表没有的记录

②、左外连接,left join左边的是主表;右外连接,right join右边的是主表

③、左外和右外交换两个表的顺序,可以实现同样的效果

④、全外连接=内连接的结果+表1中有但表2没有的+表2中有但表1没有的



3、 左外连接 left [outer] join on




4、 右外连接 right [outer] join on




二、常用函数


1、字符串函数



①、UPPER() / LOWER():转大小写


②、 REPLACE():字符替换


③、 SUBSTR():截取


④、 TRIM():去除前后空格


⑤、 LENGTH():获取字符串长度


⑥、CONCAT():拼接


⑦、INSTR():字符出现索引值


⑧、TRIM():字符截取后半段


2.数字函数

FLOOR:向下取整    CEIL: 向上取整


ROUND:四舍五入


TRUNC():截断   MOD():求余


3.日期函数




①、NOW():获取当前日期和时间



②、 DAY():获取日期中的天



③、 MONTH():获取日期中的月



④、 YEAR():获取日期中的年



⑤、 日期转换函数DATE_FORMAT()/STR_TO_DATE()



⑥、DATE_FORMAT():将日期转换成字符串



⑦、STR_TO_DATE():将字符串转换成日期


查询各学生的年龄,只按年份来算 按照出生日期来算,当前月日 < 出生年月的月日则,年龄减一


三、聚合函数




1、 SUM():求和。




2、 AVG():求平均值。



3、MAX():求最大值。



4、 MIN():求最小值。


5、 COUNT():统计记录的条数。常与GROUP BY一起使用,也可单独使用 如果有筛选的条件加关键字having


四、合并




1、UNION:将所有的查询结果合并到一起,然后去除掉相同的记录



2、UNION ALL:将所有的查询结果合并到一起,不会去除掉相同的记录



版权声明:本文为m0_60375943原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。