Skip to content

SQL Views

New Course Coming Soon:

Get Really Good at Git

How to create views and interact with them in a SQL database

An interesting thing you can do with SQL is to create a view.

A view is like a table, except instead of being a real table, on its own, it is dynamically built by the result of a SELECT query.

Let’s use the example we used in the joins lesson:

CREATE TABLE people (
  age INT NOT NULL,
  name CHAR(20) NOT NULL PRIMARY KEY
);

CREATE TABLE cars (
  brand CHAR(20) NOT NULL,
  model CHAR(20) NOT NULL,
  owner CHAR(20) NOT NULL PRIMARY KEY
);

We add some data:

INSERT INTO people VALUES (37, 'Flavio');
INSERT INTO people VALUES (8, 'Roger');
INSERT INTO cars VALUES ('Ford', 'Fiesta', 'Flavio');
INSERT INTO cars VALUES ('Ford', 'Mustang', 'Roger');

We can create a view that we call car_age that always contains the correlation between a car model and its owner’s age:

CREATE VIEW car_age AS SELECT model, age AS owner_age FROM people JOIN cars ON people.name = cars.owner;

Here is the result we can inspect with SELECT * FROM car_age:

        model         | owner_age 
----------------------+-----------
 Fiesta               |        37
 Mustang              |         8

The view is persistent, and will look like a table in your database. You can delete a view using DROP VIEW:

DROP VIEW car_age
Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching Summer 2024. Join the waiting list!
→ Read my SQL Tutorial on The Valley of Code

Here is how can I help you: