说说MySQL那些常用语句,怎么用才不会乱套,基础入门随便看看
- 问答
- 2026-01-12 00:13:39
- 3
说到MySQL,其实就是个放数据的“大仓库”,里面有很多“货架”(表)来分门别类,你想往里存东西、找东西、改东西或者扔东西,都得用它能听懂的话去说,这些话就是SQL语句,刚开始学,别被那些高大上的词吓到,你就记住最常用的四类:增、删、改、查,把这四样玩明白了,日常大部分活儿就都能干了。
第一大类:查(SELECT)—— 这是你用得最多的
你想从仓库里看看有什么,全靠它,最基本的格式是这样:(参考W3School的SQL教程基础部分)
SELECT 你想看哪些列 FROM 这些列在哪个表里;
你有个叫students的表(学生花名册),里面有id、name、age三列,你想看所有学生的所有信息,那就说:
SELECT * FROM students;
这个星号是个通配符,代表“所有列”,但有时候表里列太多,你只关心名字和年龄,那就别用,点名要哪几列:
SELECT name, age FROM students;
这样结果看起来更清爽,光看全部还不够,经常需要带点条件查,比如你想找年龄刚好18岁的学生,这就用得上WHERE了:(这个WHERE子句的概念在很多入门书里都有,SQL必知必会》)
SELECT name, age FROM students WHERE age = 18;
WHERE后面跟的就是你的条件,除了等于,还能用大于>、小于<、不等于、大于等于>=等等,条件还能组合,用AND(和OR(或者),比如找年龄大于18并且名字叫“张三”的学生:
SELECT * FROM students WHERE age > 18 AND name = '张三';
注意,文本值像‘张三’得用单引号包起来,数字就不用,查出来的结果顺序可能乱七八糟,你想按年龄从小到大排,就加个ORDER BY:(排序功能在各类SQL基础指南中都是重点)
SELECT name, age FROM students ORDER BY age ASC;
ASC表示升序(从小到大),要是想从大到小,换成DESC就行,有时候你只想知道前几条记录,比如年龄最小的3个学生,MySQL有个简便写法LIMIT:
SELECT name, age FROM students ORDER BY age ASC LIMIT 3;
第二大类:增(INSERT)—— 往仓库里放新东西
来了个新学生,你得把他的信息录入系统,语句长这样:(插入语句的语法是标准SQL的一部分)
INSERT INTO 表名 (列1, 列2, ...) VALUES (值1, 值2, ...);
向students表添加一个叫李四、年龄20的学生,因为id通常是自己增长的,我们只提供name和age:
INSERT INTO students (name, age) VALUES ('李四', 20);
列的名字和后面的值要一一对应好,顺序不能乱,如果你想为所有列都添加值,可以省略列名,但VALUES里的值必须包含所有列且顺序完全和表定义一致,一般不推荐这么干,容易出错。
INSERT INTO students VALUES (NULL, '王五', 22); -- 假设id是自增的,这里可以用NULL或0占位
第三大类:改(UPDATE)—— 修改已有的信息
发现某个学生的信息错了,要改一下,比如张三过生日了,年龄要加1岁,这要用UPDATE语句,而且一定要配WHERE条件,不然就全表都改了,这是非常危险的操作!(所有SQL教程都会强烈警告UPDATE不带WHERE的后果)
UPDATE 表名 SET 列名 = 新值 WHERE 条件;
给张三改年龄:
UPDATE students SET age = 19 WHERE name = '张三';
一定要确认WHERE name = '张三'这个条件能精确定位到你要改的那一行,可以一次改多个列,用逗号隔开:
UPDATE students SET name = '张老三', age = 20 WHERE id = 1; -- 用唯一性的id来定位更安全
第四大类:删(DELETE)—— 从仓库里扔掉东西
有个学生转学了,要删除他的记录,用DELETE,这个更要命,也必须紧跟WHERE条件,不然整个表的数据就清空了!(DELETE语句的风险是入门必强调的)
DELETE FROM 表名 WHERE 条件;
删除名字是李四的学生:
DELETE FROM students WHERE name = '李四';
同样,能用唯一id尽量用id,因为可能有重名的,DELETE FROM students WHERE id = 3; 这样最保险。
怎么用才不会乱套?几个小贴士:
WHERE是保命符:无论是UPDATE还是DELETE,动手前先写成SELECT用同样的条件查一下,看看是不是你要操作的那些行,比如要删除id为5的人,先SELECT * FROM students WHERE id = 5;确认无误,再把SELECT *换成DELETE。- 多用
LIMIT:特别是在测试UPDATE和DELETE时,MySQL支持带LIMIT,比如UPDATE ... WHERE ... LIMIT 1;,这样即使条件写宽了,也只影响一条记录,闯祸也闯得小点。 - 事务是后悔药:对于一连串非常重要的操作(比如银行转账,一个账户减钱,另一个账户加钱),可以用事务(Transaction),用
START TRANSACTION;开头,然后执行你的多条SQL,如果中途发现不对,可以用ROLLBACK;让所有修改全部撤销,像什么都没发生过,确认完全正确后,再用COMMIT;提交,修改才真正生效,这个机制能保证数据的一致性。(事务概念在数据库基础教材中会有介绍,如《MySQL Crash Course》) - 别怕犯错,在安全环境练习:自己学习时,最好在自己电脑上安装个MySQL,或者用线上的练习平台,在里面随便建表,增删改查,玩坏了也没关系,重来就是,熟练了再去碰生产环境的数据库。
刚开始学,别想着一下子把所有高级功能都掌握,就把“增删改查”这四句口诀记牢,搞清楚每个词是干嘛的,特别是WHERE的用法和重要性,多练习几次,怎么查数据,怎么准确地修改和删除一条数据,基础就打好了,以后遇到更复杂的需求,比如统计个数(COUNT)、分组(GROUP BY)、多表关联查询(JOIN)等等,都是在这个基础上扩展的。

本文由酒紫萱于2026-01-12发表在笙亿网络策划,如有疑问,请联系我们。
本文链接:https://www.haoid.cn/wenda/78993.html
