📝 SQL INSERT INTO Statement – Add Data to Your Tables Effectively

Want to add new data into your SQL tables? The INSERT INTO statement in SQL lets you insert one or multiple rows into your database quickly and efficiently.

In this tutorial, you’ll learn everything about the SQL INSERT INTO statement – syntax, use cases, best practices, and real-world examples.


📘 What is the INSERT INTO Statement?

The SQL INSERT INTO statement is used to add new records into an existing table. It is one of the most commonly used SQL Data Manipulation Language (DML) commands.


🧾 Basic Syntax of INSERT INTO

➤ Insert One Row – Specify Columns:

INSERT INTO employees (emp_id, emp_name, department, salary)
VALUES (101, 'Shubham', 'Analytics', 75000);

➤ Insert One Row – All Columns (in order):

INSERT INTO employees
VALUES (102, 'Neha', 'HR', 65000);

✅ Best Practice: Always specify the column names for clarity and future-proofing.


🔁 Insert Multiple Rows in One Statement

INSERT INTO employees (emp_id, emp_name, department, salary)
VALUES
  (103, 'Ravi', 'IT', 80000),
  (104, 'Priya', 'Finance', 72000),
  (105, 'Aman', 'Marketing', 67000);

🔄 Insert Data from Another Table – INSERT INTO SELECT

INSERT INTO employees_archive (emp_id, emp_name, department, salary)
SELECT emp_id, emp_name, department, salary
FROM employees
WHERE department = 'IT';

This is a powerful way to migrate or archive data based on conditions.


🚫 Inserting NULLs

If you don’t provide a value for a column and that column allows NULL, it will automatically store NULL:

INSERT INTO employees (emp_id, emp_name)
VALUES (106, 'Anita'); -- department and salary will be NULL

⚠️ What Happens If You Insert Invalid Data?

  • If the table has a NOT NULL constraint and you skip that column – you’ll get an error.
  • If a PRIMARY KEY or UNIQUE constraint is violated – the row will be rejected.
  • If a CHECK constraint is in place and you insert a non-compliant value – it won’t be inserted.

✅ Best Practices for INSERT INTO

  • Always specify column names in your INSERT statements.
  • Use parameterized queries (especially in applications) to avoid SQL injection.
  • Insert in batches if you are adding a large amount of data for better performance.
  • Avoid hardcoding values repeatedly – use variables or automation in scripts.

🎯 Common Use Cases

Use CaseExample
Add a new employeeINSERT INTO employees ...
Duplicate data into another tableINSERT INTO backup_table SELECT ...
Log transactionsINSERT INTO logs (user_id, action, timestamp)
Add multiple rows in bulkINSERT INTO ... VALUES (...), (...), ...

📝 Summary

  • The SQL INSERT INTO statement adds new records to a table.
  • It supports inserting one row, multiple rows, or rows selected from another table.
  • You must match values to the column types and constraints.
  • It’s a foundational command for working with relational databases like MySQL, PostgreSQL, SQL Server, and Oracle.

📚 Related Tutorials You May Like