← Blog

PostgreSQL: How To Update & Delete Data

September, 2019

Intro

So we learned how to create simple queries to read & write some data.

We also learned how to filter & order our data.

Now we want to learn how to update & delete data.


Connect to the Database Shell

First, I connect to my created database shell:

psql -d miku86-db

Read: Show All Data In person-table

Then, I check my current table:

miku86-db=# SELECT * FROM person;
 id | nickname | country | available
----+----------+---------+-----------
  1 | miku86   | germany | t
  2 | heidi    | austria | t
  3 | tom      | usa     | f
  4 | pavel    | russia  | f
(4 rows)

I SELECT all (* = wildcard) rows FROM the person-table. There are 4 rows in it.


Delete A Row

Simplified Syntax:

DELETE FROM [table] WHERE [expression];

Example #1: Delete the person(s) with the id of 1:

miku86-db=# DELETE FROM person WHERE id = 1;
DELETE 1

You can see DELETE 1 below the DELETE-query. The command executed successfully, 1 row was deleted.

miku86-db=# SELECT * FROM person;
 id | nickname | country | available
----+----------+---------+-----------
  2 | heidi    | austria | t
  3 | tom      | usa     | f
  4 | pavel    | russia  | f
(3 rows)

The person with the id of 1 was deleted.


Example #2: Delete the person(s) that are not available (=> available = false):

miku86-db=# DELETE FROM person WHERE available = false;
DELETE 2

You can see DELETE 2 below the DELETE-query. The command executed successfully, 2 rows were deleted.

miku86-db=# SELECT * FROM person;
 id | nickname | country | available
----+----------+---------+-----------
  2 | heidi    | austria | t
(1 row)

The person with the id of 1 was deleted in example 1. The persons with available of f (= false) were deleted in this example.


Update A Row

Simplified Syntax:

UPDATE [table] SET [col] = [newvalue] WHERE [expression];

Example #1: Update the person(s) with country of austria to country of germany:

miku86-db=# UPDATE person SET country = 'germany' WHERE country = 'austria';
UPDATE 1

You can see UPDATE 1 below the UPDATE-query. The command executed successfully, 1 row was updated.

miku86-db=# SELECT * FROM person;
 id | nickname | country | available
----+----------+---------+-----------
  2 | heidi    | germany | t
(1 row)

The person with the country of austria was updated to the country of germany.


Next Part

We will learn how to connect two tables.


Further Reading


miku86

Hi! I'm Michael πŸ‘‹ I'm a problem solver and mentor. My goal is to build great products and help you to become a better developer.