📜  SQL FROM - SQL (1)

📅  最后修改于: 2023-12-03 15:20:14.377000             🧑  作者: Mango

SQL FROM - SQL

介绍

在 SQL 查询中,FROM 是一条重要的语句。通过 FROM 可以指定从哪个表中获取数据,也可以指定多个表,然后通过 JOIN 操作将它们关联起来。此外,FROM 语句还支持子查询和视图查询。

语法

在 SQL 中,FROM 语句的基本语法如下所示:

SELECT column1, column2, ...
FROM table_name;

其中,column1, column2, ... 表示要查询的列名,table_name 表示要查询的表名。

实例
查询单个表

假如有一个名为 users 的表,其中包含以下数据:

| id | name | age | gender | address | |----|-------|-----|--------|---------------| | 1 | Alice | 20 | F | New York | | 2 | Bob | 30 | M | Los Angeles | | 3 | Carol | 25 | F | San Francisco |

要查询该表中的所有数据,可以使用以下 SQL 语句:

SELECT *
FROM users;

以上语句将返回以下结果:

| id | name | age | gender | address | |----|-------|-----|--------|---------------| | 1 | Alice | 20 | F | New York | | 2 | Bob | 30 | M | Los Angeles | | 3 | Carol | 25 | F | San Francisco |

查询多个表

假如有两个名为 ordersusers 的表,其中 orders 表中包含以下数据:

| id | user_id | product | amount | total | date | |----|---------|----------|--------|-------|------------| | 1 | 1 | iPhone | 1 | 800 | 2022-01-01 | | 2 | 2 | Macbook | 2 | 1600 | 2022-01-02 |

users 表中包含以下数据:

| id | name | age | gender | address | |----|-------|-----|--------|---------------| | 1 | Alice | 20 | F | New York | | 2 | Bob | 30 | M | Los Angeles | | 3 | Carol | 25 | F | San Francisco |

要查询这两个表中的数据,可以使用以下 SQL 语句:

SELECT u.name, o.product, o.total
FROM orders o
JOIN users u ON o.user_id = u.id;

以上语句将返回以下结果:

| name | product | total | |-------|---------|-------| | Alice | iPhone | 800 | | Bob | Macbook | 1600 |

以上结果是通过将两个表连接起来得到的,具体来说,JOIN 语句用于将 orders 表和 users 表关联起来,ON 语句用于指定关联两个表的列名。

子查询

假如有一个名为 orders 的表,其中包含以下数据:

| id | user_id | product | amount | total | date | |----|---------|---------|--------|-------|------------| | 1 | 1 | iPhone | 1 | 800 | 2022-01-01 | | 2 | 2 | Macbook | 2 | 1600 | 2022-01-02 |

要查询 orders 表中的所有数据,并且只返回 total 列中最大值所对应的那一行,可以使用以下 SQL 语句:

SELECT *
FROM orders
WHERE total = (
  SELECT MAX(total)
  FROM orders
);

以上语句将返回以下结果:

| id | user_id | product | amount | total | date | |----|---------|---------|--------|-------|------------| | 2 | 2 | Macbook | 2 | 1600 | 2022-01-02 |

在上述语句中,MAX(total) 子查询用于获取 total 列中的最大值,然后将它与 orders 表中的 total 列做比较,从而实现返回最大值所在的那一行。

小结

FROM 是 SQL 查询中的重要语句之一,用于指定要查询的表或多个表。FROM 语句还可以支持子查询和视图查询,以达到更为复杂的数据查询和处理需求。