# Structured Query Language Standard language for relational database management systems. ## TL;DR `NULL` represents **unknown** or **missing** information.
It is **not** the same as an empty string or the number 0. | Constraint | Description | | ---------- | ---------------------------------------------- | | `NOT NULL` | The value cannot be `NULL` | | `UNIQUE` | The value must be unique in the table's column | _Primary keys_ are one or more columns in a table used to uniquely identify a single row.
Tables can have **zero or one** primary keys. They **cannot** have more than one primary key. Technically, primary key constraints are the combination of a `NOT NULL` constraint and a `UNIQUE` constraint. _Foreign keys_ are one or more columns in a table that uniquely identify a row in **another** table.
They reference either the primary key or another `UNIQUE` constraint of the referenced table. ## Further readings - [The SQL Standard - ISO/IEC 9075:2023 (ANSI X3.135)] - [PostgreSQL] - [MySQL] [mysql]: mysql.md [postgresql]: postgresql.md [the sql standard - iso/iec 9075:2023 (ansi x3.135)]: https://blog.ansi.org/sql-standard-iso-iec-9075-2023-ansi-x3-135/