Oracle多表查询中间表的创建实例教程
导读:收集整理的这篇文章主要介绍了Oracle多表查询中间表的创建实例教程,觉得挺不错的,现在分享给大家,也给大家做个参考。 oracle 多表查询中间表的创建表与表之间关系的分类: 1....
收集整理的这篇文章主要介绍了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创建只读账号的详细步骤
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Oracle多表查询中间表的创建实例教程
本文地址: https://pptw.com/jishu/631597.html