• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Oracle多表查询中间表的创建实例教程

    ORACLE 多表查询中间表的创建

    表与表之间关系的分类:

      1. 一对一(了解):
       * 如:人和身份证
       * 分析:一个人只有一个身份证,一个身份证只能对应一个人
      2. 一对多(多对一):
       * 如:部门和员工
       * 分析:一个部门有多个员工,一个员工只能对应一个部门
      3. 多对多:
       * 如:学生和课程
       * 分析:一个学生可以选择很多门课程,一个课程也可以被很多学生选择

    具体的实现方式:

      1. 一对多(多对一):
       * 如:部门和员工
       * 实现方式:在多的一方建立外键,指向一的一方的主键。
      
      2. 多对多(重点):
       * 如:学生和课程
       * 实现方式:多对多关系实现需要借助第三张中间表。中间表至少包含两个字段,这两个字段作为第三张表的外键,分别指向两张表的主键
      
      3. 一对一(了解):
       * 如:人和身份证
       * 实现方式:一对一关系实现,可以在任意一方添加唯一外键指向另一方的主键。

    详细并且典型的实例如下

    用户表 USER

    CREATE TABLE USER(
    id VARCHAR(32) PRIMARY KEY,
    email VARCHAR(50) UNIQUE NOT NULL,
    username VARCHAR(50),
    PASSWORD VARCHAR(50)
    
    )
    INSERT INTO USER(id,email,username,PASSWORD)VALUE('1','111','小明','11111')
    INSERT INTO USER(id,email,username,PASSWORD)VALUE('2','222','小红','22222')
    INSERT INTO USER(id,email,username,PASSWORD)VALUE('3','333','小张','33333')
    

    查询到的结果为

    角色表 ROLE

    CREATE TABLE role(
    id VARCHAR(32) PRIMARY KEY,
    roleName VARCHAR(50) ,
    roleDesc VARCHAR(50)
    )
    
    INSERT INTO role(id,roleName,roleDesc)VALUE('1','工程师','111')
    INSERT INTO role(id,roleName,roleDesc)VALUE('2','医生','222')
    INSERT INTO role(id,roleName,roleDesc)VALUE('3','教师','333')
    
    

    查询到的结果为

    中间表

    CREATE TABLE users_role(
    userId VARCHAR(32),
    roleId VARCHAR(32),
    PRIMARY KEY(userId,roleId),
    FOREIGN KEY (userId) REFERENCES users(id),
    FOREIGN KEY (roleId) REFERENCES role(id)
    )
    
    INSERT INTO users_role(userId,roleId )VALUE('1','2')
    INSERT INTO users_role(userId,roleId )VALUE('2','2')
    INSERT INTO users_role(userId,roleId )VALUE('3','3')
    

    查询到的结果为

    关联中间表进行查询

    重点特别要注意此SQL的写法

    查询的结果会以中间表的id为基准(一定要理解)

    --查询的结果会以中间表的id为基准
    SELECT * FROM users a ,role b, users_role c WHERE a.id=c.userid AND b.id=c.roleid
    

    查询到的结果为:

    总结

    到此这篇关于Oracle多表查询中间表的创建的文章就介绍到这了,更多相关Oracle多表查询中间表创建内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • Oracle 区块链表创建过程详解
    • Oracle数据库scott用户创建view视图权限的操作方法
    • Navicat Premium中Oracle创建主键自增的方法
    • Navicat for oracle创建数据库的方法
    • Oracle数据库创建存储过程的示例详解
    • 通过PLSQL Developer创建Database link,DBMS_Job,Procedure,实现Oracle跨库传输数据的方法(推荐)
    • oracle创建dblink方法示例
    • Oracle 给rac创建单实例dg并做主从切换功能
    • Oracle创建设置查询权限用户的方法
    • Oracle创建新undo表空间最佳实践(包含段检查)
    • 使用sqlplus命令行工具为oracle创建用户和表空间
    • Oracle创建只读账号的详细步骤
    上一篇:oracle日期分组查询的完整实例
    下一篇:window10 安装Oracle19C 和SQL Developer 的图文教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Oracle多表查询中间表的创建实例教程 Oracle,多表,查询,中间,表,