1. SELECT 语句
1.1 基本 SELECT 语法
SELECT 语句用于从数据库中检索数据。基本语法如下:
SELECT column1, column2, ... FROM table_name;例如,从 users 表中检索所有列的数据:
SELECT * FROM users;1.2 使用 WHERE 条件
WHERE 子句用于过滤数据,仅返回满足条件的记录。基本语法如下:
SELECT column1, column2, ... FROM table_name WHERE condition;例如,查询用户名为 alice 的用户:
SELECT * FROM users WHERE username = 'alice';1.3 排序与限制(ORDER BY, LIMIT)
- ORDER BY子句用于对查询结果进行排序。
- LIMIT子句用于限制返回的记录数。
基本语法如下:
SELECT column1, column2, ... FROM table_name ORDER BY column1 [ASC|DESC] LIMIT number;例如,按创建时间排序并返回前 5 条记录:
SELECT * FROM users ORDER BY created_at DESC LIMIT 5;2. INSERT 语句
2.1 基本 INSERT 语法
INSERT 语句用于向表中插入数据。基本语法如下:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);例如,向 users 表中插入一条新记录:
INSERT INTO users (username, email) VALUES ('bob', 'bob@example.com');2.2 插入多条记录
可以一次插入多条记录:
INSERT INTO users (username, email) VALUES ('charlie', 'charlie@example.com'), ('dave', 'dave@example.com');2.3 插入数据的注意事项
- 插入的数据类型必须与列的数据类型匹配。
- 插入记录时,如果某列没有提供值且该列定义了默认值,则使用默认值。
3. UPDATE 语句
3.1 基本 UPDATE 语法
UPDATE 语句用于更新表中的数据。基本语法如下:
UPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;例如,更新 bob 的电子邮件地址:
UPDATE users SET email = 'bob@newdomain.com' WHERE username = 'bob';3.2 更新多个列
可以同时更新多个列:
UPDATE users SET email = 'dave@newdomain.com', username = 'dave_new' WHERE username = 'dave';3.3 使用 RETURNING 返回更新后的数据
RETURNING 子句用于返回更新后的数据:
UPDATE users SET email = 'bob@anotherdomain.com' WHERE username = 'bob' RETURNING *;4. DELETE 语句
4.1 基本 DELETE 语法
DELETE 语句用于从表中删除数据。基本语法如下:
DELETE FROM table_name WHERE condition;例如,删除用户名为 charlie 的用户:
DELETE FROM users WHERE username = 'charlie';4.2 使用 RETURNING 返回删除的数据
RETURNING 子句用于返回删除的数据:
DELETE FROM users WHERE username = 'charlie' RETURNING *;5. 实战演练
5.1 练习题目
-  创建一个新表 products,包括以下列:- id(整数,主键,自增)
- name(字符串,最大长度 100,不为空)
- price(浮点数,不为空)
- created_at(时间戳,默认为当前时间)
 
-  向 products表中插入以下数据:- name为- Laptop,- price为 1200.00
- name为- Smartphone,- price为 800.00
 
-  查询 products表中所有价格大于 1000 的产品。
-  将 Laptop的价格更新为 1000.00,并返回更新后的记录。
-  删除 Smartphone产品,并返回删除的记录。
5.2 示例答案
- 创建表:
CREATE TABLE products (id SERIAL PRIMARY KEY,name VARCHAR(100) NOT NULL,price NUMERIC NOT NULL,created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
- 插入数据:
INSERT INTO products (name, price)
VALUES ('Laptop', 1200.00),('Smartphone', 800.00);
- 查询价格大于 1000 的产品:
SELECT * FROM products WHERE price > 1000;- 更新 Laptop的价格并返回更新后的记录:
UPDATE products SET price = 1000.00 WHERE name = 'Laptop' RETURNING *;- 删除 Smartphone产品并返回删除的记录:
DELETE FROM products WHERE name = 'Smartphone' RETURNING *;