← Language & Syntax
LANGUAGE & SYNTAX · SQL

SQL Basics

Learn the SQL syntax you need to read, query, filter, combine, and update data.

Overview

SQL (Structured Query Language) is used to work with data stored in relational databases.

You can use SQL to read, filter, sort, calculate totals, combine tables, add or update records, and create database tables.

DatabaseTableRowColumnSQL QueryResult
SELECT customer, product
FROM orders;

SQL 查询不会默认修改原始数据。SELECT 只是读取数据。

01 · Query Basics

最基础的 SQL 查询语法。

SELECT

选择你想查看的数据列。

场景:查看订单、客户、产品、库存。

SELECT column_name
FROM table_name;

SELECT customer
FROM orders;

查看 orders 表中的 customer 列。

SELECT Multiple Columns

一次选择多个字段。

SELECT customer, product, quantity
FROM orders;

同时查看客户、产品和数量。

SELECT *

* 表示所有字段,适合快速查看整张表。

SELECT * FROM orders;

DISTINCT

去掉重复值。

SELECT DISTINCT product FROM orders;

AS

给字段或计算结果取一个临时名称。

SELECT customer AS customer_name FROM orders;

02 · Filtering

只找出符合条件的数据。

WHERE

根据条件过滤数据。

SELECT * FROM orders
WHERE product = 'Copper';

只查看 Copper 的订单。

= · > · < · >= · <= · !=

等于、不等于,或比较数字大小。

SELECT * FROM orders WHERE quantity > 10;
SELECT * FROM orders WHERE product != 'Copper';

AND · OR · IN

组合条件,或匹配多个指定值。

SELECT * FROM orders
WHERE product = 'Copper' AND quantity > 5;
SELECT * FROM orders
WHERE product IN ('Copper', 'Aluminum', 'Nickel');

BETWEEN · LIKE · IS NULL

查询范围、模糊文字,或没有值的数据。

SELECT * FROM orders WHERE price BETWEEN 8000 AND 9000;
SELECT * FROM customers WHERE customer_name LIKE 'App%';
SELECT * FROM orders WHERE delivery_date IS NULL;

03 · Sorting & Aggregation

排序数据,以及进行数量、金额等统计。

ORDER BY · ASC · DESC

给结果排序;ASC 从小到大,DESC 从大到小。

SELECT * FROM orders ORDER BY price DESC;

COUNT() · SUM() · AVG() · MAX() · MIN()

统计数量、总和、平均值、最大值和最小值。

SELECT COUNT(*) FROM orders;
SELECT SUM(quantity) FROM orders;
SELECT AVG(price) FROM orders;

GROUP BY · HAVING

分组统计,并过滤分组后的结果。

SELECT product, SUM(quantity)
FROM orders GROUP BY product
HAVING SUM(quantity) > 100;

04 · Joining Tables

从多张表中组合数据。

INNER JOIN

只返回两张表都能匹配的数据。

SELECT orders.order_id, customers.customer_name, orders.product
FROM orders INNER JOIN customers
ON orders.customer_id = customers.customer_id;

LEFT JOIN

保留左边表的所有数据,即使暂时找不到对应 customer。

SELECT o.order_id, c.customer_name
FROM orders o LEFT JOIN customers c
ON o.customer_id = c.customer_id;

Table Alias

给表使用简称,让 SQL 更短、更容易阅读:o = orders,c = customers。

05 · Logic

在 SQL 中加入简单的判断逻辑。

CASE WHEN

类似 IF / ELSE,根据条件分类。

SELECT order_id, quantity,
CASE WHEN quantity >= 100 THEN 'Large'
WHEN quantity >= 50 THEN 'Medium'
ELSE 'Small' END AS order_size
FROM orders;

COALESCE

如果字段是 NULL,就使用另外一个值。

SELECT COALESCE(delivery_date, 'Not delivered') FROM orders;

NULLIF

如果两个值相同,返回 NULL。

SELECT NULLIF(quantity, 0) FROM orders;

06 · Data Modification

修改数据库中的数据。

Warning:这些 SQL 会修改真实数据。执行 UPDATE / DELETE 前应确认 WHERE 条件。

INSERT

增加一条新数据。

INSERT INTO customers (customer_id, customer_name)
VALUES ('C03', 'Samsung');

UPDATE

修改已有数据。

UPDATE orders SET quantity = 20
WHERE order_id = 1001;

如果没有 WHERE,可能会修改整张表。

DELETE

删除数据。

DELETE FROM orders WHERE order_id = 1001;

DELETE FROM orders; 会删除表中的所有记录。

07 · Database Definition

创建或修改数据库结构。

CREATE TABLE

创建一张新表。

CREATE TABLE customers (
customer_id INT,
customer_name VARCHAR(100),
country VARCHAR(50)
);

Basic Data Types

INT:整数,适合 ID、数量、年龄。
DECIMAL:小数,适合 Price、Amount、Weight。
VARCHAR:文字,适合 Name、Product、Country。
DATE:日期,例如 2026-09-12。
TIMESTAMP:日期 + 时间。
BOOLEAN:True / False。

quantity INT
price DECIMAL(10,2)
customer_name VARCHAR(100)
delivery_date DATE

ALTER TABLE

修改表结构。

ALTER TABLE customers ADD email VARCHAR(100);

DROP TABLE

删除整张表,包括表结构和数据。

DROP TABLE customers;

Glossary

TermMeaning
SELECT查询数据
FROM指定数据来自哪张表
WHERE过滤数据
ORDER BY排序
GROUP BY分组统计
HAVING过滤分组后的结果
JOIN连接多张表
ON定义 JOIN 条件
INSERT新增数据
UPDATE修改数据
DELETE删除数据
CREATE创建数据库对象
ALTER修改数据库结构
DROP删除数据库对象
NULL没有值
AS设置别名
DISTINCT去除重复值
COUNT · SUM · AVG · MAX · MIN统计、求和、平均、最大、最小
CASE条件判断
↑ Back to top