![](https://img-blog.csdnimg.cn/2020102021563644.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL学习
MySQL总结.
译制片~
好好生活,好好学习
展开
-
mysql查询一个属性中出现最多的那个属性值
首先简单建立一张测试表create table test(id int);插入以下数据首先我们先按照该属性进行分组,查看每个属性出现的次数。把这个结果当成一张新的表,后面要用到select id,count(*) cnt from test GROUP BY id;我们可以从上面查询结果中把最大的cnt取出来然后进行保存,回过头再用这张表进行筛选出cnt等于这个值的字段就是我们要的结果select t.id,t.cntfrom (select id,count(*) cnt from原创 2020-12-23 15:56:18 · 1021 阅读 · 0 评论 -
MySQL中连接查询之外连接
外连接:两张表进行连接,有主副之分,而且主要查询主表中的数据匹配得上就输出,匹配不上副表就自动模拟出NULL与之匹配。其中主表的数据全部无条件的查询出来。外连接的分类:左外连接(左连接):表示左边这张表是主表。右外连接(右连接):表示右边这张表是主表。左连接和右连接可以自动转换。过程中会用到的两张表:1、员工表2、部门表(以下都用左连接)先给个样例说明一下内连接和外连接小小区别:内连接:外连接:可以看出在查询员工领导时候,内连接有13条记录,外连接有14条记录。从而就说明了,原创 2020-10-21 21:45:44 · 278 阅读 · 0 评论 -
SQL中对于select嵌套的使用(where和from)
一共使用到的三张经典表:员工表:部门表:薪资等级表:创建这三张表用到的SQL脚本https://pan.baidu.com/s/1P0ky0QL2JTQWHBI81AE_3g提取码:5ga71、(where嵌套select)先看员工表:如果我想查询一下这些员工中薪资高于平均薪资的员工姓名以及工作岗位的话,我们可能会想到这样写:select ename,job from emp where sal > avg(sal);但是这样是错误的,因为group by是在whe原创 2020-10-21 17:40:59 · 9555 阅读 · 1 评论 -
MySQL中连接查询之内连接
内连接方式通常包括等值连接,非等值连接,自连接。内连接的特点是连接之后的两个表等级相同,没有主副之分,匹配得到就输出,匹配不到就跳过。先来看三张表:员工表部门表薪资等级表1、等值连接在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复属性。问题:我想查看员工的部门名称和工作地点,这时候我们就可以使用等值连接进行查询selecte.ename,d.dname,d.locfromemp ejoindept done.dept原创 2020-10-21 17:20:29 · 169 阅读 · 0 评论 -
group by注意事项
group by函数是SQL语句中的分组函数,它可以根据group by后面的字段进行分组,如果没有出现group by函数的话默认这个表就是一个组。这是一张员工表,如果我们想要查询每个工作岗位的平均薪资的话,SQL语句可以这样写:selectjob,avg(sal)fromempgroup by job;就会出现我们想要的结果但是在使用group by有一些事项需要我们注意一下:1、group by函数通常联合分组函数(sum,avg,max,min,count)进行使用,而且分组原创 2020-10-21 16:55:57 · 4887 阅读 · 5 评论 -
MySQL中的数据类型
int 整数型bigint 长整型float 浮点型double 双精度型char 定长字符型(java中的String,最多255字符)varchar 变长字符型(java中的StringBuilder/StringBuffer,最多255字符)date 日期型(java中的java.sal.date)BLOB 二进制大对象(存放图片,视频等流媒体信息)CLOB 字符大对象(存储大文本,超过255字符可以用这个)注意:varchar相当于是在编译时动态分配给对象字符空间,但是不能超过定义原创 2020-10-20 21:57:46 · 89 阅读 · 0 评论