多对多,可以理解为是一对多和多对一的组合;要实现多对多,一般都需要有一张中间表(也叫关联表),将两张表进行关联,形成多对多的形式;
例如:
    老师表、班级表、课程表,中间表为:课程表;

如果sqlite数据库不显示列头;见此;

https://blog.csdn.net/bcbobo21cn/article/details/111122445

张老师教一班和二班的语文;

赵老师教一班的物理和二班的数学;

这样就形成多对多;

Microsoft Windows [版本 6.1.7601]
Copyright (c) 2010 Microsoft Corporation.  All rights reserved.

S:\sqlite>sqlite3 test.db
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .databases
seq  name             file

---  ---------------  ----------------------------------------------------------

0    main             S:\sqlite\test.db

sqlite> create table teachers(tid int, tname varchar(50));
sqlite> insert into teachers values (1, '张老师'), (2, '赵老师');
sqlite> select * from teachers;
1|张老师
2|赵老师
sqlite> create table classes (cid int, cname varchar(50));
sqlite> insert into classes values (1, '一班'), (2, '二班');
sqlite> .header on
sqlite> select * from classes;
cid|cname
1|一班
2|二班
sqlite> create table courses (courid integer PRIMARY KEY autoincrement, tid int,
 cid int, courname varchar(50));
sqlite> insert into courses values (1, 1, '语文');
Error: table courses has 4 columns but 3 values were supplied
sqlite> insert into courses values (null, 1, 1, '语文');
sqlite> insert into courses values (null, 1, 2, '语文')_;
Error: near "_": syntax error
sqlite> insert into courses values (null, 1, 2, '语文');
sqlite> insert into courses values (null, 2, 1, '物理');
sqlite> insert into courses values (null, 2, 2, '数学');
sqlite> select * from courses;
courid|tid|cid|courname
1|1|1|语文
2|1|2|语文
3|2|1|物理
4|2|2|数学
sqlite> SELECT T1.courid, T2.tname, T1.cid, T3.cname, T1.courname FROM courses A
S T1, teachers AS T2, classes AS T3 WHERE T1.tid=T2.tid AND T1.cid=T3.cid;
courid|tname|cid|cname|courname
1|张老师|1|一班|语文
2|张老师|2|二班|语文
3|赵老师|1|一班|物理
4|赵老师|2|二班|数学
sqlite> SELECT T1.tid, T2.tname, T1.cid, T3.cname, T1.courname FROM courses AS T
1, teachers AS T2, classes AS T3 WHERE T1.tid=T2.tid AND T1.cid=T3.cid;
tid|tname|cid|cname|courname
1|张老师|1|一班|语文
1|张老师|2|二班|语文
2|赵老师|1|一班|物理
2|赵老师|2|二班|数学
sqlite>

数据库多对多关系示例 - 使用sqlite演示相关推荐

  1. Java一对多、多对多关系示例

    一对多 生活中常见一对多关系的例子,如一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,可以通过集合进行关系的表示. 下面是基于集合应用的一个示例,这个示例将作为以后 J ...

  2. Flask 数据库多对多关系

    数据库使用关系建立记录之间的联系.其中,一对多关系是最常用的关系类型,它把一个记录和一组相关的记录联系在一起.实现这种关系时,要在"多"这一侧加入一个外键,指向"一&qu ...

  3. Java多对多关系示例

    使用集合不仅可以表示一对一的关系,也可以表示多对多的关系.例如,一个学生可以选多门课程,一门课程可以有多个学生参加,那么这就是一个典型的多对多关系. 要完成上面要求,首先应该定义两个类,分别是学生信息 ...

  4. java 一对多、多对多关系示例

    一对多 生活中常见一对多关系的例子,如一个老师教多个学生,一个学生属于一个老师,那么这就是一个典型的一对多关系,可以通过集合进行关系的表示. 定义一个学生类 public class Student ...

  5. 数据库外键示例 - 使用sqlite演示

    2个表:人员表,订单表: 创建人员表,pid为主键:Sqlite的主键自增长必须为integer,不能为int: 创建订单表:字段:  oid,orderno, pid: 订单表中的 pid 列指向人 ...

  6. 数据库多对多关系建表

    对于多对多的关系,建表的方式是有两种的,最常见的做法就是建立一张中间关系表b,关联另外两张表a和c的主键,不要其他多余信息,这种做法通常的情况就是a表和c表中的数据不能有重复的,所以我们只能建立单独的 ...

  7. SQL having 子句示例 - 使用Sqlite演示

    HAVING 子句 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用. HAVING 子句可以让我们筛选分组后的各组数据. 也就是说sql使用了聚合函数获取到数据 ...

  8. 如何使用PowerDesigner软件进行数据库设计(多对多关系)

    如何使用PowerDesigner软件进行数据库设计(多对多关系) 1 多对多关系示例 2 创建CDM 3 建立实体之间的联系 4 检查CDM 5 将CDM转换成PDM 6 由PDM生成sql文件 1 ...

  9. 关系型数据库 多对多(many to many)关系 三表还是两表

    关系型数据库 多对多关系 三表还是两表 ? 多对多一般都是三张表,两张各自的单个信息表,一张表明关系的连接表. student//学生基本信息表 id name ... course//课程基本信息表 ...

最新文章

  1. 使用现场总线更快更远
  2. AI搜索外星人 发现宇宙深处72神秘光
  3. 中国太阳能热水器市场营销模式探析与品牌格局调研报告2022版
  4. Collections.toMap 报错 空指针 key重复
  5. hibernate实体的几种状态:
  6. 关于SQL语言,这些你不得不了解!
  7. java实现qq空间模块_Java实现模拟QQ空间图片上传
  8. bug2-Internal Error: Blas GEMM launch failed 问题
  9. 英特尔:赔你15亿算了;Nvidia:反正我早就不做你那块了
  10. 服务器IO测试(Iozone使用)
  11. 分解gif动图如何操作?手把手教你动图分解方法
  12. 天池大数据竞赛 Spaceack带你利用Pandas,趋势图与桑基图分析美国选民候选人喜好度
  13. 二端口输入阻抗和输出阻抗
  14. BZOJ4816 数字表格
  15. centos开启443端口
  16. 联盛德 HLK-W806 (四): 软件SPI和硬件SPI驱动ST7735液晶LCD
  17. GMT和CST时间区别
  18. 云计算领域常见的一些专业术语、专有名词总结(一)
  19. idea 一次启动多服务配置
  20. Dcat-Admin自定义Excel数据导出

热门文章

  1. windows下 Qt 静态编译
  2. 自动装配——@Autowired 构造器,参数,方法,属性都是从容器中获取参数组件的值||自定义组件想要使用Spring容器底层的一些组件 ApplicationContext,BeanFactory
  3. 用javascript打造一个简单的小人互殴系统(实现javascript游戏基本要素:生命值、伤害、移动、闪避等)
  4. DM达梦数据库 - 设置忽略关键字方法,login关键字处理实例演示
  5. Python+selenium 自动化-通过窗口名切换窗口,如何获取当前窗口的title窗口名
  6. Qt Designer设置背景图片、颜色不影响其它组件小技巧,控件层级设置,组件的继承,styleSheet设置样式。
  7. [学习笔记]数字电路技术
  8. LDP (Local Derivative Pattern)原理
  9. floodFill函数
  10. 爬取某一微博用户所有文本文件或者是视频图片文件