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.
Your Feedback
Help us improve by sharing your thoughts
At Online Learner, we're on a mission to ignite a passion for learning and empower individuals to reach their full potential. Founded by a team of dedicated educators and industry experts, our platform is designed to provide accessible and engaging educational resources for learners of all ages and backgrounds.
Terms Disclaimer About Us Contact Us
Copyright 2023-2025 © All rights reserved.
