0% found this document useful (0 votes)
37 views

Postgresql Create Table

The document discusses the PostgreSQL CREATE TABLE syntax. The CREATE TABLE statement is used to create new tables which consist of rows and columns used to store structured data. The syntax specifies the table name, column names and data types, column constraints like primary keys and foreign keys, and table constraints. Examples are given to demonstrate creating tables with different column constraints to define the relationships between multiple tables.

Uploaded by

Anil Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
37 views

Postgresql Create Table

The document discusses the PostgreSQL CREATE TABLE syntax. The CREATE TABLE statement is used to create new tables which consist of rows and columns used to store structured data. The syntax specifies the table name, column names and data types, column constraints like primary keys and foreign keys, and table constraints. Examples are given to demonstrate creating tables with different column constraints to define the relationships between multiple tables.

Uploaded by

Anil Yadav
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

PostgreSQL CREATE TABLE syntax

A relational database consists of multiple related tables. A table consists of rows and columns.
Tables allow you to store structured data like customers, products, employees, etc.

To create a new table, you use the  CREATE TABLE  statement. The following illustrates the basic
syntax of the  CREATE TABLE  statement:

CREATE TABLE [IF NOT EXISTS] table_name (


column1 datatype(length) column_contraint,
column2 datatype(length) column_contraint,
column3 datatype(length) column_contraint,
table_constraints
);

In this syntax:

First, specify the name of the table after the  CREATE TABLE  keywords.
Second, creating a table that already exists will result in a error. The  IF NOT EXISTS  option
allows you to create the new table only if it does not exist. When you use the  IF NOT
EXISTS  option and the table already exists, PostgreSQL issues a notice instead of the error and
skips creating the new table.
Third, specify a comma-separated list of table columns. Each column consists of the column
name, the kind of data that column stores, the length of data, and the column constraint. The
column constraints specify rules that data stored in the column must follow. For example, the
not-null constraint enforces the values in the column cannot be NULL. The column constraints
include not null, unique, primary key, check, foreign key constraints.
Finally, specify the table constraints including primary key, foreign key, and check constraints.

Note that some table constraints can be defined as column constraints like primary key, foreign
key, check, unique constraints.

Constraints
PostgreSQL includes the following column constraints:

NOT NULL – ensures that values in a column cannot be  NULL .


UNIQUE– ensures the values in a column unique across the rows within the same table.
PRIMARY KEY– a primary key column uniquely identify rows in a table. A table can have one
and only one primary key. The primary key constraint allows you to define the primary key of a
table.
CHECK– a  CHECK  constraint ensures the data must satisfy a boolean expression.
FOREIGN KEY– ensures values in a column or a group of columns from a table exists in a
column or group of columns in another table. Unlike the primary key, a table can have many
foreign keys.
Table constraints are similar to column constraints except that they are applied to more than one
column.

PostgreSQL CREATE TABLE examples


We will create a new table called  accounts  that has the following columns:

user_id – primary key


username – unique and not null
password – not null
email – unique and not null
created_on – not null
last_login – null

The following statement creates the  accounts  table:

CREATE TABLE accounts (


user_id serial PRIMARY KEY,
username VARCHAR ( 50 ) UNIQUE NOT NULL,
password VARCHAR ( 50 ) NOT NULL,
email VARCHAR ( 255 ) UNIQUE NOT NULL,
created_on TIMESTAMP NOT NULL,
last_login TIMESTAMP
);

The following statement creates the   roles  table that consists of two
columns:  role_id  and  role_name :

CREATE TABLE roles(


role_id serial PRIMARY KEY,
role_name VARCHAR (255) UNIQUE NOT NULL
);
The following statement creates the  account_roles  table that has three
columns:  user_id ,  role_id  and  grant_date .

CREATE TABLE account_roles (


user_id INT NOT NULL,
role_id INT NOT NULL,
grant_date TIMESTAMP,
PRIMARY KEY (user_id, role_id),
FOREIGN KEY (role_id)
REFERENCES roles (role_id),
FOREIGN KEY (user_id)
REFERENCES accounts (user_id)
);

The primary key of the  account_roles  table consists of two columns:  user_id  and  role_id ,
therefore, we have to define the primary key constraint as a table constraint.

PRIMARY KEY (user_id, role_id)

Because the  user_id column references to the  user_id column in the  accounts  table, we need to
define a foreign key constraintfor the  user_id column:

FOREIGN KEY (user_id)


REFERENCES accounts (user_id)

The  role_id column references the  role_id column in the  roles  table, we also need to define a
foreign key constraint for the  role_id column.

FOREIGN KEY (role_id)


REFERENCES roles (role_id)

The following shows the relationship between the  accounts ,  roles , and  account_roles  tables:
Summary
Use the  CREATE TABLE  statement to create a new table.
Use the  IF NOT EXISTS  option to create the new table only if it does not exist.
Apply the primary key, foreign key, not null, unique, and check constraints to columns of a
table.

You might also like