What if you could share data safely without copying or risking leaks?
Why Views for security and abstraction in SQL? - Purpose & Use Cases
Start learning this pattern below
Jump into concepts and practice - no test required
Imagine you have a big spreadsheet with all your company's sensitive data mixed with general information. You want to share some parts with your team but keep the sensitive details hidden. So, you try copying and pasting only the safe parts into a new sheet manually.
This manual copying is slow and risky. You might accidentally share sensitive data, or forget to update the copied sheet when the original data changes. It's hard to keep everything accurate and secure by hand.
Views let you create a virtual table that shows only the data you want others to see. It automatically updates when the original data changes, and hides sensitive details. This way, you control access easily and keep data safe without extra work.
SELECT * FROM employees; -- then manually hide columns or copy dataCREATE VIEW safe_employee_view AS SELECT name, department FROM employees;
Views enable secure, simple sharing of data by showing only what's needed, while keeping the rest hidden and safe.
A company shares a view of employee names and departments with the HR team, but hides salaries and personal info to protect privacy.
Manual data sharing risks exposing sensitive info and is hard to maintain.
Views create virtual tables that show only selected data automatically.
This improves security and simplifies data access for different users.
Practice
VIEW in SQL?Solution
Step 1: Understand what a VIEW is
A VIEW is a virtual table created by a SELECT query that shows data without storing it separately.Step 2: Identify the purpose of a VIEW
It helps users see only the data they need, hiding sensitive details and simplifying complex queries.Final Answer:
To provide a simplified and secure way to access specific data -> Option BQuick Check:
VIEW = Simplify + Secure access [OK]
- Thinking views store data permanently
- Confusing views with backups
- Believing views improve hardware speed
EmployeeView showing only EmployeeID and Name from Employees table?Solution
Step 1: Recall the correct SQL syntax for creating a view
The syntax is: CREATE VIEW view_name AS SELECT columns FROM table;Step 2: Match the syntax with options
CREATE VIEW EmployeeView AS SELECT EmployeeID, Name FROM Employees; matches the correct syntax exactly.Final Answer:
CREATE VIEW EmployeeView AS SELECT EmployeeID, Name FROM Employees; -> Option AQuick Check:
CREATE VIEW ... AS SELECT ... [OK]
- Using MAKE VIEW instead of CREATE VIEW
- Confusing CREATE VIEW with CREATE TABLE
- Incorrect keyword order
Employees with columns EmployeeID, Name, Salary, and a view EmployeeView defined as:CREATE VIEW EmployeeView AS SELECT EmployeeID, Name FROM Employees;
What will the query
SELECT * FROM EmployeeView; return?Solution
Step 1: Understand the view definition
The view selects only EmployeeID and Name columns from Employees.Step 2: Determine what SELECT * from the view returns
It returns only the columns defined in the view, which are EmployeeID and Name.Final Answer:
Only EmployeeID and Name columns -> Option CQuick Check:
View columns = Selected columns only [OK]
- Expecting all original table columns
- Thinking missing columns cause syntax errors
- Confusing view columns with table columns
CREATE VIEW SalesView SELECT OrderID, Amount FROM Sales;
What is the error and how to fix it?
Solution
Step 1: Identify the syntax error in CREATE VIEW
The correct syntax requires AS keyword after the view name.Step 2: Correct the statement
Add AS after SalesView: CREATE VIEW SalesView AS SELECT OrderID, Amount FROM Sales;Final Answer:
Missing AS keyword; fix by adding AS after view name -> Option DQuick Check:
CREATE VIEW ... AS SELECT ... [OK]
- Omitting AS keyword
- Misplacing FROM keyword
- Thinking SELECT is disallowed in views
PublicEmployeeData that hides the Salary column from the Employees table but allows users to see EmployeeID, Name, and Department. Which SQL statement correctly creates this view and ensures security by restricting access to sensitive data?Solution
Step 1: Identify columns to include and exclude
We want EmployeeID, Name, Department but NOT Salary to protect sensitive data.Step 2: Choose the correct SELECT statement for the view
CREATE VIEW PublicEmployeeData AS SELECT EmployeeID, Name, Department FROM Employees; selects only the allowed columns, hiding Salary effectively.Final Answer:
CREATE VIEW PublicEmployeeData AS SELECT EmployeeID, Name, Department FROM Employees; -> Option AQuick Check:
View excludes Salary to secure sensitive data [OK]
- Including Salary column accidentally
- Using WHERE Salary IS NULL which filters rows, not columns
- Selecting too few columns missing Department
