DEV Community

Harsh Mange
Harsh Mange

Posted on • Originally published at harshmange.hashnode.dev on

Understanding the Fundamental Differences Between Database Views and Tables

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');

Enter fullscreen mode Exit fullscreen mode

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;

Enter fullscreen mode Exit fullscreen mode

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 |
+----+------------+-----------+-----------------+

Enter fullscreen mode Exit fullscreen mode

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;

Enter fullscreen mode Exit fullscreen mode

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;

Enter fullscreen mode Exit fullscreen mode

The output of this query would be:

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

Enter fullscreen mode Exit fullscreen mode

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.

Top comments (0)