谁不知道谁 發表於 2025-9-18 14:28:40

SQL 查询语句之select语句举例

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">什么是 SELECT 语句?</a></li><li><a href="#_label1">为什么要学习SELECT 语句?</a></li><li><a href="#_label2">查询单列数据</a></li><li><a href="#_label3">查询多列数据</a></li><li><a href="#_label4">查询所有列</a></li><li><a href="#_label5">查询不同的值(去重)</a></li><li><a href="#_label6">限制返回行数</a></li><li><a href="#_label7">分页查询(从第几行开始取多少行)</a></li><li><a href="#_label8">使用注释(3种写法)</a></li></ul></div><p class="maodian"><a name="_label0"></a></p><h2>什么是 SELECT 语句?</h2>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在 SQL 语言中,SELECT 语句是最基础、也是最常用的语句类型之一。它的核心作用是<span>从数据库表中查询数据</span>,并将符合条件的结果以表格的形式返回。几乎所有与数据库交互的操作,查询通常都是最频繁使用的场景,而 SELECT 就是执行这类操作的首选语句。</p>
<p>一条完整的 SELECT 语句至少<span>包含两个基本组成部分</span>:</p>
<blockquote><p>查询的字段(列名):指明希望从表中检索<span>哪些列</span>的数据,例如产品名称、价格、编号等。<br />数据来源的表名:指明数据是从<span>哪个表</span>中获取的,例如 Products、Users、Orders 等。</p></blockquote>
<p>例如,下面这条语句的含义是:从名为 products 的表中,查询其中的 prod_name 列:</p>
<div class="jb51code"><pre class="brush:sql;">SELECT prod_name
FROM products;</pre></div>
<p>这是 SELECT 语句的基本结构,是学习 SQL 的第一步,也是后续所有查询操作的基础。</p>
<p class="maodian"><a name="_label1"></a></p><h2>为什么要学习SELECT 语句?</h2>
<p>&nbsp; &nbsp; &nbsp; &nbsp; SELECT 是与数据打交道的入口。 数据库中存储着大量信息,而我们学习 SQL 的目的之一就是从中<span>提取有用的信息</span>。无论是查看某个产品的价格、统计用户的订单数量,还是筛选出某个时间段内的数据,所有这些操作几乎都离不开 SELECT 语句。</p>
<p>&nbsp; &nbsp; &nbsp; &nbsp; SELECT 语句具有高度的扩展性。 从最简单的&ldquo;查询一列数据&rdquo;开始,到后续结合 WHERE 条件过滤、ORDER BY 排序、GROUP BY 分组聚合、JOIN 多表连接、嵌套子查询等复杂操作,几乎所有查询逻辑都是以 SELECT 为基础逐步构建的。也就是说,<span>SELECT 是贯穿整个数据库查询过程的核心</span>。</p>
<p>后续代码运行基于下面的 products 表 来进行查询</p>
<table><thead><tr><th>prod_id</th><th>prod_name</th><th>prod_price</th><th>vend_id</th></tr></thead><tbody><tr><td>1001</td><td>笔记本电脑</td><td>5999</td><td>100</td></tr><tr><td>1002</td><td>无线鼠标</td><td>99</td><td>100</td></tr><tr><td>1003</td><td>机械键盘</td><td>299</td><td>101</td></tr></tbody></table>
<p>prod_id 是产品唯一标识符<br />prod_name 是产品名称<br />prod_price 是产品价格<br />vend_id 是产品供应商 ID</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243218.png" /></p>
<p class="maodian"><a name="_label2"></a></p><h2>查询单列数据</h2>
<div class="jb51code"><pre class="brush:sql;">SELECT prod_name
FROM products;</pre></div>
<p>从 products 表中查询 prod_name 这一列的所有数据。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243297.png" /></p>
<p class="maodian"><a name="_label3"></a></p><h2>查询多列数据</h2>
<div class="jb51code"><pre class="brush:sql;">SELECT prod_id, prod_name, prod_price
FROM products;</pre></div>
<p>用<span>逗号分隔</span>多个字段名。<br />注意:最后一个字段后面不能加逗号。<br />返回的是表中的三列内容。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243294.png" /></p>
<p class="maodian"><a name="_label4"></a></p><h2>查询所有列</h2>
<div class="jb51code"><pre class="brush:sql;">SELECT *
FROM products;</pre></div>
<p>* 表示返回所有字段。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243219.png" /></p>
<p class="maodian"><a name="_label5"></a></p><h2>查询不同的值(去重)</h2>
<div class="jb51code"><pre class="brush:sql;">SELECT DISTINCT vend_id
FROM products;</pre></div>
<p>DISTINCT 用于去除重复值。<br />如果不想看到重复的供应商 ID,就要加它。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243210.png" /></p>
<div class="jb51code"><pre class="brush:sql;">SELECT DISTINCT vend_id, prod_price
FROM products;</pre></div>
<p>基于 (vend_id, prod_price) 的组合去重。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243266.png" /></p>
<p>在之前的表中,我们只有3行数据,在这里我们再添加5行数据,如下</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243211.png" /></p>
<p>运行下面代码添加数据即可,不用手动添加&nbsp;<br />记得圈出代码再运行,而不是直接运行</p>
<div class="jb51code"><pre class="brush:sql;">INSERT INTO products (prod_id, prod_name, prod_price, vend_id)
VALUES
    (1004, '平板电脑', 2499, 100),
    (1005, '蓝牙音箱', 199, 101),
    (1006, '游戏耳机', 399, 102),
    (1007, '无线充电器', 89, 100),
    (1008, '电竞鼠标垫', 49, 102);</pre></div>
<p class="maodian"><a name="_label6"></a></p><h2>限制返回行数</h2>
<div class="jb51code"><pre class="brush:sql;">SELECT prod_name
FROM products
LIMIT 5;</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243231.png" /></p>
<p class="maodian"><a name="_label7"></a></p><h2>分页查询(从第几行开始取多少行)</h2>
<div class="jb51code"><pre class="brush:sql;">SELECT prod_name
FROM products
LIMIT 2 OFFSET 3;</pre></div>
<p>LIMIT x OFFSET y 表示从第 y+1 行开始,取 x 行。<br />可用于实现分页(例如:第2页,每页5条数据)。</p>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202509/2025091814243214.png" /></p>
<p class="maodian"><a name="_label8"></a></p><h2>使用注释(3种写法)</h2>
<p>(1) 行内注释(常用):</p>
<div class="jb51code"><pre class="brush:sql;">SELECT prod_name-- 查询产品名
FROM products;</pre></div>
<p>(2) 整行注释:</p>
<div class="jb51code"><pre class="brush:sql;"># 查询产品名
SELECT prod_name
FROM products;</pre></div>
<p>(3) 块注释:</p>
<div class="jb51code"><pre class="brush:sql;">/* 这个查询已弃用
SELECT prod_name, vend_id
FROM products;
*/
SELECT prod_name
FROM products;</pre></div>
<p>注释不会被执行,用于提高可读性、临时停用某段代码。</p>
<p>尚未完结,可点击链接跳转下一篇文章</p>
<p><a href="https://www.jb51.net/article/83579.htm" rel="external nofollow"target="_blank">排序检索数据</a></p>
頁: [1]
查看完整版本: SQL 查询语句之select语句举例