Mysql高阶语句

一、group by

封装

group by有个原则,凡是在group by 后面出现的字段,必须在select 后面出现

libesl

select ‘字段1’,sum(‘字段2’) from 表名 group by ‘字段1’

自然语言处理

表情况如下

特征检测

MOS管

UI界面

情人节表白

二、having

用来过滤group by 语句返回的记录集,通常与group by语句联合使用,弥补了where不能和聚合函数联合使用的不足,having的作用就是再过滤为group by 分组的表过滤

驱动电机

强化学习

select ‘字段1’,sum(‘字段2’) from 表名 group by ‘字段1’ having 函数条件

macos

hadoop分区数据排序

EIP

Multi-Head Atte

三、 别名(给某个表起个别名)

华为

 如果别名是带空格的可以用()括起来

GB28181

四、子查询

1.in(内只返回两个表中连接字段相等的值)

 select  字段1 from 表名1 where 字段2 比较运算符   in ###外查询语句

低功耗蓝牙连接

 (select  字段1 from 表2 where 条件)                    ###内查询语句

Flutter苹果端启动图适配

MSP432

 小实验:东部所有的的销售总额

layui

 实验2:查询东部每个城市的销售总额

Unity微信小游戏

万兆

工作流调度

 实验3.两张表有关联地区的销售总额

青龙面板常见问题报错

 

union

 2.exists() 

如果exists()没有产生结果就不会执行外面外查询

jdk动态代理

如果exists()产生结果就会执行外面外查询语句

 3、内连接

实验所用的两张表

只返回两个表中连接字段相等的字段

如果有两张表,表1和表2做内连接查询,表1是外查询表2是内查询,表1有五条数据(有两条是重复的)查询出来的表只有四条数据,因为两条重复的数据就是被内连接给合并了。

左连接和右连接则不同,首先是不会合并两条信息(意思就是说左连接就是以左表为主表,左表如果有五条记录,无论有几条记录是重复的,都是会显示出来的,不会被合并)

格式:select * from 表名1 inner/left/right jion 表名2 on  左表的相同字段 = 右表相同的字段 ;

 内连接第二种方式:select 字段 from 左表,右表 where 左表.字段 右表字段

 4、左连接

格式:select * from 表名1 inner/left/right jion 表名2 on  左表的相同字段 = 右表相同的字段 ;

(返回包括左表中的所有记录和与右表相等的行记录,以左表为主,左表有几条记录,就是以左表的这几条记录来查询)

 5、右连接

(返回包括右表中的所有记录和右表中与左表相等的行记录,以右表为主,右表有几条记录,就是以右表的这几条记录来查询)

格式:select * from 表名1 inner/left/right jion 表名2 on  左表的相同字段 = 右表相同的字段 ;

 小实验1:使用内连接分别查询出东部和西部的城市的销售总额

小实验二:成绩排序

 六、视图

视图和表格不同的是,表时实际存储数的,而视图是建立在表格之上的一个架构,它本身并不实际存储数据记录,临时表在用户退出或同数据库的连接端口后会自动消失,视图不会消失,用视图将几个表关联起来,然后对这个视图进行查询炒作,就和对一个表查询一样,很方便

操作和对普通表操作一样

作用:

简化复杂的sql操作,比如复杂的联结,只使用实际表的一部分数据,通过只给用户访问视图的权限,确保数据的安全性.是图标的查询结果会随着select语句查询的实际数据的变换而变化,如果向视图表更新数据,如果定义的select语句使用的是真实存在的表格字段,是可以更新表格数据的,如果视图是两个表格联合查询出的表(通过函数或者其他方式查询出来的)是不可以插入数据的

 

七、 UNION  和 UNION ALL

(把两表的相同字段合并到一起)

 八、’ ‘空值和NULl值的区别

1.无值的长度为0,不占用空间,null值是占用空间的

2.null值是用not null 或者 is not null 来判断的

3.空值是可以用 ='  ' 来判断是否是空值<>代表不等于

4.在count()指定字段统计的时候会自动忽略null值 ,遇到无值会加入到记录中进行计算

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注