PostgreSQL 基本SQL语法(二)

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 练习题目

  1. 创建一个新表 products,包括以下列:

    • id(整数,主键,自增)
    • name(字符串,最大长度 100,不为空)
    • price(浮点数,不为空)
    • created_at(时间戳,默认为当前时间)
  2. products 表中插入以下数据:

    • nameLaptopprice 为 1200.00
    • nameSmartphoneprice 为 800.00
  3. 查询 products 表中所有价格大于 1000 的产品。

  4. Laptop 的价格更新为 1000.00,并返回更新后的记录。

  5. 删除 Smartphone 产品,并返回删除的记录。

5.2 示例答案

  1. 创建表:
CREATE TABLE products (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price NUMERIC NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
  1. 插入数据:
INSERT INTO products (name, price)
VALUES 
    ('Laptop', 1200.00),
    ('Smartphone', 800.00);
  1. 查询价格大于 1000 的产品:
SELECT * FROM products WHERE price > 1000;
  1. 更新 Laptop 的价格并返回更新后的记录:
UPDATE products SET price = 1000.00 WHERE name = 'Laptop' RETURNING *;
  1. 删除 Smartphone 产品并返回删除的记录:
DELETE FROM products WHERE name = 'Smartphone' RETURNING *;


系统文章目录:

PostgreSQL 简介与基础(一)

PostgreSQL 基本SQL语法(二)

PostgreSQL 高级SQL查询(三)

PostgreSQL 数据库设计与管理(四)

PostgreSQL 高级功能(五)

PostgreSQL 性能优化与调优(六)

PostgreSQL 高可用性与灾难恢复策略(七)

PostgreSQL 安全性与权限管理(八)

PostgreSQL 高级功能与扩展(九)

PostgreSQL 分区表与并行查询(十)

PostgreSQL 索引优化与性能调优(十一)

PostgreSQL 日志管理与故障排查(十二)

PostgreSQL 高可用性与容错性(十三)

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值