右连接 right join 或 right outer join,数据链接到右边那张表中
#通过下面这两种方法就可以把不同的表连接到一起,变成一张大表
#左连接 left join 或 left outer join,数据连接到左边那张表中
select * from user left join job on user.id=job.user_id;
select * from user left outer join job on user.id=job.user_id;
#右连接 right join 或 right outer join,数据链接到右边那张表中
SELECT * from user RIGHT JOIN job on user
.id = job.user_id;
join 或 inner join内连接
#join 或 inner join内连接
select * from user join job on user
.id = job.user_id;
#相当于下面这条语句
SELECT * from user, job where user
.id = job.user_id;
交叉链接,cross join,没有where指定查询条件的子句的交叉联接将产生两表的笛卡尔积。
#交叉链接,cross join,没有where指定查询条件的子句的交叉联接将产生两表的笛卡尔积。
SELECT * from user CROSS join job;
常用函数:
distinct 排出重复的(后面只能有一个字段名) 语法:select distinct 字段名 from 表名;
#distinct去重
select DISTINCT age, name from user;
limit 分页查询
#查询第几条数据,表示从索引为0开始,查询4条记录
select * from user LIMIT 4;
#查询id为3~7数据,从索引为2开始,查询5条数据
SELECT * from user LIMIT 2,5;
count获取表数据行数 , select count(*) from 表名;
SELECT COUNT(*) from user;
group by 分组 按字段分组(在表名和where后面)
SELECT * from user GROUP BY age;
order by 排序查询 语法:select * from 表名 where 条件 order by 字段名 asc/desc, 字段名1 asc/desc;
asc表示升序(默认) desc表示降序 where可以不要
#默认asc排序
SELECT * from user ORDER BY age;
UPPER(string) 可以将字符转成大写 语法:select upper(字段名) from 表名;
lower(string) 将字符转成小写
#将字符转为大写
SELECT UPPER(job) from user;
#将字符转为小写
SELECT LOWER(job) from user;
like 模糊查询 语法:select * from 表名 where 字段名 like ‘%M%’;
_:只能通配当前位置的一个字符
%:可以通配任意多个字符
%%:匹配所有的内容
SELECT * from user
where name like ‘%张%’;
not like 用法和like一样(作用相反),不包含的
SELECT * from user
where name not LIKE ‘%张%’;
in 范围查询 语法:select * from 表名 where 字段名 in(数据值1, 数据值2…);
SELECT * from user
where age in(18, 20);
and 或 && 并且
or 或 || 或
not 或 ! 非(取反)
is null; 为空
is not null; 不为空
between and 范围查找 语法:select * from 表名 where 字段名 between 值1 and 值2;
regexp 正则表达式 语法:select * from 表名 where 字段名 regexp 'S ′ ; S '; S ′; S表示最后一个字母为S的
= > >= < <= <> != <=> 操作符
<>, != 不等于操作符,
<=> 和=作用一样,可以用于和null比较
create table 新表 select * from 旧表; 复制表结构及数据
creata table 新表 select * from 旧表 where 1 = 2; 只复制表结构到新表
create table 新表 like 旧表; 只复制表结构到新表
concat(string1,String2) 拼接字符串 语法:select concar(字段1,字段2)/(字段1,‘字符串’) from 表名;
substr(string,start,length) 截取字符串。
start开始截取位置,length截取长度
insert(str, x, y, insert); 将字符串str的x位置开始,y个字符替换为字符串insert
LENGTH(string) 计算字符的长度。
replace(string,‘要替换的字符’,‘替换的字符’) 对指定内容进行替换
round(number,[index])按指定位置对数字进行四舍五入运算
Index为正:表示小数点右边的位置
Index为负:表示小数点左边的位置
left(str, x) right(str, x) 分别返回最左/右边的x个字符, 如果第二个参数为null则返回为null
lpad(str, n, pad), rpad(str, n, pad); 用字符串pad对str最左边和最右边进行填充,直到长度为n个字符长度.
trim(str) ltrim(str) rtrim(str) 去掉字符串两边/左边/右边字符的空格
strcmp(s1, s2) 如果s1比s2小,返回-1,大,返回1,等于返回0 字符串,ASCII比较
运算符:
+ - * / 运算,一般用在计算年薪。
#salary月工资*12,其他运算同理
select name, salary*12 from user;
max() 计算最大值
min() 计算最小值
sum() 计算总和
avg() 计算平均值
#查询年龄最大的
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
![img](https://i-blog.csdnimg.cn/blog_migrate/a53dd217b9889b5a5b1189c25fece2bd.jpeg)
Ending
Tip:由于文章篇幅有限制,下面还有20个关于MySQL的问题,我都复盘整理成一份pdf文档了,后面的内容我就把剩下的问题的目录展示给大家看一下
如果觉得有帮助不妨【转发+点赞+关注】支持我,后续会为大家带来更多的技术类文章以及学习类文章!(阿里对MySQL底层实现以及索引实现问的很多)
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
链图片转存中…(img-esSfT2Ah-1712691637827)]
[外链图片转存中…(img-iLH6MMWl-1712691637828)]
吃透后这份pdf,你同样可以跟面试官侃侃而谈MySQL。其实像阿里p7岗位的需求也没那么难(但也不简单),扎实的Java基础+无短板知识面+对某几个开源技术有深度学习+阅读过源码+算法刷题,这一套下来p7岗差不多没什么问题,还是希望大家都能拿到高薪offer吧。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!