目录
当前位置: 首页 > 教程 > SQL >

SQL SELECT

精华
小牛编辑
175浏览
2023-03-14
SQL SELECT 语句用于从表中选取符合条件的数据,该数据以临时表的形式返回,称为结果集。

语法

SELECT 语句的基本语法如下:

SELECT column1, column2, columnN
FROM table_name
WHERE conditions;

column1, column2, columnN 表示选取的列,conditions 表示筛选条件,只有满足条件的数据才会被选取。

WHERE 子句是可选的,您可以不写,此时 SELECT 语句将变成下面的形式:

SELECT column1, column2, columnN FROM table_name;

不使用 WHERE 子句意味着没有筛选条件,此时表中的所有数据都将被选取。

此外,如果您希望选取所有的列,那么可以使用 *代替所有列名,语法如下:

SELECT * FROM table_name;

SELECT 子句

SELECT 可以结合下面的子句一起使用:
  • WHERE 子句:用来指明筛选条件,只有满足条件的数据才会被选取。
  • ORDER BY 子句:按照某个字段对结果集进行排序。
  • GROUP BY 子句:结合聚合函数,根据一个或多个列对结果集进行分组。
  • HAVING 子句:通常和 GROUP BY 子句联合使用,用来过滤由 GROUP BY 子句返回的结果集。

示例

现在有如下所示的 website 表:
+----+----------------+----------------------------+-----+-------+---------+---------+
| id | name           | url                        | age | alexa | uv      | country |
+----+----------------+----------------------------+-----+-------+---------+---------+
|  1 | 百度           | https://www.baidu.com/     |  21 |     4 |  5010.5 | CN      |
|  2 | 淘宝           | https://www.taobao.com/    |  17 |     8 | 3996.75 | CN      |
|  3 | 小牛知识库    | https://www.xnip.cn/    |  12 |  7923 |   11.62 | CN      |
|  4 | Google         | https://www.google.com/    |  23 |     1 |   36474 | US      |
|  5 | GitHub         | https://github.com/        |  13 |    95 |   216.3 | US      |
|  6 | Stack Overflow | https://stackoverflow.com/ |  16 |    48 |   592.2 | US      |
|  7 | Yandex         | http://www.yandex.ru/      |  11 |    53 |  591.82 | RU      |
|  8 | VK             | https://vk.com/            |  23 |    23 |    1206 | RU      |
+----+----------------+----------------------------+-----+-------+---------+---------+
现在要获取表中所有网站的 id、名字(name)和链接(url),代码如下:
SELECT id, name, url FROM website;
执行完成以后将得到下面的结果:
+----+----------------+----------------------------+
| id | name           | url                        |
+----+----------------+----------------------------+
|  1 | 百度           | https://www.baidu.com/     |
|  2 | 淘宝           | https://www.taobao.com/    |
|  3 | 小牛知识库    | https://www.xnip.cn/    |
|  4 | Google         | https://www.google.com/    |
|  5 | GitHub         | https://github.com/        |
|  6 | Stack Overflow | https://stackoverflow.com/ |
|  7 | Yandex         | http://www.yandex.ru/      |
|  8 | VK             | https://vk.com/            |
+----+----------------+----------------------------+
如果希望选取所有字段,并且要求日访问量(uv)大于 800 万,可以使用下面的语句:
SELECT * FROM website WHERE uv > 800;
该语句将得到下面的结果:
+----+--------+-------------------------+-----+-------+---------+---------+
| id | name   | url                     | age | alexa | uv      | country |
+----+--------+-------------------------+-----+-------+---------+---------+
|  1 | 百度   | https://www.baidu.com/  |  21 |     4 |  5010.5 | CN      |
|  2 | 淘宝   | https://www.taobao.com/ |  17 |     8 | 3996.75 | CN      |
|  4 | Google | https://www.google.com/ |  23 |     1 |   36474 | US      |
|  8 | VK     | https://vk.com/         |  23 |    23 |    1206 | RU      |
+----+--------+-------------------------+-----+-------+---------+---------+

最后更新:

类似资料

  • 我正试图掌握mysqli对象及其工作方式。我使用上面的查询查找数据库的表名,并将它们插入select下拉列表。当我使用类似的代码填充另一个select下拉列表时,我使用在while循环运行时获取结果。然后我的select语句是当我使用上面的select语句时,我需要使用索引0而不是“table\u name”。为什么呢?当我在PHP MyAdmin中运行上面的select语句时,我得到了一个行名为

  • 我只是在尝试使用更复杂的语句时修补SQL。我不知道这是否符合条件,但请指导如何进行。 我已经研究了连接和一些关于多个Select语句的问题,但无法正确理解它们。 我有以下两张表: emp表: 图书目录: 其中books表中的是引用emp表的外键。 我需要从特定组织的books表中获取所有记录。但除此之外,我还需要在结果中获得各个员工的所有数据,如姓名、地址。 请给我指引正确的方向。 谢谢

相关阅读

开发工具