先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:xhs1999xhs (备注Java)
正文
目录
①最基础的查找,全列查找,直接把一个表的所有列,和所有行都查询出来~~
⑥ 排序~针对查询结果(临时表)进行排序(不会影响到数据库服务器上的原始数据的)
⑧排序的时候还可以通过order by来指定多个列进行排序~~先根据第一个列进行排序,如果第一列结果相同,相同的结果再通过第二列排序…
本节目标
1.数据表的操作~
2.增删改查基础部分
一、数据表的操作
①MySQL管理数据的方式
看图:
一个数据库中可以有很多个数据表
每个数据表有很多行,每一行称为是一条"记录".
每一行又有很多列,每一列称为一个"字段".
MySQL这样的数据库,就是要求每一行这里的列都是一致的~~
例:第一行是三列,第二行就也是三列…每一行都是三列
第一行的第一列是一个整数,第二行的第一列就也是一个整数…第一行的第二列是一个字符串,第二行的第二列就也是一个字符串…
为了描述这个数据表中列的信息,在创建数据表的时候,就需要指定"表头"(表头就是一个表格第一行的那个描述信息)
看图:
但是不是所有的数据,都是按照表格的方式来组织数据的~~
MySQL、Oracle、SQL server 都是按照表格来组织,称为"关系型数据库"
Redis、HBase、MongoDB 不要求按照表格方式组织(类似于文档/键值对),称为"非关系型数据库"
②数据表类型
在创建表之前,要先简单认识一下MySQL中的数据类型~~
数值类型:
整型:
BIT[ (M) ] M指定位数,默认为1
TINYINT 1字节
SMALLINT 2个字节
INT 4个字节
BIGINT 8个字节
浮点型:
FLOAT(M D) M指有效数字的长度 D指定小数位数
DOUBLE(M D)
DECIMAL(M D) 能够精确的表示小数
字符串类型:
VARCHAR(SIZE) 可变长度字符串,SIZE单位是字符.可以根据实际需要,来指定要用多少空间
TEXT 长文本数据
MEDIUMTEXT 中长度文本数据
BLOB 二进制形式的长文本数据
日期类型:
DATETIME 8字节
TIMSTAMP 4字节
如果尝试插入的数据格式不符合要求,就直接提示咱们了~~
③创建表
create table 表名 (列名 类型, 列名 类型…);
在进行表操作之前,要先选中数据库.
在指定的时候,列名在前,类型在后~
④查看表
show tables;
操作的前提,也是得先选中数据库~~
⑤查看表结构
desc 表名;
查看某个表里面有几列,每一列都是啥类型,每一列是啥名字,每一列其他补充信息~~
⑥删除表
drop table 表名;
删除表操作,也是一个非常危险的操作!!!
谨慎对待!!!一旦删除之后,可能无法恢复
⑦注释
coment"姓名"
创建表的时候,可以使用coment来给某个列后面加上注释~~(局限于建表的时候使用)
–删除表
这个是咱们更普遍使用的注释~~
–空格(如果少了空格是非法的)和Java中的//类似,都是表示这一行就是注释了
补充小知识:
在代码中表示"钱"一般有两种方式:
1.使用Decimal/BigDecimal
2.使用 int (单位是分即可)
在cmd里面,Ctrl+C表示中断当前的输入(一个SQL输入一般,你不想要了,重新输入就直接Ctrl+C)
二、增删改查
C U R D
C创建
U修改
R查询
D删除
1. 新增,insert 往表里面插入数据~
insert into 表名 values (列的值,可以有若干个);这里的一个括号,就对应到一条记录
insert进行插入的时候,可以只插入其中的某一列或者某几列,此时其他的列将采用默认值~
insert也可以一次插入多个行~
values后面的每个()都对应到一行,可以一次性的带有多个(),多个()之间使用逗号来分割
注意事项:
1.要求values 后面 () 中的字段的个数和表头约定的列数以及每个列的类型,要匹配~~
2.在SQL中表示字符串,可以使用单引号,也可以使用双引号~
3.如果某一列是datetime,此时如何进行插入?
①通过指定格式的字符串来插入一个指定时间
②通过now()函数来插入一个当前系统时间
2.查找语句
查找语句是SQL中最核心也最复杂的操作~~
①最基础的查找,全列查找,直接把一个表的所有列,和所有行都查询出来~~
select * from 表名;
*就是通配符,表示一个表的所有列~~
通过select * from就能把一个表里面所有的行和所有的列都查找到~
查找的结果是一个“临时表”
select操作,不会影响到服务器这边硬盘上保存的数据~~
②指定列查询~只查询自己关注的列
select 列名(可以有多个)from 表名;
这里在查询的时候会显示的告诉数据库要查的是那些列,数据库就会有针对性的进行返回数据了~
③指定查询字段为表达式~
在查询的时候,同时进行一些运算操作~~列和列之间)
举例1:
查询结果中的英语成绩比真实的多10分
举例2:
查询一下每个同学的总分~(语文+数学+英语)
④查询字段指定别名
相当于是给查询结果的临时表,指定新的列名~~
⑤针对查询的结果去重~~
关键字distinct
针对查询的结果,把重复的记录去掉~
如果是针对多个列来进行去重,就得这多个列的值都相同的时候才视为重复~~
⑥ 排序~针对查询结果(临时表)进行排序(不会影响到数据库服务器上的原始数据的)
select 列名…from 表名 order by 列名 asc(升序排序)/desc(降序排序);
asc如果省略不写,也是默认升序
有的数据库记录中是带有NULL值的,像这样的NULL认为是最小的~~(升序就排在最前面,降序就排在最后面)
⑦ 排序也可以依据表达式或者别名来进行排序~~
通过别名来排序
⑧排序的时候还可以通过order by来指定多个列进行排序~~先根据第一个列进行排序,如果第一列结果相同,相同的结果再通过第二列排序…
先按照数学排序,如果数学成绩相同,再按照语文排序
多个列排序的时候是有明确优先级的~~
如果不指定多个列的话,只有制定一个列,此时如果结果相同,彼此之间的顺序都是不可预期的~~
⑨ select中的条件查询
在select的后面加上一个where字句,后面跟上一个具体的筛选条件
select 列名 from 表名 where 条件
举例1:
查询英语不及格的同学及英语成绩(<60分)
举例2:
查询英语成绩好于语文成绩的同学
举例3:
查询总分在200分以下的同学
举例4:
查询语文成绩大于80,并且英语成绩大于80分的同学
举例5:
查询语文成绩在[80,90]分的同学及语文成绩
这两种写法本质上没有啥区别
举例6:
查询数学成绩是58或者59或者98或者99分的同学及数学成绩
只要数学成绩是()中的任意的值,都可以被查询出来
也可以通过or这样的写法,来实现类似的效果~
读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
更多笔记分享
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs(备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
9096aa861c013fd0.png)
只要数学成绩是()中的任意的值,都可以被查询出来
也可以通过or这样的写法,来实现类似的效果~
读者福利
由于篇幅过长,就不展示所有面试题了,感兴趣的小伙伴
[外链图片转存中…(img-uSphGZ42-1713683288102)]
[外链图片转存中…(img-ZNNzeKUf-1713683288102)]
[外链图片转存中…(img-cfXdGBPL-1713683288102)]
更多笔记分享
[外链图片转存中…(img-GrxPogKj-1713683288103)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs(备注Java)
[外链图片转存中…(img-YxpvtS89-1713683288103)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!