bugl
bugl
HomeLearnPatternsPathsSearchPremium
HomeLearnPatternsPaths
Learn/SQL/SQL Database
SQL•SQL Database

SQL CREATE TABLE Statement

The SQL CREATE TABLE Statement

The CREATE TABLE statement is used to create a new table in a database.

Syntax

CREATE TABLE
table_name
(
column1 datatype constraint
,
column2 datatype constraint
,
column3 datatype constraint
,
 ....
);

The table_name parameter specifies the name of the new table.

The column1 , column2 , ... parameters specify the names of the columns within the table.

The datatype parameter specifies the data type of each column (e.g. varchar, int, date, etc.).

The constraint parameter is optional, and specifies rules for data integrity (e.g. primary key, not null, etc.).

Tip

Learn more about constraints in our SQL Constraints chapter.

Tip

For an overview of the available data types, go to our complete Data Types Reference .

CREATE TABLE Example

The following example creates a table named "Persons" with five columns:

Example

CREATE TABLE Persons
(
 PersonID int PRIMARY KEY,
 LastName varchar(255) NOT NULL,
 FirstName varchar(255),
 Address varchar(255),
 City varchar(255)
);

Example Explained

  • PersonID - This column is of type integer (int). This is also the PRIMARY KEY field, that uniquely identifies each row.
  • LastName - This column is a variable-length character string with a maximum length of 255 characters (varchar(255)). NOT NULL specifies that this column cannot be empty.
  • FirstName, Address, City - These columns are also variable-length character strings with a maximum length of 255 characters (varchar(255)). These columns allow NULL values by default.

The empty "Persons" table will now look like this:

PersonIDLastNameFirstNameAddressCity

Tip

The empty "Persons" table can now be filled with data, with the SQL INSERT INTO statement.

Create New Table From Existing Table

The CREATE TABLE statement can also be used to create a new table that copies some/all data from an existing table.

If you create a new table from an existing table, the new table will be filled with the values from the existing table.

Syntax

CREATE TABLE
new_table
AS SELECT
column1, column2,...
FROM
 existing_table
WHERE ....;

The following SQL creates a new table called "GermanCustomers" (which is a copy of the "Customers" table):

Example

CREATE TABLE
 GermanCustomers AS
SELECT * FROM Customers
WHERE Country = 'Germany';

Previous

SQL BACKUP DATABASE Statement

Next

SQL DROP TABLE Statement

This chapter

Overview
21

Lessons

50m

Read time

1. SQL CREATE DATABASE Statement2. SQL DROP DATABASE Statement3. SQL BACKUP DATABASE Statement4. SQL CREATE TABLE Statement5. SQL DROP TABLE Statement6. SQL ALTER TABLE Statement7. SQL Constraints8. SQL NOT NULL Constraint9. SQL UNIQUE Constraint10. SQL PRIMARY KEY Constraint11. SQL FOREIGN KEY Constraint12. SQL CHECK Constraint13. SQL DEFAULT Constraint14. SQL CREATE INDEX Statement15. SQL AUTO INCREMENT Field16. SQL Working With Dates17. SQL Views18. SQL Injection19. SQL Parameters20. SQL Prepared Statements21. SQL Hosting

On this page

The SQL CREATE TABLE StatementCREATE TABLE ExampleCreate New Table From Existing Table