Hi...
Consider that your database has many number of tables and there may be a situation that you need data from many tables at a time by using JOINS.
select *
from a inner join b on a.col1 = b.col1
inner join c on b.col2 = c.col2
inner join d on c.col3 = d.col3
inner join e on d.col4 = e.col4
inner join f on e.col5 = f.col5
inner join g on f.col6 = g.col6
where a.col1 = 10
Now it may happen that you need this data at many places, say in 10 SPs. Then instead of using JOINS in each SP, you can create a view which contains data from multiple tables.
create view View1 AS
select *
from a inner join b on a.col1 = b.col1
inner join c on b.col2 = c.col2
inner join d on c.col3 = d.col3
inner join e on d.col4 = e.col4
inner join f on e.col5 = f.col5
inner join g on f.col6 = g.col6
Then depending on situation, you can get data from View:
select * from View1 where col1 = 10
Now consider that in all the SPs u need to add one more table in the join. In that case instead of modifying all the SPs, you just need to modify one view.
This was just a simple example of view, but there are many more advantages of using it.