数据库 关系连接

连接分类
关系间的连接分为内连接(inner join)和外连接(outer join)。
外连接又可分为:left outer join,right outer join和full outer join。

内连接计算方法:
如果不加条件将会产生笛卡尔积;
如果有连接条件,按照下一节"连接条件"的规则进行运算,符合条件的元组放入结果关系中。

left outer join 计算过程:
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;
2)如果左关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足

right outer join 计算过程:
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;
2)如果右关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足

full outer join
1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中;
2)如果左、右关系中有元组不符合条件,将之放入结果关系中,余下的用NULL补足

as用来修改连接后结果关系的关系名称以及属性名称。

连接条件
关系之间的连接是可以有条件的,外连接必须要加条件,内连接如果不加条件将会产生笛卡尔积。
有哪些连接条件呢?
natural --
1)两个关系(左关系和友关系)中所有具有相同的名称的属性的值要相等。
2)natural 总是出现在 join语句前面
3)natural的结果关系中,相同名称的属性只会出现一次
4)natural的结果关系中,属性的排列顺序总是按照左关系优先的原则。
5) MySQL中,natural join不能使用on指定其他查询条件
on--
1)on 用在join语句后面
2)on 后面采用关系1.属性a=关系2.属性b 的谓词语法

using--
1)和natural类似,只是显式指定了属性名称
2)如果using也指定了所有相同名称的属性,那么和natural相同

MySQL
MySQL中,natural join和 left outer join不能在同时使用,可以先将natural join语句做成一个view,然后再使用left outer join
join 默认为inner join

(0)

相关推荐

  • 数据库 关系连接

    连接分类 关系间的连接分为内连接(inner join)和外连接(outer join). 外连接又可分为:left outer join,right outer join和full outer join. 内连接计算方法: 如果不加条件将会产生笛卡尔积: 如果有连接条件,按照下一节"连接条件"的规则进行运算,符合条件的元组放入结果关系中. left outer join 计算过程: 1)计算相同连接条件下的内连接,将符合条件的元组放入结果关系中: 2)如果左关系中有元组不符合条件,将

  • 如何用workbench导出mysql数据库关系图

    1. 打开mysql workbench,选择首页中间"Data Modeling"下方的第二栏"Create EER Model From Existing Database";2. 在"Stored Connection"里选择"Manage Stored Connections...";3. 在Manage DB Connections里选择"New"新建连接,并在左侧输入框里填好想连接的数据库信息;

  • python数据库如何连接SQLite详解

    目录 1. 建立与SQLite数据库的连接 1.1 建立基于内存的数据库 1.2 建立基于硬盘的数据库 1.3 基于内存和基于硬盘的区别 2. 在指定数据库里建立表结构 2.1 建立数据库表结构 2.2 查找数据 2.3 删除数据 总结 1. 建立与SQLite数据库的连接 SQLite是python自带的一款基于内存或硬盘的.开源的.关系型的轻量级数据库.这意味着无需下载安装SQLite数据库产品和对应的数据库驱动程序,可以被python语言以模块导入方式直接调用.其位置在python的安装路

  • 一文教你快速生成MySQL数据库关系图

    目录 需求描述: 需求分析: 技术方案: 解决方案: 总结 需求描述: 在公司老旧系统里,数据库表很多,但是在设计之初并没有建立好关系图,导致新人刚入职,面对N个库,每个库几百张表,很不方便. 例如:公司某一个系统的库有三百张表,在不熟悉项目的情况下,打开数据库看到一列列的表,很不清晰,对新入职同事很不友好. 需求分析: 我们一个系统里,可能有很多个模块,例如商城系统中有商品模块.券模块.店铺模块等,没个模块都有几十张表,每个模块需要生成如下关系图:(吐槽一下,Navicat逆向的图没Power

  • SQL Server 2005 开启数据库远程连接的方法

    SQL Server 2005默认是不允许远程连接的,要想通过远程连接实现MSSQL,数据库备份,需要做如下设置: 步骤/方法 1.打开SQL Server Configuration Manager,使用windows身份登录 2.登录后,右键选择"属性".左侧选择"安全性",选中右侧的"SQLServer,和 Windows 身份验证模式"以启用混合登录模式 3.选择"连接",勾选"允许远程连接此服务器"

  • 深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非

    PHP程序员应该都知道连接MySQL数据库可以使用mysql_pconnect(永久连接)函数,使用数据库永久连接可以提高效率,但是实际应用中数据库永久连接往往会导致出现一些问题,通常的表现就是在大访问量的网站上时常发生断断续续的无法连接数据库的情况,出现类似"Too many connections in ..."的错误提示信息,重新启动服务器又正常了,但过不了一会儿又出现同样的故障.对于这些问题的成因,恐怕就不是每个人都能说清楚的了,虽然PHP文档里有一些相关资料,但是解释的并不浅显易懂,这

  • jdbc 数据库的连接(sqlserver oracle)

    1.sql server 2000数据库的连接方式: 复制代码 代码如下: Connection con; public Connection getCon(){ try{ Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");//加载驱动程序 con=DriverManger.getConnection("jdbc:microsoft:sqlServer://localhost:1433;Database

  • ASP.NET 6种常用数据库的连接方法

    1.C#连接连接Access 程序代码:     复制代码 代码如下: using   System.Data; using   System.Data.OleDb;    .. string   strConnection="Provider=Microsoft.Jet.OleDb.4.0;";     strConnection+=@"Data   Source=C:BegASPNETNorthwind.mdb"; OleDbConnection   objCo

  • CodeIgniter针对数据库的连接、配置及使用方法

    本文实例讲述了CodeIgniter针对数据库的连接.配置及使用方法.分享给大家供大家参考,具体如下: 1. 数据库: create database test; create table users( id int not null, name varchar(10), pwd varchar(10), email varchar(20) ) insert into users values(1,'shunping','shunping','aa@163.com'); insert into

  • MySQL数据库远程连接开启方法

    第一中方法:比较详细以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL 数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程. 1.d:\MySQL\bin\>MySQL -h localhost -u root 这样应该可以进入MySQL服务器 复制代码 代码如下: MySQL>update user set host = '%' where user = 'root'; MySQL&g

随机推荐