【Day08】

目录

MySQL-多表查询-概述

MySQL-多表查询-内连接

MySQL-多表查询-外连接

MySQL-多表查询-[标量、列]子查询

MySQL-多表查询-[行、表]子查询

MySQL-多表查询-案例

MySQL-事务-介绍与操作

MySQL-事务-四大特性

MySQL-索引-介绍

MySQL-索引-结构

MySQL-索引-操作语法

Mybatis-入门-课程介绍

Mybatis-入门-快速入门程序

Mybatis-入门-配置SQL提示

Mybatis-入门-JDBC介绍

Mybatis-入门-数据连接池

 Mybatis-入门-lombok工具包


MySQL-多表查询-概述

 

-- 多表查询 --
select * from tb_emp, tb_dept where tb_emp.dept_id = tb_dept.id;

-- 起别名
select * from tb_emp e, tb_dept d where e.dept_id = d.id;

MySQL-多表查询-内连接

-- 内连接 --
-- A.查询员工的姓名 , 及所属的部门名称 (隐式内连接实现)
select tb_emp.name, tb_dept.name
from tb_emp,
     tb_dept
where tb_emp.dept_id = tb_dept.id;

-- 起别名
select e.name, d.name from tb_emp e, tb_dept d where e.dept_id = d.id;

-- B.查询员工姓名 , 及所属的部门名称 (显示内连接实现)
select tb_emp.name, tb_dept.name from tb_dept inner join tb_emp  on tb_emp.dept_id = tb_dept.id;

MySQL-多表查询-外连接

-- 外连接 --
-- A.查询员工表 所有 员工的姓名, 和对应部门名称 (左外连接) 会完全包含左表的数据
select tb_emp.name, tb_dept.name from tb_emp left outer join tb_dept on tb_emp.dept_id = tb_dept.id;


-- B.查询部门表 所有 部门的名称, 和对应的员工名称 (右外连接)会完全包含右表的数据
select tb_dept.name, tb_emp.name from tb_emp  right outer join tb_dept  on tb_emp.dept_id = tb_dept.id;

MySQL-多表查询-[标量、列]子查询


-- 子查询 --
-- 标量子查询
-- A.查询“教研部”的所有员工信息
-- a.查询 教研部 的部门ID
select id from tb_dept where name = '教研部';

-- b.再查询该部门ID下的员工信息
select * from tb_emp where dept_id = 2;

-- 整合
select * from tb_emp where dept_id = (select id from tb_dept where name = '教研部');


-- B.查询在“方东白”入职之后的员工信息
-- a.查询 方东白 的入职日期
select entrydate from tb_emp where name = '方东白';

-- b.查询再 '方东白' 入职之后的员工信息
select * from tb_emp where entrydate >= '2012-11-01';

-- 整合
select * from tb_emp  where tb_emp.entrydate >= (select tb_emp.entrydate from tb_emp where tb_emp.name = '方东白');


-- 列子查询
-- A.查询 "教研部"和"咨询部"的所有员工信息
-- a.查询 "教研部"和"咨询部"部门ID - tb_dept
select id from tb_dept where name = '教研部' || name = '咨询部';

-- b.根据部门ID,查询该部门下的员工信息 - tb_emp
select * from tb_emp where dept_id in (2, 3);

-- 整合
select * from tb_emp where dept_id in (select id from tb_dept where name = '教研部' || name = '咨询部');

MySQL-多表查询-[行、表]子查询

-- 行子查询
-- A.查询与“韦一笑”的入职日期及职位都相同的员工信息
-- a.查询“韦一笑”的入职日期和职位
select entrydate, job from tb_emp where name = '韦一笑';

-- b.查询与“韦一笑”入职日期和职位都相同的员工信息
select * from tb_emp where entrydate = '2007-01-01' and job = 2;
select * from tb_emp where (entrydate, job) = ('2007-01-01', 2);

-- 整合
select *from tb_emp where entrydate = (select entrydate from tb_emp where name = '韦一笑') and job = (select job from tb_emp where name = '韦一笑');
select * from tb_emp where (entrydate, job) = (select entrydate, job from tb_emp where name = '韦一笑');


-- 表子查询
-- A.查询入职日期是"2006-01-01"之后的员工信息,及其部门名称
-- a.查询入职日期之后的员工信息
select * from tb_emp where entrydate > '2006-01-01';

-- b.查询这部分员工信息及其部门名称
select e.*, d.name from (select * from tb_emp where entrydate > '2006-01-01') e, tb_dept d where e.dept_id = d.id;

MySQL-多表查询-案例

-- 需求:
-- 1.查询价格低于10元的菜品的名称、价格 及其 菜品的分类名称
-- 表 : dish , category
-- SQL :
select d.name, d.price, c.name
from dish d,
     category c
where d.price < 10
  and d.category_id = c.id;

-- 2.查询所有价格在 10元(含)到50元(含)之间 且 状态为“启售”的菜品,展示出菜品的名称(即使菜品没有分类,也需要将菜品查询出来)
-- 表 : dish , category
-- SQL :
select d.name, d.price, c.name
from dish d
         left join category c on d.category_id = c.id
where d.status = 1
  and d.price between 10 and 50;

-- 3.查询每个分类下最贵的菜品,展示出分类的名称、最贵的菜品的价格
-- 表 : dish , category
-- SQL :
select c.id, max(d.price)
from dish d,
     category c
where d.category_id = c.id
group by c.name;

-- 4.查询各个分类下 菜品状态为“启售”,并且 该分类下菜品总数量大于等于3的 分类名称
-- 表 : dish , category
-- SQL :
select c.name, count(*)
from dish d,
     category c
where d.category_id = c.id
  and d.status = 1
group by c.name
having count(*) >= 3;

-- 5.查询出 “商务套餐A”中包含了哪些菜品 (展示出套餐名称、价格, 包含的菜品名称、价格、份数)
-- 表 : dish , setmeal , setmeal_dish
-- SQL :
select s.name, s.price, d.price, d.name, sd.copies
from setmeal s,
     setmeal_dish sd,
     dish d
where sd.dish_id = d.id
  and sd.setmeal_id = s.id
  and s.name = '商务套餐A';

-- 6.查询出低于菜品平均价格的菜品信息(展示出菜品名称、菜品价格)
-- 表 : dish
-- SQL :
select d.name, d.price from dish d where d.price < (select avg(price) from dish);

MySQL-事务-介绍与操作

-- 开启事务
start transaction;

-- 删除部门
delete from tb_dept where id=3;

-- 删除部门下的员工
delete from tb_emp where dept_id = 3;

-- 提交事务
commit;

-- 回滚事务
rollback;

MySQL-事务-四大特性

MySQL-索引-介绍

MySQL-索引-结构

MySQL-索引-操作语法

-- ===================================== 索引 ======================================
-- 创建 : 为tb_emp表的name字段创建索引
create index idx_emp_name on tb_emp(name);

-- 查询 : 查询 tb_emp 表的索引信息
show index from tb_emp;

-- 删除 : 删除 tb_emp 表中的name字段的索引
drop index idx_emp_name on tb_emp;

Mybatis-入门-课程介绍

Mybatis-入门-快速入门程序

Mybatis-入门-配置SQL提示

Mybatis-入门-JDBC介绍

Mybatis-入门-数据连接池

 Mybatis-入门-lombok工具包

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
《淘淘商城-day08.docx》是一份关于淘淘商城第八天工作的文档。在这一天,淘淘商城的团队采取了一系列措施来进一步提升用户体验和销售业绩。 首先,团队进行了网站内容的优化。他们对商品详情页进行了修复和更新,确保信息的准确性和完整性。同时,他们也对页面的布局进行了调整,使得用户更容易浏览和购买商品。这些改进措施能够提升用户的满意度和购买转化率。 其次,团队还加强了与供应商的合作关系。他们与一些热门品牌建立起了合作伙伴关系,以获得独家销售权或更优惠的价格。这不仅能够吸引更多的用户,还能提高淘淘商城的竞争力。 另外,团队还对物流配送进行了优化。他们与一家可靠的物流公司合作,以确保商品能够及时、安全地送达给用户。他们还推出了更快速、更便捷的配送选项,如次日达和晚间配送,以满足用户的各种需求。 为了增加用户的复购率,团队还积极进行了促销活动。他们推出了限时限量的特价商品,以及购买一定金额就能获得赠品或折扣的优惠活动。这些促销措施能够吸引用户重复购买,并提升销售额。 总之,《淘淘商城-day08.docx》记录了淘淘商城团队在第八天所做的一系列工作。通过网站内容优化、供应商合作、物流配送优化和促销活动,团队致力于提升用户体验和销售业绩,从而使淘淘商城更加竞争和成功。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

看未来捏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值