SQL CREATE TABLE Statement
Sure! Creating a table in SQL involves defining the structure of the table, including its columns and their data types. Here's a detailed explanation along with examples:
Basic Syntax
The basic syntax for creating a table in SQL is:
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
...
);
- table_name: The name of the table.
- column1, column2, ...: The names of the columns in the table.
- datatype: The type of data the column can hold (e.g.,
INT,VARCHAR,DATE, etc.). - constraints: Optional rules that can be applied to the data in the columns (e.g.,
PRIMARY KEY,NOT NULL,UNIQUE, etc.).
Example 1: Creating a Simple Table
Let's create a table named employees with four columns: id, first_name, last_name, and hire_date.
CREATE TABLE employees (
id INT PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
hire_date DATE
);
In this example:
idis an integer and is the primary key, meaning it uniquely identifies each row in the table.first_nameandlast_nameare variable character fields with a maximum length of 50 characters, and they cannot be null.hire_dateis a date field.
Example 2: Creating a Table with Constraints
Let's create a table named products with some constraints.
CREATE TABLE products (
product_id INT PRIMARY KEY,
product_name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) CHECK (price > 0),
stock_quantity INT DEFAULT 0,
category_id INT,
FOREIGN KEY (category_id) REFERENCES categories(category_id)
);
In this example:
product_idis an integer and the primary key.product_nameis a variable character field with a maximum length of 100 characters and cannot be null.priceis a decimal field with 10 digits in total, 2 of which are after the decimal point, and it must be greater than 0.stock_quantityis an integer field with a default value of 0.category_idis an integer field that references thecategory_idcolumn in thecategoriestable (assuming thecategoriestable exists).
Example 3: Creating a Table with Auto-Increment
Let's create a table named orders where the order_id column auto-increments.
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
order_date DATE NOT NULL,
customer_id INT,
total_amount DECIMAL(10, 2),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
);
In this example:
order_idis an integer that auto-increments with each new row and is the primary key.order_dateis a date field and cannot be null.customer_idis an integer field that references thecustomer_idcolumn in thecustomerstable (assuming thecustomerstable exists).total_amountis a decimal field with 10 digits in total, 2 of which are after the decimal point.
These examples cover some of the common use cases and constraints you might encounter when creating tables in SQL.
Written by Shaikh Abdul Shahid
A Full-Stack Developer with experience in PHP, Laravel, JavaScript, and React.
Founder of Online Learner, sharing practical knowledge and programming tutorials.
Building and maintaining real-world web applications since 2017.
Your Feedback
Help us improve by sharing your thoughts
Online Learner helps developers master programming, database concepts, interview preparation, and real-world implementation through structured learning paths.
Quick Links
© 2023 - 2026 OnlineLearner.in | All Rights Reserved.
