Why there is need to create a View in database?

When and Why does some one decide that they need to create a View in their database? Why not just run a normal stored procedure or select?

A view provides several benefits.

1. Views can hide complexity

If you have a query that requires joining several tables, or has complex logic or calculations, you can code all that logic into a view, then select from the view just like you would a table.

2. Views can be used as a security mechanism

A view can select certain columns and/or rows from a table, and permissions set on the view instead of the underlying tables. This allows surfacing only the data that a user needs to see.

3. Views can simplify supporting legacy code

If you need to refactor a table that would break a lot of code, you can replace the table with a view of the same name. The view provides the exact same schema as the original table, while the actual schema has changed. This keeps the legacy code that references the table from breaking, allowing you to change the legacy code at your leisure.

View may be also be used to implement some sort of constraints. This is allowed by using a “with check option” clause. You may visit and there is a post on data integrity - view. Elaborately explained this side of view.