你是不是经常听到同事说‘我从数据库拉了个表’,或者‘用SQL筛了下数据’,听得一头雾水?别慌,SQL没那么神秘,它就是一种用来和数据库说话的工具,就像你点外卖时跟商家说‘不要香菜’一样简单。
SQL是啥?能吃吗?
不能吃,但它能帮你拿到想要的数据。比如你在电商平台上班,老板问你‘上个月卖得最好的十款商品是哪些?’,如果你一个个翻表格,得干到半夜。但如果你会写一句SQL,点一下,结果就出来了。
SQL全名叫Structured Query Language,翻译过来叫“结构化查询语言”。说白了,就是告诉数据库:你想查什么、从哪张表查、加什么条件。
先认几个基本词
打开数据库,里面存数据的地方叫“表”,就像Excel表格一样。每一行是一条记录,每一列是一个字段。
比如有个叫products的表,长这样:
| id | name | price | category |
|----|------------|-------|----------|
| 1 | iPhone | 6999 | 手机 |
| 2 | AirPods | 1299 | 耳机 |
| 3 | iPad | 3999 | 平板 |
现在你想查所有价格高于2000的商品,该怎么说?
SELECT:我要查什么
最常用的命令就是SELECT,意思是“我要选一些数据出来”。
SELECT * FROM products;
这句的意思是:从products表里,把所有数据都拿过来。*是通配符,代表“所有列”。
如果你只关心名字和价格,可以写得具体点:
SELECT name, price FROM products;
WHERE:加个条件筛选
光查全部不过瘾,我们加上条件。比如只看价格大于2000的:
SELECT name, price FROM products WHERE price > 2000;
执行完,你就看到iPhone和iPad了。是不是比手动翻快多了?
ORDER BY:排个序更清楚
结果乱糟糟的怎么办?按价格从高到低排一下:
SELECT name, price FROM products WHERE price > 2000 ORDER BY price DESC;
ORDER BY price表示按价格排序,DESC是降序(从高到低),如果要升序,用ASC(也可以不写,默认升序)。
INSERT:往表里加新数据
除了查,你还能往表里加东西。比如新上架了一个MacBook:
INSERT INTO products (name, price, category) VALUES ('MacBook', 12999, '笔记本');
这句的意思是:往products表里插入一条新记录,名字是MacBook,价格12999,分类是笔记本。
UPDATE 和 DELETE:改和删
商品降价了,怎么改?用UPDATE:
UPDATE products SET price = 5999 WHERE name = 'iPhone';
注意!WHERE一定要写清楚,不然一不小心就把全表价格都改了,老板找你喝茶可别怪我没提醒。
要是某商品下架了,可以删掉:
DELETE FROM products WHERE name = 'AirPods';
同样,条件要写准,别手抖删错了。
现在该去哪练手?
光看不动等于白搭。你可以去W3Schools找个在线SQL编辑器,那里有个现成的测试环境,随便折腾都不会出事。或者装个SQLite,轻量又简单,适合新手。
记住,SQL不是程序员的专利。运营、产品、销售,只要天天和数据打交道,学会它就像捡了个效率外挂。今天花一小时弄懂,明天就能省下三小时加班。