7.where条件查询
where条件查询的介绍
比较运算符查询
逻辑运算符查询
模糊查询
范围查询
空判断查询
小结
8.排序
排序查询语法
小结
9.分页查询
分页查询的介绍
当我们在京东购物,浏览商品列表的时候,由于数据特别多,一页显示不完,一页一页的进行显示,这就是分页查询
分页查询的语法
分页查询案例
小结
1.聚合函数
聚合函数的介绍
求总行数
求最大值
求最小值
求和
求平均值
聚合函数的特点
聚合函数默认忽略字段为null的记录 要想列值为null的记录也参与计算,必须使用ifnull函数对null值做替换。
小结
2.分组查询
分组查询介绍
group by的使用
group by + group_concat()的使用
group by + 聚合函数的使用
group by + having的使用
group by + with rollup的使用
小结
3.连接查询-内连接
连接查询的介绍
内连接查询
小结
4.连接查询-左连接
左连接查询
小结
5.连接查询-右连接
右连接查询
小结
6.连接查询-自连接
select c.id, c.title, c.pid, p.title from areas as c inner join areas as p on c.pid = p.id where p.title = ‘山西省’;
7.子查询
子查询的介绍
子查询的使用
小结
子查询是一个完整的SQL语句,子查询被嵌入到一对小括号里面
8.数据库设计之三范式
数据库设计之三范式的介绍
第一范式的介绍
第二范式的介绍
第三范式的介绍
E-R模型的介绍
小结
9.外键SQL语句的编写
外键约束作用
外键约束:对外键字段的值进行更新和插入时会和引用表中字段的数据进行验证,数据如果不合法则更新和插入会失败,保证数据的有效性
对于已经存在的字段添加外键约束
在创建数据表时设置外键约束
删除外键约束
小结
10.演练-分组和聚合函数的组合使用
数据准备
– 创建 “京东” 数据库
create database jing_dong charset=utf8;
– 使用 “京东” 数据库
use jing_dong;
– 创建一个商品goods数据表
create table goods(
id int unsigned primary key auto_increment not null,
name varchar(150) not null,
cate_name varchar(40) not null,
brand_name varchar(40) not null,
price decimal(10,3) not null default 0,
is_show bit not null default 1,
is_saleoff bit not null default 0
);
– 向goods表中插入数据
insert into goods values(0,‘r510vc 15.6英寸笔记本’,‘笔记本’,‘华硕’,‘3399’,default,default);
insert into goods values(0,‘y400n 14.0英寸笔记本电脑’,‘笔记本’,‘联想’,‘4999’,default,default);
insert into goods values(0,‘g150th 15.6英寸游戏本’,‘游戏本’,‘雷神’,‘8499’,default,default);
insert into goods values(0,‘x550cc 15.6英寸笔记本’,‘笔记本’,‘华硕’,‘2799’,default,default);
insert into goods values(0,‘x240 超极本’,‘超级本’,‘联想’,‘4880’,default,default);
insert into goods values(0,‘u330p 13.3英寸超极本’,‘超级本’,‘联想’,‘4299’,default,default);
insert into goods values(0,‘svp13226scb 触控超极本’,‘超级本’,‘索尼’,‘7999’,default,default);
insert into goods values(0,‘ipad mini 7.9英寸平板电脑’,‘平板电脑’,‘苹果’,‘1998’,default,default);
insert into goods values(0,‘ipad air 9.7英寸平板电脑’,‘平板电脑’,‘苹果’,‘3388’,default,default);
insert into goods values(0,‘ipad mini 配备 retina 显示屏’,‘平板电脑’,‘苹果’,‘2788’,default,default);
insert into goods values(0,'ideacentre c340 20英寸一体电脑 ',‘台式机’,‘联想’,‘3499’,default,default);
insert into goods values(0,‘vostro 3800-r1206 台式电脑’,‘台式机’,‘戴尔’,‘2899’,default,default);
insert into goods values(0,‘imac me086ch/a 21.5英寸一体电脑’,‘台式机’,‘苹果’,‘9188’,default,default);
insert into goods values(0,‘at7-7414lp 台式电脑 linux )’,‘台式机’,‘宏碁’,‘3699’,default,default);
insert into goods values(0,‘z220sff f4f06pa工作站’,‘服务器/工作站’,‘惠普’,‘4288’,default,default);
insert into goods values(0,‘poweredge ii服务器’,‘服务器/工作站’,‘戴尔’,‘5388’,default,default);
insert into goods values(0,‘mac pro专业级台式电脑’,‘服务器/工作站’,‘苹果’,‘28888’,default,default);
insert into goods values(0,‘hmz-t3w 头戴显示设备’,‘笔记本配件’,‘索尼’,‘6999’,default,default);
insert into goods values(0,‘商务双肩背包’,‘笔记本配件’,‘索尼’,‘99’,default,default);
insert into goods values(0,‘x3250 m4机架式服务器’,‘服务器/工作站’,‘ibm’,‘6888’,default,default);
insert into goods values(0,‘商务双肩背包’,‘笔记本配件’,‘索尼’,‘99’,default,default);
SQL语句演练
1.将查询结果插入到其它表中
思考
创建商品分类表
把goods表中的商品分类添加到商品分类表
小结
想要完成表复制可以使用: insert into … select … SQL语句
2.使用连接更新表中某个字段数据
更新goods表中的商品分类信息
小结
连接更新表中数据使用: update … join … 语句
3.创建表并给某个字段添加数据
思考
创建品牌表
更新goods表中的品牌信息
小结
创建表并给字段插入数据使用: create table … select 语句
4.修改goods表结构
5.事务
事务的介绍
事务的四大特性
事务的使用
事务演练的SQL语句:
begin;
insert into students(name) values(‘李白’);
– 查询数据,此时有新增的数据, 注意: 如果这里后续没有执行提交事务操作,那么数据是没有真正的更新到物理表中
select * from students;
– 只有这里提交事务,才把数据真正插入到物理表中
commit;
– 新打开一个终端,重新连接MySQL数据库,查询students表,这时没有显示新增的数据,说明之前的事务没有提交,这就是事务的隔离性
– 一个事务所做的修改操作在提交事务之前,对于其他事务来说是不可见的
select * from students;
小结
6.索引
索引的介绍
索引的使用
案例-验证索引查询性能
from pymysql import connect
def main():
创建Connection连接
conn = connect(host=‘localhost’,port=3306,database=‘python’,user=‘root’,password=‘mysql’,charset=‘utf8’)
获得Cursor对象
cursor = conn.cursor()
插入10万次数据
for i in range(100000):
cursor.execute(“insert into test_index values(‘ha-%d’)” % i)
提交数据
conn.commit()
if name == “main”:
main()
联合索引
联合索引的最左原则
MySQL中索引的优点和缺点和使用原则
小结
7.PyMySQL的使用
思考
Python程序操作MySQL数据库
pymysql完成数据的查询操作
import pymysql
创建连接对象
conn = pymysql.connect(host=‘localhost’, port=3306, user=‘root’, password=‘mysql’,database=‘python’, charset=‘utf8’)
获取游标对象
cursor = conn.cursor()
查询 SQL 语句
sql = “select * from students;”
执行 SQL 语句 返回值就是 SQL 语句在执行过程中影响的行数
row_count = cursor.execute(sql)
print(“SQL 语句执行影响的行数%d” % row_count)
取出结果集中一行数据, 例如:(1, ‘张三’)
print(cursor.fetchone())
取出结果集中的所有数据, 例如:((1, ‘张三’), (2, ‘李四’), (3, ‘王五’))
for line in cursor.fetchall():
print(line)
关闭游标
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**[外链图片转存中…(img-BYCBiCip-1713474819305)]
[外链图片转存中…(img-q2Ie7oJn-1713474819305)]
[外链图片转存中…(img-SKQku8zZ-1713474819306)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
总结
虽然面试套路众多,但对于技术面试来说,主要还是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。
[外链图片转存中…(img-8h88cENs-1713474819306)]
[外链图片转存中…(img-hqaIMHO1-1713474819306)]
上面提到的关于这些JAVA基础、三大框架、项目经验、并发编程、JVM及调优、网络、设计模式、spring+mybatis源码解读、Mysql调优、分布式监控、消息队列、分布式存储等等面试题笔记及资料
有些面试官喜欢问自己擅长的问题,比如在实际编程中遇到的或者他自己一直在琢磨的这方面的问题,还有些面试官,尤其是大厂的比如 BAT 的面试官喜欢问面试者认为自己擅长的,然后通过提问的方式深挖细节,刨根到底。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!