MySOL 大BOSS—
联合查询/多表查询
实现联合查询的基本机制:笛卡尔积
准备下列的表:
多表查询写列的时候要写成[表名].[列名];
1.查找名字为许仙同学的所有成绩
解决思路:
先把两张表进行笛卡尔积
针对笛卡尔积的结果进行筛选 保留有意义的数据
查找许仙同学的成绩
也可以用 join on
2.查找所有同学的总成绩以及该同学的基本信息
解决思路:
针对student和score表进行笛卡尔积
针对学生id进行筛选 干掉不必要的条件
限制条件中加入你要查找的条件
3.查找所有同学的每一科的成绩及同学的基本信息(同学姓名,科目,科目名称,对应的成绩)
解决思路:
针对student,score,course三张表进行笛卡尔积
干掉无意义的项
内连接:筛选结果一定是在两张表中都出现的记录
外连接:一张表中存在就查得到
有些数据在student中存在但是在score中不存在(反之亦然)也能查出来
左连接:在左表没在右表
student中存在score中不存在->查得到
student不存在score中存在->查不到
右连接:右表存在左表不存在
student中存在score中不存在->查不到
student不存在score中存在->查得到
自连接: 同一张表中连接自身进行查询
所有计算机原理成绩比Java高得同学的id
子查询:
单行子查询
a.查询和不想毕业同学的同班同学
先找到不想毕业同学的班级id
b.查询语文 英文对应的成绩
超过一行不能用= 得用 in
exists :用于主表查询的结果集合比较小
in :用于子表查询的结果集合比较小
合并查询:
查找id<3或者名字是英文的课程
**
MySQL----JDBC编程
**
先导入jar包
导入Jar包的方法:
1.下载和你自己Mysql版本匹配的jar包
2.在idea中的idea下复制粘贴
在根目录下进行如下操作:
接着找到jar包 复制粘贴(得到下面这个东东)
3.
4.找到下图
5.找到你刚刚在根目录下directorey的东西 点击ok即可完成操作
JDBC的开发:一些固定的套路
1.创建Datasource对象
2.创建连接
3.拼装sql语句
4.拼装完毕,执行sql语句
5.释放资源(先创建的最后释放)
插入数据:(具体看标注)
成功:
显示:
与insert的不同!
结果:
删除数据:
修改数据: