2015年播客javaee第168期就业视频教程-class16数据库sql多表操作_第1页
2015年播客javaee第168期就业视频教程-class16数据库sql多表操作_第2页
2015年播客javaee第168期就业视频教程-class16数据库sql多表操作_第3页
2015年播客javaee第168期就业视频教程-class16数据库sql多表操作_第4页
免费预览已结束,剩余8页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京传智播客教育多表设计——外键约束作用:保证数据的完整性。定义外键约束可以直接在create语句中定义外键foreignkey当前表名(字段名)references目标表名(目标表的主键)创建完语句后,可以直接使用修改语句定义altertable表名addforeignkey当前表名(字段名)references目标表名(目标表的主键);北京传智播客教育多表设计中三种实体关系北京传智播客教育1:N的联系可不引入关系表例如:一个班级可以有多个学生,但是一个学生只能属于一个班级。或者部门与员工之间的关系。这些都是属于一对多的例子。那一对多在数据库设计中是怎么描述的呢?画图举例部门与员工的关系。建表原则(都是在多方表中维护):在多方表中添加一个字段,把该字段作为外键,并且指向一方表中的主键。将关系的属性及非多方的主标识加入到多方表多方表的外键是非多方实体的主标识北京传智播客教育M:N的联系引入关系表例如:在生活中一个学生可以选择多门课程,每一门课程也可以被多个学生所选择。这些例子在数据库设计中可以使用多对多来完成。建表原则:需要创建第三张表,该表中至少有两个字段,作为外键分别指向多对多的双方的主键。联系的属性及两个实体的主标识形成关系表。关系表的主键为两个实体主标识的组合北京传智播客教育1:1的联系不用引入关系表(很少用)在生活中,1对1的应用比较少,因为完全可以作为一张表出现。但是有可能公司的业务原因,而需要设计1对1的表结构。例如:一个公司对应一个地址,一个地址也只能对应一个公司。建表原则:第一种是主键对应将两个表的主键进行关联第二种是唯一外键对应在任何一方加一个外键,但是需要设置成唯一(unique),指向另一方的主键北京传智播客教育多表设计实例假设模拟一个购物网站的表结构设计那购物的网站一般都包含一些基本实体:例如用户、订单、商品、分类等等。设计表结构首先需要分清楚各个实体之间的关系。

例如用户可以产生多个订单、一种分类下可以有多个商品、一个订单中可以有多个商品、一种商品可以在多个订单中。

可以画图描述各个实体之间的关系

北京传智播客教育7多表查询——笛卡尔积(了解)笛卡尔积的概念只要有意义的结果?WHEREA.A_ID=B.A_IDSELECT*FROMAA_IDA_NAME----------------------1Apple2Orange3PeachSELECT*FROMBA_IDB_PRICE----------------------12.3023.504(null)X=SELECT*FROMA,BA_IDA_NAMEA_IDB_PRICE---------------------------------------1Apple12.301Apple23.501Apple4(null)2Orange12.302Orange23.502Orange4(null)3Peach12.303Peach23.503Peach4(null)北京传智播客教育多表查询—内链接内连接分成两种两个表之间是有联系的,通过一个外键关联普通内连接

通过使用select*from表1

innerjoin

表2

on

条件隐式内连接

通过使用select*from表1,表2where条件北京传智播客教育多表查询——内连接查询idname1张三1李四3王五idjob1人力主管2软件工程师3软件工程师idnameJob1张三人力主管1李四人力主管3王五软件工程师员工表a工作表b内连接写法一:select*fromainnerjoinbona.id=b.id;写法二:select*froma,bwherea.id=b.id;北京传智播客教育多表查询—外链接左外连接(把左边表所有的数据都查出来)语法:select*from表1leftouterjoin

表2…on右外连接(把右边表所有的数据都查出来)语法:select*from表1rightouterjoin

表2…on

画图描述链接的区别北京传智播客教育多表查询—子查询在sql语言中,select…from…语为一个查询块,将一个查询块嵌套在另一个查询块中作为条件称为嵌套查询,也称为子查询.外层的查询块称为父查询,内层的查询块称为子查询。语法:select*fromtablewhere条件>(select*fromtablewhere条件)北京传智播客教育子查询-运算符常用的运算符

<小于>大于

<=小于等于>=大于等于

=等于<>或!=不等于in范围

常用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论