首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQL操作五

SQL操作五

作者头像
爱撒谎的男孩
发布2019-12-31 14:42:52
4230
发布2019-12-31 14:42:52
举报
文章被收录于专栏:码猿技术专栏码猿技术专栏

文章目录

  1. 1. Day05
    1. 1.1. 关联关系
      1. 1.1.1. 自关联
    2. 1.2. 一对一
    3. 1.3. 一对多
    4. 1.4. 多对多
      1. 1.4.1. 创建表
      2. 1.4.2. 查询
    5. 1.5. 如何让两张表建立关系
    6. 1.6. 连接方式和关联关系的区别
    7. 1.7. 数据库设计值权限管理
      1. 1.7.1. 什么是权限管理
      2. 1.7.2. 权限管理表的实现

Day05

关联关系

自关联

当前表的数据和当前表里面的数据有关联关系

一对一

一对多

多对多

学生和老师的关系就是多对多的关系 一个学生可以被多个老师教,一个老师可以教多个学生

创建表

创建教师表 teacher(id,name) 创建学生表 stu(id,name) 创建第三张关系表t_s(sid,t_id)

查询

  • 查询学生小明的所有老师
    • 通过小明查询出小明的id
    • 得到小明的id 在关系表中查询出对应的老师的id
    • 通过关系表中的老师的id再和教师表关联查询查出所有的老师
    • select name from teacher where id in ( select t_s.tid from stu join t_s on stu.id=t_s.sid where stu.name='小明'); 子查询方式,但是子查询中使用了内连接,也可以使用等值连接
    • select t_s.tid from stu join t_s on stu.id=t_s.sid join teacher t on t.id=tid where stu.name='小明'; 使用内连接的方式查询,多个join连接,where条件语句应该放在最后一个join的on的后面
  • 查询所有老师对应的所有学生0
    • select t.name t_name,stu.name s_name from stu join t_s on stu.id=t_s.sid join teacher t on t.id=tid;
  • 查询唐僧的所有学生
    • select t.name t_name,stu.name s_name from stu join t_s on stu.id=t_s.sid join teacher t on t.id=tid where t.name='唐僧';

如何让两张表建立关系

  • 自关联
    • 自关联是在一张表中,这张表中要有一个字段记录上级的主键
  • 一对一:
    • 需要在从表中有个字段表示主表的主键值 (外键)
  • 一对多
    • 部门和员工为例,需要在多的一端通过字段记录另外一张的表的主键 (外键)
  • 多对多
    • 需要准备一张关系表,表中保存两张表的主键值(第三张表) (外键)

连接方式和关联关系的区别

  • 连接方式: 包括内连接,等值连接,左/右外连接 是指查询两张表时使用的查询方式
  • 关联关系: 一对一,一对多,多对多 是指两张表之间存在的逻辑关系

数据库设计值权限管理

什么是权限管理

  • 不同用户登录网站后可能会有不同的权限,实现此功能的过程称为权限管理

权限管理表的实现

  • 总共需要5张表
    • 用户表 角色表 权限表 用户和角色关系表 角色和权限的关系表
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Day05
    • 关联关系
      • 自关联
    • 一对一
      • 一对多
        • 多对多
          • 创建表
          • 查询
        • 如何让两张表建立关系
          • 连接方式和关联关系的区别
            • 数据库设计值权限管理
              • 什么是权限管理
              • 权限管理表的实现
          相关产品与服务
          数据库
          云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档