目录

  • 1. 一对一关系
  • 2. 一对一外键关联查询配置

1. 一对一关系

数据库中的一对一关系 – 主键关联和外键关键
如person表和身份证表card

1、主键关联

create table person (pid int primary key auto_increment,pname varchar(40) not null,pgender varchar(10) not null
)
create table card (cid int not null, -- 引用person表的主键(由程序控制)cnumber varchar(18) not null
)

2、外键关联
person表不变,新增card表外键列

create table card (cid int not null primary key auto_increment,cnumber varchar(18) not null,pid int,foreign key(pid) references person(pid)) -- person的主键(应该程序控制)
)

2. 一对一外键关联查询配置

  • sql 以用户表和订单表为例,订单与用户一对一
create table `users1` (`userId` int (11),`userName` varchar (60),`userPassword` varchar (120),`birthday` bigint (255)
); create table `orders` (`order_id` int (11),`order_time` datetime ,`order_money` Decimal (11),`uid` int (11)
); 
package cn.bitqian.entity;import java.sql.Timestamp;/*** 用户订单表  一对一* 一个订单对应一个用户...* @author echo lovely* @date 2020/9/13 10:26*/
public class Order {private Integer orderId;private Timestamp orderTime;private Double orderMoney;// 当前订单对应的用户..  面向对象表示private User user;// constructor.. set/get toString..
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="cn.bitqian.dao.OrderMapper"><!-- 给Order封装数据 --><resultMap id="orderMap" type="Order"><id property="orderId" column="order_id"/><result property="orderTime" column="order_time"/><result property="orderMoney" column="order_money"/><!--  封装order里面的user --><!--<result property="user.userId" column="userid"/><result property="user.userName" column="username"/><result property="user.userPassword" column="userpassword"/><result property="user.birthday" column="birthday"/>--><!-- user属性 User类型--><association property="user" javaType="User"><id property="userId" column="userid"/><result property="userName" column="username" /><result property="userPassword" column="userpassword" /><result property="birthday" column="birthday" /></association></resultMap><!-- 返回的是order --><select id="queryAllOrder" resultMap="orderMap">SELECT *, u.`userId` AS userid FROM orders o LEFT JOIN users1 uON o.`uid` = u.`userId`</select></mapper>

多表操作查询 一对一相关推荐

  1. mybatis多表操作(一对一、一对多、多对多)

    1.获取主键值 1.1使用useGeneratedKeys属性 1.2使用selectKey标签 修改UserMapper 2.分页 3.多表操作(重难点) 3.1一对一 需求:(电商)[一个用户对应 ...

  2. 10 ORM 多表操作 查询

    1.子查询:基于对象的跨表查询 def query(request):"""跨表查询:1.基于对象查询2.基于双下划线查询3.聚合.分组查询4. F Q 查询" ...

  3. DJango周总结二:模型层,单表,多表操作,连表操作,数据库操作,事务

    django周复习二  1,模型层:   1单表操作:    13个必会操作总结     返回QuerySet对象的方法有     all()     filter()     exclude()   ...

  4. Django基础五之Django模型层(二)多表操作

    Django基础五之Django模型层(二)多表操作 一 创建模型 表和表之间的关系 一对一.多对一.多对多 # 作者表 比较常用的信息放在这个表中 class Author(models.Model ...

  5. 【MySQL多表操作练习】

    多表操作练习 > > > MySQL基础 > > > MySQL的多表操作查询 > > > MySQL多表操作练习 > > > ...

  6. python代码函数字符查询宝典书籍_Django基础五之django模型层(一)单表操作

    二 单表操作 一.创建表 创建模型 创建名为book的app,在book下的models.py中创建模型: from django.db importmodels#Create your models ...

  7. day055056Django之多表操作,多表查询

    本节内容: 1.回顾一对一.一对多.多对多的表结构关系 2.创建模型 3.添加表记录 4.基于对象的跨表查询 5.基于双下划线的跨表查询 6.聚合查询与分组查询 7.F查询与Q查询 一.回顾一对一.一 ...

  8. 2019-7-27 [MySQL] DQL 简单查询[别名/去重/运算] 条件查询 排序查询 聚合查询 分组查询 导出与导入 多表操作[一对多/多对多][创外键 创联合主键 约束 添加 删除 测试]

    文章目录 5 SQL语句(DQL) 5.1DQL准备工作和语法 5.1.1准备工作 5.1.2 DQL语法: 5.2 简单查询 5.2.1 查询所有的商品 5.2.2 查询商品名和商品价格. 5.2. ...

  9. 7. MyBatis多表查询 - 一对一 - 一对多 - 多对多

    7. MyBatis多表查询 - 一对一 - 一对多 - 多对多 前言 在前面的篇章,我们已经熟悉了单表查询,下面我们来看看如何进行 多表查询. 数据准备 create database if not ...

最新文章

  1. 如何用sysbench做好IO性能测试
  2. Nessus 4.4 windows and linux 安装手册
  3. mysql 常用sql语句 简介
  4. Spring 5.0 源码编译, 403, 404 依赖pom 无法下载问题
  5. Illustrator 上色
  6. python不可实现的领域3d_岩土工程新手入门指南---FLAC3D学习指导与建议
  7. linux下keytool生成证书_生成证书命令keytool
  8. 堆排序(python实现)
  9. 19-background
  10. Windows Bat脚本实现定时重启应用程序
  11. 视频教程-Python零基础入门教程-Python
  12. 如何读取PHD实时数据
  13. 一沉担千斤,一默解万愁
  14. C++实现简单Kmeans聚类算法
  15. 记一次简单网络排障过程分析
  16. 鹰谷靶点 | PI3K靶向抑制剂治疗乳腺癌的研究进展
  17. 深度学习笔记(三):BatchNorm(BN)层
  18. 智慧交通落地关键:如何利用AI视频分析技术来改善交通?
  19. 区块链前世今生和三个感性故事
  20. 图像模块,实验三,二维码读取程序,显示在屏幕上

热门文章

  1. “睡服”面试官系列第八篇之iterator(建议收藏学习)
  2. 前端学习(1352)模板语法
  3. 前端学习(395):京东制作页面4自己制作icon图标
  4. 玩转oracle 11g(10):初步了解Rman备份
  5. CSS 相对|绝对(relative/absolute)定位系列(二)
  6. idea命令行运行多个客户端_推荐一款神仙颜值的 Redis 客户端工具,开源啦
  7. android menu菜单 实现点击后不消失_教你修改Windows万年不变的黄色文件夹,让文件也不枯燥...
  8. 1-2docker-基本的使用
  9. 【转载】interpolation(插值)和 extrapolation(外推)的区别
  10. HDU 4920 Matrix multiplication(矩阵相乘)