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