SQL连接

114 阅读1分钟

🏠 返回首页

如何在两个数据库表之间进行简单的连接

连接是一个非常强大的工具。还记得数据库介绍模块中的关系代数吗?

连接就是应用关系代数

假设你有两个表,peoplecars

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL PRIMARY KEY
);

CREATE TABLE cars (
  brand CHAR(20) NOT NULL,
  model CHAR(20) NOT NULL,
  owner CHAR(20) NOT NULL PRIMARY KEY
);

我们添加一些数据。

INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (8, 'Roger');
INSERT INTO cars VALUES ('Ford', 'Fiesta', 'Flavio');
INSERT INTO cars VALUES ('Ford', 'Mustang', 'Roger');

现在说我们想把这两个表关联起来,因为警察拦下了罗杰的车,看起来很年轻,想从他们的数据库中知道他的年龄。

罗杰是我的狗,但是我们假设狗可以开车。

我们可以用这个语法创建一个连接

SELECT age FROM people JOIN cars ON people.name = cars.owner WHERE cars.model='Mustang';

我们会得到这个结果。

 age 
-----
   8

发生了什么?我们在两个特定的列上连接两个表的汽车:people 表的name ,和cars 表的owner

连接是一个可以越来越复杂的话题,因为有许多不同的连接,你可以用它来对多个表做更复杂的事情,但这里是最基本的例子。