Understanding the Fundamental Differences Between Database Views and Tables

Harsh MangeHarsh Mange
3 min read

Table of contents

A table and a database view are both database objects used to store and organize data in a database management system (DBMS), but they have some fundamental differences in terms of their purpose, structure, and functionality.

A table is a basic database object that stores data in a tabular format with rows and columns. Tables are used to store and manage data, and can be queried and manipulated using SQL commands. For example, consider the following table that stores information about customers:

CREATE TABLE Customers (
  ID INT PRIMARY KEY,
  First_Name VARCHAR(50),
  Last_Name VARCHAR(50),
  Email VARCHAR(100)
);

INSERT INTO Customers (ID, First_Name, Last_Name, Email)
VALUES
  (1, 'John', 'Smith', 'john@example.com'),
  (2, 'Jane', 'Doe', 'jane@example.com'),
  (3, 'Bob', 'Johnson', 'bob@example.com');

The above SQL commands create a Customers table with four columns - ID, First_Name, Last_Name, and Email. The table is populated with three rows of data using the INSERT command. The data can be queried using SQL SELECT command like this:

SELECT * FROM Customers;

The output of this query would be:

+----+------------+-----------+-----------------+
| ID | First_Name | Last_Name | Email           |
+----+------------+-----------+-----------------+
| 1  | John       | Smith     | john@example.com|
| 2  | Jane       | Doe       | jane@example.com|
| 3  | Bob        | Johnson   | bob@example.com |
+----+------------+-----------+-----------------+

On the other hand, a database view is a virtual table that does not store data itself but retrieves data from one or more underlying tables. A view can be thought of as a saved query that provides a customized view of the data in the underlying tables. For example, consider the following view that displays only the first and last names of customers:

CREATE VIEW CustomerNames AS
SELECT First_Name, Last_Name FROM Customers;

The above SQL command creates a view called CustomerNames that retrieves data from the Customers table and presents only the First_Name and Last_Name columns. The data in the view can be queried using SQL SELECT command like this:

SELECT * FROM CustomerNames;

The output of this query would be:

+------------+-----------+
| First_Name | Last_Name |
+------------+-----------+
| John       | Smith     |
| Jane       | Doe       |
| Bob        | Johnson   |
+------------+-----------+

Note that the data in the view is not physically stored in the database but is instead retrieved from the underlying Customers table each time the view is queried. Views can also be used to simplify complex queries, restrict access to certain data, or provide a different perspective on the data.

In summary, the key differences between a database table and a view are:

  1. A table stores data physically, while a view does not store data but retrieves it from one or more underlying tables.

  2. A view is a saved query that provides a customized view of the data, while a table represents a collection of related data organized in rows and columns.

  3. A view can be used to simplify complex queries, restrict access to certain data, or provide a different perspective on the data, while a table is primarily used to store and manage data.

Related

{ Choosing Between Table and View: Factors to Consider }

0
Subscribe to my newsletter

Read articles from Harsh Mange directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Harsh Mange
Harsh Mange

This is Harsh Mange, working as a Software Engineer - Backend at Argoid. I love building apps. Working on contributing to open-source projects and the dev community.