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

一,笛卡尔集

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

        ①、省略连接条件

        ②、连接条件无效

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

数据过大,可能运行时使电脑卡顿,

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


二,内连接:

等值连接:

1,多表等值连接的结果为多表的交集部分
2,n表连接,至少需要n-1个连接条件
3 ,多表的顺序没有要求
4,一般需要为表起别名,可以简化查询,提高执行效率
5,可以搭配前面介绍的所有子句使用,比如排序、分组、筛选


非等值连接:


#查询员工的工资级别
SELECT salary,grade_level FROM t_mysql_employees e 
JOIN t_mysql_job_grades g ON e.`salary` BETWEEN 
g.`lowest_sal` AND g.`highest_sal`;

自连接:

#查询员工的名字、上级的名字
SELECT e.last_name,m.last_name FROM t_mysql_employees e 
JOIN t_mysql_employees m ON e.`manager_id`= m.`employee_id`;

三,外连接

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

左外连接,右外连接

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

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

SELECT b.*,bo.* FROM t_mysql_boys bo LEFT OUTER JOIN t_mysql_beauty
 b ON b.`boyfriend_id` bo.`id` WHERE b.`id` IS NULL;

全连接 

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

SELECT b.*,bo.* FROM t_mysql_beauty b FULL OUTER JOIN t_mysql_boys bo 
ON b.`boyfriend_id` = bo.id;

交叉连接

select b.*,bo.* from t_mysql_beauty b cross join boys bo

四,常见函数:

字符函数:

作用函数结果
转小写LOWER('SQL Course')sql course
转大写UPPER('SQL Course')SQL COURSE
拼接CONCAT('Hello', 'World')HelloWorld
截取SUBSTR('HelloWorld',1,5)Hello
长度LENGTH('HelloWorld')10
字符出现索引值INSTR('HelloWorld', 'W')6
字符截取后半段TRIM('H' FROM 'HelloWorld')elloWorld
字符替换REPLACE('abcd','b','m')amcd

数字函数:

作用函数结果
四舍五入ROUND(45.926, 2)45.93
截断TRUNC(45.926, 2)45.92
求余MOD(1600, 300)100

日期函数:

作用函数结果
获取当前日期now()
将日期格式的字符转换成指定格式的日期STR_TO_DATE('9-13-1999','%m-%d-%Y')1999-09-13
将日期转换成字符DATE_FORMAT(‘2018/6/6’,‘%Y年%m月%d日’)2018年06月06日

MySQL

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值