PostgreSQL——插入、更新与删除数据

发布于:2025-08-06 ⋅ 阅读:(20) ⋅ 点赞:(0)

一、插入数据

1.1、为表的所有字段插入数据

-- 语法
INSERT INTO table_name (column_list)
VALUES (value_list);

其中,table name指定要插入数据的表名,column list指定要插入数据的那些列,value list指定每个列应对应插入的数据。注意,使用该语句时字段列和数据值的数量必须相同。

CREATE TABLE person
(
	id INT NOT NULL,
	name CHAR(40) NOT NULL DEFAULT '',
	age INT NOT NULL DEFAULT 0,
	info CHAR(50) NULL,
	PRIMARY KEY(id)
);

-- 指定所有列名
INSERT INTO person (age, name, id, info)
VALUES (22, 'Suse', 2, 'dancer');

SELECT * FROM person;

在这里插入图片描述

-- 不指定列名
INSERT INTO person
VALUES (3, 'Mary', 24, 'Musician');

在这里插入图片描述

1.2、为表的指定字段插入数据

INSERT INTO person (id, name, age)
VALUES (4, 'Laura', 25);

SELECT * FROM person;

在这里插入图片描述

1.3、同时插入多条记录

-- 语法
INSERT INTO 表名 (字段列表)
VALUES (取值列表1), (取值列表2),..., (取值列表n);
INSERT INTO person (id, name, age, info)
VALUES (5, 'Evans', 27, 'secretary'),
	   (6, 'Dale', 22, 'cook'),
	   (7, 'Edison', 28, 'singer');

SELECT * FROM person;

在这里插入图片描述

1.4、将查询结果插入到表中

-- 语法
INSERT INTO table_name1 (column_list)
SELECT (column_list2) FROM table_name2 WHERE (condition)
-- 从person表中查询所有数据,并插入到person_new表中
CREATE TABLE person_new
(
	id INT NOT NULL,
	name CHAR(40) NOT NULL DEFAULT '',
	age INT NOT NULL DEFAULT 0,
	info CHAR(50) NULL,
	PRIMARY KEY(id)
);

INSERT INTO person_new (id, name, age, info)
SELECT id, name, age, info FROM person;

SELECT * FROM person_new;

在这里插入图片描述

二、更新数据

-- 语法
UPDATE table_name
SET column_name1 = value1, column_name2 = value2, ..., column_namen = valuen
WHERE (condition);
-- person表,更新id为7的记录,将age改为15,name改为LiMing
UPDATE person SET age = 15, name = 'LiMing'
WHERE id = 7;

在这里插入图片描述

三、删除数据

-- DELETE FROM table_name 
[WHERE <condition>];

其中,table name指定要执行别除操作的表:[WHERE]为可选参数,指定别除条件,如果没有WHERE子句,DELETE语句将删除表中的所有记录。

-- 删除person表中,id为7的记录
SELECT * FROM person WHERE id = 7;

DELETE FROM person WHERE id = 7;

SELECT * FROM person WHERE id = 7;
-- 删除多条数据
DELETE FROM person 
WHERE age BETWEEN 19 AND 22;
-- 删除所有记录
DELETE FROM person;

网站公告

今日签到

点亮在社区的每一天
去签到