112 lines
3.2 KiB
Markdown
112 lines
3.2 KiB
Markdown
---
|
|
title: SQL Replace VIEW Statement
|
|
---
|
|
|
|
## SQL Replace VIEW Statement
|
|
|
|
## Introduction
|
|
|
|
A View is a database object that presents data from in one or more tables. The same SQL statement used to create a view can also be used to replace an existing view.
|
|
|
|
This guide will update (replace) the existing view "programming-students-v" with one that is slightly different and has a different name.
|
|
|
|
Safety tip: always backup the schema before making changes to it.
|
|
|
|
### General sytax
|
|
|
|
```sql
|
|
CREATE OR REPLACE VIEW view_name AS
|
|
SELECT column1, column2, ...
|
|
FROM table_name
|
|
WHERE condition;
|
|
```
|
|
|
|
### SQL Used to create the view and the current data
|
|
|
|
```sql
|
|
create view `programming-students-v` as
|
|
select FullName, programOfStudy
|
|
from student
|
|
where programOfStudy = 'Programming';
|
|
```
|
|
|
|
```sql
|
|
select * from `programming-students-v`;
|
|
```
|
|
|
|
Current Data:
|
|
|
|
```text
|
|
+-----------------+----------------+
|
|
| FullName | programOfStudy |
|
|
+-----------------+----------------+
|
|
| Teri Gutierrez | Programming |
|
|
| Spencer Pautier | Programming |
|
|
| Louis Ramsey | Programming |
|
|
| Alvin Greene | Programming |
|
|
| Sophie Freeman | Programming |
|
|
+-----------------+----------------+
|
|
5 rows in set (0.00 sec)
|
|
```
|
|
|
|
A list of the existing views:
|
|
|
|
```sql
|
|
SHOW FULL TABLES IN fcc_sql_guides_database WHERE TABLE_TYPE LIKE 'VIEW';
|
|
```
|
|
|
|
```text
|
|
+-----------------------------------+------------+
|
|
| Tables_in_fcc_sql_guides_database | Table_type |
|
|
+-----------------------------------+------------+
|
|
| programming-students-v | VIEW |
|
|
| students-contact-info_v | VIEW |
|
|
| students_dropme_v | VIEW |
|
|
+-----------------------------------+------------+
|
|
3 rows in set (0.00 sec)
|
|
```
|
|
|
|
### Replacing the view
|
|
|
|
```sql
|
|
create or replace view `programming-students-v` as
|
|
select FullName, programOfStudy, sat_score
|
|
from student
|
|
where programOfStudy = 'Programming';
|
|
```
|
|
|
|
```sql
|
|
select * from `programming-students-v`;
|
|
```
|
|
|
|
Note: the view now shows the sat_score.
|
|
|
|
```text
|
|
+-----------------+----------------+-----------+
|
|
| FullName | programOfStudy | sat_score |
|
|
+-----------------+----------------+-----------+
|
|
| Teri Gutierrez | Programming | 800 |
|
|
| Spencer Pautier | Programming | 1000 |
|
|
| Louis Ramsey | Programming | 1200 |
|
|
| Alvin Greene | Programming | 1200 |
|
|
| Sophie Freeman | Programming | 1200 |
|
|
+-----------------+----------------+-----------+
|
|
```
|
|
|
|
Note: the list of views hasn't change, our view is replaced.
|
|
|
|
```text
|
|
mysql> SHOW FULL TABLES IN fcc_sql_guides_database WHERE TABLE_TYPE LIKE 'VIEW';
|
|
+-----------------------------------+------------+
|
|
| Tables_in_fcc_sql_guides_database | Table_type |
|
|
+-----------------------------------+------------+
|
|
| programming-students-v | VIEW |
|
|
| students-contact-info_v | VIEW |
|
|
| students_dropme_v | VIEW |
|
|
+-----------------------------------+------------+
|
|
3 rows in set (0.00 sec)
|
|
```
|
|
|
|
*As with all of these SQL things there is MUCH MORE to them than what's in this introductory guide. I hope this at least gives you enough to get started. Please see the manual for your database manager and have fun trying different options yourself.
|
|
|