vlambda博客
学习文章列表

第二章java入门:4.数据库表关系与查询操作

01

外键和表关系

  • 外键

外键:唯一标识其他表中的一条记录,用来通知数据库两张表列与列之间的对应关系, 并让数据库帮我们维护这样关系的键就叫做外键。

  • 例如:员工表的部门id列(dept_id)和部门表的id列具有一 一对应的关系, 其中dept_id就是外键。

    外键作用: 确保数据库数据的完整性和一致性

    添加外键: 例如:foreign key(dept_id)references dept(id)


  • 表关系

  • 一对多

一对多,反过来就是多对一,以班级和学生为例:

(1)一个班级中可能会有多个学生(1~*)

(2)一个学生只能属于一个班级(1~1),两者合并结果还是1~*

因此,班级表和学生表是一对多的关系

对于一对多的两张表,可以在多的一方添加列,保存一的一方的主键,从而保存两张表之间的关系

第二章java入门:4.数据库表关系与查询操作


  • 一对一

以班级和教室为例:

(1)一个班级对应一个教室(1~1)

(2)一个教室也只对应一个班级(1~1),两者合并结果还是1~1

因此,班级表和教室表是一对一的关系

对于一对一关系的两张表,可以在任意一张表中添加列,保存另一张表的主键,从而保存两张表之间的关系

第二章java入门:4.数据库表关系与查询操作

  • 多对多

以学生和老师为例:

(1)一个学生对应多个老师(1~*)

(2)一个老师也对应多个学生(1~*),两者合并结果是*~*

因此,学生表和老师表是多对多的关系

对于多对多的关系,可以拆分成两张一对多的关系,无法在两张表中添加列保存关系,但我们可以添加一张第三方的表(专门保存两张表的关系),保存两张表的主键,从而保存两张表的关系。

第二章java入门:4.数据库表关系与查询操作


02

多表连接查询

  • 连接查询

连接查询:将两张或者两张以上的表,按照指定条件查询,将结果显示在一张表中。

多张表查询的语法:

select... from A, B... where...

如果表名过长,可以为表添加别名以方便书写

select... from A a, B b... where...

上面小写的a和b就是A和B表的别名


  • 外连接查询

  • 左外连接查询

显示左侧表中的所有记录,如果在右侧表中没有对应的记录,则显示为null

语法:

select ...from a left join b on (a.id=b.xid)
  • 右外连接查询

显示右侧表中的所有记录,如果在左侧表中没有对应的记录,则显示为null

语法:

select ...from a right join b on (a.id=b.xid)
  • 子查询

所谓的子查询,其实就是将一个查询得出的结果,作为另外一个查询的条件。

格式:

select...from...where...(select...from...)
  • 多表查询

......等等

资料下载


视频01:14.where和having区别

第二章java入门:4.数据库表关系与查询操作


视频02:15.完成mysql涉及的所有查询

第二章java入门:4.数据库表关系与查询操作


视频03:16.备份与恢复数据库

第二章java入门:4.数据库表关系与查询操作


视频04:17.表关系与数据库乱码问题

第二章java入门:4.数据库表关系与查询操作


视频05:18.Navicat工具的使用


每日分享更多文章及视频!欢迎你的加入