PostgreSQL-7-数据连接
1、通过WHERE进行简单连接
SELECT * FROM company3,department 不添加WHERE将会显示所有数据
SELECT * FROM company3,department WHERE company3.no = department.id; 通过WHERE构建匹配逻辑
SELECT company3.name,company3.salary,department.dept
FROM company3,department WHERE company3.no = department.id; 显示指定字段
通过select+where,创建多个表的连接
2、内连接(INNER JOIN)
CREATE TABLE employees(
id int PRIMARY KEY,
name text,
age int CHECK(age > 0),
address text,
salary numeric CHECK(salary > 0)
);
INSERT INTO employees VALUES(1,'王大',25,'beijing',10000),(2,'张三',25,'beijing',10000),
(3,'李四',21,'beijing',15000),(4,'李二',28,'shenzhen',10000),
(5,'王五',24,'shanghai',20000),(6,'杨三',19,'shanghai',15000),
(7,'张四',22,'shenzhen',20000),(8,'杨四',20,'beijing',10000);
创建表格1
CREATE TABLE department(id int,dept text,fac_id int);
INSERT INTO department VALUES(1,'IT', 1);
INSERT INTO department VALUES(2,'Engineering', 2);
INSERT INTO department VALUES(3,'HR', 7);
INSERT INTO department VALUES(10,'Market', 10);
创建表格2
SELECT employees.id,employees.name,department.dept
FROM employees INNER JOIN department
ON employees.id = department.id;
基于两个表格的id字段,连接表格,取交集
3、全连接(FULL OUTER JOIN)
SELECT employees.id,employees.name,department.dept
FROM employees FULL OUTER JOIN department
ON employees.id = department.id;
基于两个表格的id字段,连接表格,取并集,缺失值为NULL
4、左外连接(LEFT OUTER JOIN)
SELECT employees.id,employees.name,department.dept
FROM employees LEFT OUTER JOIN department
ON employees.id = department.id;
连接表格后,保留employees的所有数据条目
5、右外连接(RIGHT OUTER JOIN)
SELECT employees.id,employees.name,department.dept
FROM employees RIGHT OUTER JOIN department
ON employees.id = department.id;
连接表格后,保留department的所有数据条目
6、交叉连接
SELECT employees.id,dept,salary FROM employees CROSS JOIN department;
笛卡尔积:检索出的行的数目为第一个表中的行数乘以第二个表中的行数
当两个表有共同名称的字段(比如id),将会报错,所以这里需要指示,例如employees.id
多个连接条件
SELECT employees.id,employees.name,department.dept
FROM employees INNER JOIN department
ON employees.id = department.id
AND employees.id = department.fac_id;
JOIN连接三个表
CREATE TABLE education(name text,edu text);
INSERT INTO education VALUES('王大','本科'),('张三','本科'),
('李四','硕士'),('李二','本科'),
('王五','PHD'),('杨三','硕士'),
('张四','PHD'),('杨四','本科');
创建表格3
SELECT employees.id,employees.name,employees.age,employees.salary,department.dept
FROM (employees INNER JOIN education ON employees.name = education.name)
FULL OUTER JOIN department ON employees.id = department.id;
注意嵌套写法
PostgreSQL-7-数据连接的更多相关文章
- PostgreSQL查询数据(连接查询和子查询)
原料 --用户表 create table "SysUser"( "UserId" serial, --用户Id,自增 "UserName" ...
- Tapdata Cloud 2.1.4 来啦:数据连接又上新,PolarDB MySQL、轻流开始接入,可自动标记不支持的字段类型
需求持续更新,优化一刻不停--Tapdata Cloud 2.1.4 来啦! 最新发布的版本中,在新增数据连接之余,默认标记不支持同步的字段类型,避免因此影响任务的正常运行. 更新速览 ① 数 ...
- 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...
- 帆软报表FineReport中数据连接之Jboss配置JNDI连接
使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...
- 帆软报表FineReport中数据连接之Websphere配置JNDI连接
以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...
- 帆软报表FineReport中数据连接之Tomcat配置JNDI连接
1. 问题描述 在帆软报表FineReport中,通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下: ...
- 帆软报表FineReport中数据连接的JDBC连接池属性问题
连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...
- Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)
1.启动glassfish服务器, 在浏览器的地址栏中输入 http://localhost:4848 2.首先建立JDBC Connection Pools: 3.new 一个Connectio P ...
- htc M8 无法自动恢复数据连接(4g)的问题解决
情况如下:htc m8 tdd-lte的双待手机,4g.2g同时在线. 本月出现,在短时间没有信号的情况后,无法恢复数据连接,哪怕是edge,更不论4g了. 尝试各种方法无解.最后咨询10086解决此 ...
- Ajax之数据连接信息捕获
connDB.properties: DB_CLASS_NAME=com.mysql.jdbc.Driver DB_URL=jdbc:mysql://127.0.0.1:3306/db_datab ...
随机推荐
- 转载-jmeter进阶功能
在这此对新版本jmeter的学习+温习的过程,发现了一些以前不知道的功能,所以,整理出来与大分享.本文内容如下. 如何使用英文界面的jmeter 如何使用镜像服务器 Jmeter分布式测试 启动Deb ...
- PYTHON 爬虫笔记二:Urllib库基本使用
知识点一:urllib的详解及基本使用方法 一.基本介绍 urllib是python的一个获取url(Uniform Resource Locators,统一资源定址器)了,我们可以利用它来抓取远程的 ...
- PHP截取中英文混合字符
<?php //////////////////////////////////////////////////////////////////// // PHP截取中英文及标点符号混合的字符串 ...
- codevs 1012 最大公约数和最小公倍数问题
题目描述 Description 输入二个正整数x0,y0(2<=x0<100000,2<=y0<=1000000),求出满足下列条件的P,Q的个数 条件: 1.P,Q是正整 ...
- 树堆(Treap)
平衡树 简介: 平衡二叉树(Balanced Binary Tree)具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树.平衡二叉树的常用实现方 ...
- codeforces 702D D. Road to Post Office(数学)
题目链接: D. Road to Post Office time limit per test 1 second memory limit per test 256 megabytes input ...
- 「AHOI2008」「LuoguP4281」紧急集合 / 聚会(LCA
题目描述 欢乐岛上有个非常好玩的游戏,叫做“紧急集合”.在岛上分散有N个等待点,有N-1条道路连接着它们,每一条道路都连接某两个等待点,且通过这些道路可以走遍所有的等待点,通过道路从一个点到另一个点要 ...
- ubuntu 16.04 安装 Matlab R2016b后启动出现的问题
(1)报以下错误: License checkout failed.License Manager Error -95MATLAB is unable to connect to the licens ...
- WinThruster中文版破解方法(注册表无伤清理工具)
每次卸载完软件,都会有注册表残余垃圾,久而久之电脑会越来越慢,winThruster可以检测出系统无用注册表,并删除. 1.解压文件,安装Setup_WinThruster_2015.exe文件. 2 ...
- SQL连接查询和嵌套查询详解
连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询.连接查询是数据库中最最要的查询, 包括: 1.等值连接查询 2.自然连接查询 3.非等值连接查询 4.自身连接查询 5.外连接查询 6 ...