说说那些常用的SQL数据库查询代码,简单介绍一下怎么写和用法
- 问答
- 2026-01-12 19:13:42
- 3
说到常用的SQL查询代码,其实就是我们跟数据库“对话”的几种基本句式,想象一下,数据库就是一个巨大的、井井有条的仓库,里面有很多表格(就像Excel表格一样),每个表格里存放着不同类型的数据,SQL查询就是你向仓库管理员发出的指令,告诉他你想查看或操作哪些东西。
最基本的查询:SELECT(看看有什么)
这是你用得最多的命令,相当于“给我看看……”。
- 怎么写:
SELECT 列名1, 列名2 FROM 表名; - 用法:你想看哪几列的数据,就把列名写在
SELECT后面,用逗号隔开,从哪个表里看,就把表名写在FROM后面。 - 例子:
SELECT name, age FROM students;意思是:从“学生”这个表格里,把每个人的“姓名”和“年龄”这两列数据找出来给我看。- 如果你想看这个表里的所有列,可以用一个星号来代替所有列名:
SELECT * FROM students;这就相当于说“把学生表里所有人的所有信息都给我看”。
带条件的查询:WHERE(只看我关心的)
仓库里的东西太多了,你通常只想看满足特定条件的部分。WHERE就是用来加条件的。
- 怎么写:
SELECT 列名 FROM 表名 WHERE 条件; - 用法:在
WHERE后面写上你的条件,条件可以是比较大小(比如大于>、小于<、等于、不等于),也可以是模糊匹配。 - 例子:
SELECT name FROM students WHERE age > 20;意思是:只找出那些年龄大于20岁的学生的名字。SELECT * FROM products WHERE price < 50;意思是:找出“产品”表里所有价格低于50块的产品信息。- 模糊匹配用
LIKE,SELECT name FROM students WHERE name LIKE '张%';这里的百分号代表任意字符,所以这句是找出所有姓“张”的学生。
给结果排个序:ORDER BY(按顺序摆好)
查出来的数据可能很乱,你可以要求数据库按某一列的大小顺序给你排列好。

- 怎么写:
SELECT 列名 FROM 表名 ORDER BY 排序列名 ASC|DESC; - 用法:
ORDER BY后面跟上你想根据哪一列来排序。ASC是从小到大(升序),DESC是从大到小(降序),如果不写,默认是ASC。 - 例子:
SELECT name, score FROM students ORDER BY score DESC;意思是:把学生的姓名和成绩查出来,并且按照成绩从高到低(降序)排列,这样第一名就排在最前面。SELECT * FROM products ORDER BY price ASC, sales DESC;意思是:先按价格从低到高排,如果价格一样,再按销量从高到低排。
统计一下数据:COUNT, SUM, AVG(数一数、算总和、求平均)
有时候你关心的不是具体每一条数据,而是整体的统计情况。
- 怎么写:
SELECT 统计函数(列名) FROM 表名; - 用法:这几个是常用的统计函数。
COUNT(*):数一数总共有多少条记录。SUM(列名):计算某一列所有数值的总和。AVG(列名):计算某一列所有数值的平均值。
- 例子:
SELECT COUNT(*) FROM students;意思是:数一数学生表里总共有多少个学生。SELECT AVG(score) FROM students WHERE class='一班';意思是:计算“一班”学生的平均成绩是多少。
把数据分分组:GROUP BY(分类统计)
这个听起来有点复杂,但其实很简单,比如你想看每个班级的平均分,而不是全年级一个总的平均分,这就需要先把学生按班级分组,再对每个组计算平均分。

- 怎么写:
SELECT 分组的列名, 统计函数(列名) FROM 表名 GROUP BY 分组的列名; - 用法:
GROUP BY后面跟着你按什么来分组,通常会和COUNT、SUM这些统计函数一起用。 - 例子:
SELECT class, AVG(score) FROM students GROUP BY class;意思是:先把所有学生按照“班级”分组,然后分别计算每个班级的平均成绩,结果会显示“一班平均分XX,二班平均分YY……”。SELECT department, COUNT(*) FROM employees GROUP BY department;意思是:统计“员工”表里,每个部门分别有多少人。
多表关联查询:JOIN(把几个表的信息拼起来)
很多时候,我们需要的信息分散在不同的表里,比如一个表存学生基本信息(学号、姓名),另一个表存成绩(学号、科目、分数),你想看每个学生每科的具体分数,就需要把两个表根据“学号”这个共同点关联起来。
- 怎么写(最常用的内连接):
SELECT A.列名, B.列名 FROM 表A JOIN 表B ON A.共同列 = B.共同列; - 用法:
JOIN用来连接另一个表,ON后面指定两个表通过哪一列来建立关系,这种查询只显示两个表中能匹配上的记录。 - 例子:
SELECT students.name, scores.subject, scores.score FROM students JOIN scores ON students.id = scores.student_id;意思是:从“学生”表和“成绩”表中,把学号能对应上的记录连接起来,然后选出学生的姓名、科目和分数,这样你就能在一个结果里看到“张三的数学得了95分,李四的英语得了88分”这样的信息了。
往表里加新数据:INSERT(添点新东西)
- 怎么写:
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2); - 例子:
INSERT INTO students (name, age) VALUES ('王五', 22);意思是:往学生表里添加一条新记录,姓名是“王五”,年龄是22岁。
修改已有的数据:UPDATE(改改内容)
- 怎么写:
UPDATE 表名 SET 列名=新值 WHERE 条件;(注意:这里WHERE非常重要,没有它会把整个表都改了!) - 例子:
UPDATE students SET age=23 WHERE name='王五';意思是:把姓名为“王五”的那个学生的年龄改成23岁。
删除数据:DELETE(清理掉不要的)
- 怎么写:
DELETE FROM 表名 WHERE 条件;(同样,WHERE条件极其重要,否则会清空整个表!) - 例子:
DELETE FROM students WHERE name='王五';意思是:删除学生表里所有叫“王五”的记录。
就是最核心、最常用的SQL查询代码了,你完全可以把它当成一套固定的句式来理解和记忆,多练习几次就能熟练掌握了,和数据库“对话”的关键就是想清楚:你想看什么(SELECT)、从哪看(FROM)、看哪些符合条件的(WHERE)、怎么看(ORDER BY/JOIN等)。
本文由帖慧艳于2026-01-12发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/79487.html
