掌握SQL的连接

1.理解SQL的连接

  SQL里的join用于将多个表的行连接在一起,下面是2张数据表,其中mybook表里的userID是外键,myuser表里面的userId是主键。

首先来看一句简单的内连接的sql,结果如下图所示。

select mybook.bookName,myuser.userName,myuser.userAge from myuser inner join mybook on mybook.userID=myuser.userId;

  inner join是SQL里的默认连接,也就是说它和join是一样的效果。inner join关键字在表中存在至少一个匹配时返回行,如果mybook表的userID在myuser表里没有匹配到,则结果将会是什么都没有。其实所谓的连接就是根据2个表中的某列为条件使2张表合起来,其实这就像一个视图,然后再从视图里得到要显示的列。

2.外连接

  外连接分为左连接、右连接和全连接。我们可以一起执行这3条sql语句来查看它们的结果。

select mybook.bookName,myuser.userName,myuser.userAge from myuser inner join mybook on mybook.userID=myuser.userId;
select mybook.bookName,myuser.userName,myuser.userAge from myuser left join mybook on mybook.userID=myuser.userId;
select mybook.bookName,myuser.userName,myuser.userAge from myuser right join mybook on mybook.userID=myuser.userId;
select mybook.bookName,myuser.userName,myuser.userAge from myuser full join mybook on mybook.userID=myuser.userId;

  从结果可以很明显的观察出这些连接之间的区别,首先无论什么连接都会创建出类似于一个视图的表。对于左连接,如果有匹配不成功的行,则仍然会返回这一行且右表显示NULL。右连接则和左连接刚好相反,即时左边没有匹配也会返回这一行的数据只不过左边的列显示NULL,而全连接则是结合左连接和右连接的结果。

时间: 2024-08-27 08:42:32

掌握SQL的连接的相关文章

如何用PL/SQL Developer连接Oracle数据库

之前因为项目的原因需要使用Oracle数据库,由于时间有限没办法从基础开始学习,而且oracle操作的命令界面又太不友好,于是就找到了PL/SQL Developer这个很好用的软件来间接使用数据库. 下面简单介绍一下如何用这个软件连接Oracle数据库. 第一步 安装Oracle Database和PL/SQL Developer 这一步网上有很多的教程就不详细介绍.Oracle可以直接到官网去下载,在安装中注意几个问题就行: 1.一定要记住自己全局数据库名字和口令,这个在后面连接的时候很重要

如何用PL/SQL Developer连接ORACL数据库

之前因为项目的原因需要使用ORACL数据库,由于时间有限没办法从基础开始学习,而且oracle操作的命令界面又太不友好,于是就找到了PL/SQL Developer这个很好用的软件来间接使用数据库. 下面简单介绍一下如何用这个软件连接ORACL数据库. 第一步 安装ORACL Database和PL/SQL Developer 这一步网上有很多的教程就不详细介绍.ORACL可以直接到官网去下载,在安装中注意几个问题就行: 1.一定要记住自己全局数据库名字和口令,这个在后面连接的时候很重要. 2.

SQL Server 连接字符串和身份验证 学习

SQL Server .NET Data Provider 连接字符串包含一个由一些属性名/值对组成的集合.每一个属性/值对都由分号隔开.          PropertyName1=Value1;PropertyName2=Value2;PropertyName3=Value3;.....同样,连接字符串必须包含SQL Server实例名称:          Data Source=ServerName;          使用本地的SQL Server(localhost),如果想要使用

ORACLE11g下如何利用SQL DEVELOPER连接上数据库?

最近在学习数据库的相关内容,在sqlplus敲了几天命令行窗口后,想尝试一下用sql developer 连接上数据库但一直没有实现.在网上查询了相关资料后现在终于弄好了,就来写下此篇博文与大家分享!接下来给大家分步骤介绍. 1.打开sql developer后配置java.exe路径.这点装过ecilipse的应该都很熟悉了,在此就不细说了.如果不记得自己java环境的安装路径推荐大家可以下载everything这款window下非常好用的文件搜索软件. 2.打开后我们就可以看到这样的界面.

SQL左连接、右连接和内连接的简单示例

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录: right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录: inner join(等值连接) 只返回两个表中联结字段相等的行:举例如下: -------------------------------------------- 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录

[转] oracle 数据库 SQL plus 连接方法

http://hi.baidu.com/zzy382/item/a5b197f97a38e01ba7298832 之前电脑上安装了一个 Oracle  有一段时间没用,就把密码给忘了,按上面链接里的操作,重置密码成功,步骤如下: connect system/oracle以 system 用户 oracle 密码连接 在进入 sql plus 界面后输入 / as oraclesys 回车即以管理用户登录.然后读取 dba_users 表内容可以 alter user system identi

Oracle---使用PL/SQL Developer连接Oracle12C(64位)版本

Oracle---使用PL/SQL Developer连接Oracle12C(64位)版本 1.安装Oracle 12c 64位 2.安装32位的Oracle客户端( instantclient-basic-nt-12.1.0.1.0) 下载instantclient-basic-nt-12.1.0.1.0.zip,将其解压至Oracle安装目录的Product下(本机命名为:instantclient_12 _1):C: \app\orcl\product\instantclient _12

解决 SQL Server 连接到服务器 错误223

我的SQL Server2005 一直正常使用但昨天出现了错误,如图. 经过上网查,网上说的办法试了好多都没有解决这个问题.在经过多次的摸索后终于搞定了,答案很简单,是sql身份验证 “sa”账号 登录密码的问题. 但是前提是你必须得保证你的sql server 的sql 身份验证可以用,所以在这里我们就先给大家讲述下怎样使sql身份验证可以启用(sql server身份验证可以用的直接跳过这一步). 首先用windows身份验证登录,windows身份验证不可以登录的请看我前面博客“解决SQL

解决PL/SQL Dev连接Oracle弹出空白提示框

第一次安装Oracle,装在虚拟机中,用PL/SQL Dev连接远程数据库的时候老是弹出空白提示框,网上找了很久,解决方法也很多,可是就是没法解决我这种情况的. 没办法,只能自己研究,经过大概一天时间吧,还是搞好了,写个总结. 出现这种问题,解决方法大概有这几种: 1.权限不够,导致弹出空吧提示框.(直接上链接) http://jingyan.baidu.com/article/066074d6760959c3c21cb0d6.html 就PL/SQL图标上点右键---属性---兼容性--管理员