--- title: Inserting & editing data description: Add, change, and remove rows — with required filters and automatic confirmation of what changed. sidebar: order: 7 --- Once your tables exist, you fill them with rows and keep them up to date. The examples use the [example library](/getting-started/example-library/). After every write, the playground shows you the rows that changed, so you can confirm the effect at a glance. ## Inserting rows List the columns you are providing, then the matching values: ```rdbms insert into members (name, joined) values ('Katherine Johnson', '2024-06-01') ``` ``` 1 row(s) inserted ┌───────────┬───────────────────┬────────────┐ │ member_id │ name │ joined │ ├───────────┼───────────────────┼────────────┤ │ 3 │ Katherine Johnson │ 2024-06-01 │ └───────────┴───────────────────┴────────────┘ ``` Notice that `member_id` was filled in automatically — it is a `serial` column, so you leave it out of the `insert` and the database assigns the next value. The same applies to `shortid` columns and to any column with a [default](/reference/constraints/) (see [Types](/reference/types/)). ## Updating rows `update` changes columns on the rows that match a filter: ```rdbms update books set published = 1970 where book_id = 2 ``` ``` 1 row(s) updated ┌─────────┬───────────────────────────┬───────────┬───────────┬────────────────┐ │ book_id │ title │ author_id │ published │ isbn │ ├─────────┼───────────────────────────┼───────────┼───────────┼────────────────┤ │ 2 │ The Left Hand of Darkness │ 1 │ 1970 │ 978-0441478125 │ └─────────┴───────────────────────────┴───────────┴───────────┴────────────────┘ ``` ## Deleting rows ```rdbms delete from authors where author_id = 3 ``` When the deleted row has children linked by an `on delete cascade` [relationship](/reference/relationships/), those children are removed too, and the result reports each affected relationship: ``` 1 row(s) deleted related: 1 row(s) deleted in `books` for relationship `books_author` (on delete cascade) ``` ## The required filter `update` and `delete` **must** have a `where` clause. This is a safety rail: it is far too easy to wipe or rewrite a whole table by forgetting one. When you really do mean every row, say so explicitly with `--all-rows`: ```rdbms update books set published = 2000 --all-rows delete from loans --all-rows ``` ```rdbms-syntax update