美文网首页JAVAEE
JAVAEE——数据库多表操作

JAVAEE——数据库多表操作

作者: So_ProbuING | 来源:发表于2018-03-14 23:40 被阅读4次

外键

我们假设有两张表需要关联,一张product商品表,一张category商品分类表。那么我们通常的做法是,在一张表上添加另一张表的一列信息,例如在商品表中添加分类表的category_id,那么我们称为 category为主表,添加的product表为从表,添加的category_id称为外键,category表的cid称为主键,我们通过主表的主键和从表的外键来描述主外键关系,这样我们就描述了一个一对多的关系。
外键的特点:
* 从表外键的值时对主键的引用
* 从表的外键类型,必须与主键类型一致


image.png

声明外键约束

语法

alter table 从表 add[constraint][外键名称] foreign key (从表外键字段名) references (主表的主键)

alter table 从表 drop foreign key 外键名称 -删除外键 
# 为从表添加外键
alter table product ADD foreign key(category_id) references category(cid);

多表查询

  • 交叉查询 (使用较少)
select * from A,B 得到的是A表和B表的乘积
  • 内连接
    内连接使用的关键字:inner join(可以省略) 显式内连接
    • 隐式内连接:select * from A,B where 条件
    • 显式内连接:select * from A inner join B on 条件
# 隐式内连接
select * from category c,product p where c.cid = p.category_id
# 显式内连接
select * from category inner join product on cid = product.category_id
select * from category c inner join product p on c.cid = p.category_id;
  • 外链接
    外链接使用关键字 outer join --outer可以省略
    • 左外链接:left outer join

    select * from A left outer join B on 条件
    select * from category LEFT JOIN product on category.cid = product.category_id;
    * 右外链接 right outer join
    > select * from A right outer join B on 条件
    select * from category RIGHT JOIN product on category.cid = product.category_id;

  • 左外连接和右外连接的区别


    外连接区别.png

子查询

将一条select语句结果作为另一条select语句的一部分(查询条件,查询结果,表等)

select * from product WHERE category_id=(select cid from category WHERE cname = '化妆品');
上面这条SQL语句中 查询条件where category_id 的值成了另一个查询语句的结果

相关文章

  • JAVAEE——数据库多表操作

    外键 我们假设有两张表需要关联,一张product商品表,一张category商品分类表。那么我们通常的做法是,在...

  • MySQL 多表操作

    day07-多表操作 今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建...

  • sql学习

    一、对数据库的操作 二、对数据库表的操作 三、对数据库表记录进行操作(修改) 多表查询

  • 第69节:Java中数据库的多表操作

    第69节:Java中数据库的多表操作 前言 学习数据库的多表操作,去电商行业做项目吧!!! 达叔,理工男,简书作者...

  • 史上最高效的ORM方案——GreenDao3.0高级用法

    目录 session 缓存 多表关联 多表查询 自定义参数类型 与数据库操作相关的AS插件 session 缓存 ...

  • MySQL数据库查询 学习笔记

    WP网站数据库导入操作 WP网站数据库导出操作(在数据库命令行外面执行) stockxstoress.com多表联...

  • mysql数据库-多表查询

    今日任务 完成对MYSQL数据库的多表查询及建表的操作 教学目标 掌握MYSQL中多表的创建及多表的查询 掌握MY...

  • Jpress V2.0 编译、多表操作、读取配置文件

    多表操作 以下解决多表查询分页以及数据库表字段相同会覆盖的问题 参考资料:https://www.jfinal.c...

  • XUtils3框架之数据库操作

    如何创建删除一张表 如何对表进行增删查改操作如何创建数据库和删除数据库建立一表对一表,多表对一表,多表对多表的外键...

  • Mysql学习之二 Mysql概念及安装

    一、程序员的数据库要求 基本的SQL操作、CRUD操作 多表连接查询、分组查询和子查询。 常用数据库的的单行函数。...

网友评论

    本文标题:JAVAEE——数据库多表操作

    本文链接:https://www.haomeiwen.com/subject/fkryfftx.html