WalzoneInterview Prep
📞 Interviewing soon? Practice with a realistic AI mock phone interview — it calls you, then scores you. First 15 min FREE →

MySQL · Basic · question 20 of 100

What is a view in MySQL, and what are its main use cases?

📕 Buy this interview preparation book: 100 MySQL questions & answers — PDF + EPUB for $5

In MySQL, a view is a virtual table that is created based on the result of a SELECT statement, and it does not store any data itself. The query used to create the view is saved as an object in the database and can be used interchangeably with a physical table. The view can be used as if it were a regular table, but it can also be used to abstract or simplify more complex queries.

A view can have columns, just like a regular table, and it can also calculate values based on existing tables or views. Views can be used to restrict access to data for certain users by exposing only relevant data to them. They can also be used to provide an easy-to-use interface for a complex query, making it simple to use the same query repeatedly without having to rewrite it each time.

There are several common use cases for views in MySQL:

1. Data Restriction: Views can be used to restrict access to certain data for different users, allowing them to only see the data that is relevant to their needs.

For example, suppose we have a table named ‘employees‘ that contains information about all employees, including sensitive information like social security numbers. We can create a view that only shows the employee name and hire date to non-admin users, while the admin user could see all the data.

    CREATE VIEW non_admin_employees AS
    SELECT name, hire_date
    FROM employees;

2. Query Abstraction: Views can be used to simplify complex queries by breaking them down into smaller, more manageable parts. This can make it easier to work with larger datasets.

Suppose we have a database that contains several tables with different types of data. We can create a view that combines the data from these tables into a single, easy-to-use view.

    CREATE VIEW product_info AS
    SELECT products.product_name, suppliers.supplier_name, categories.category_name
    FROM products
    INNER JOIN suppliers ON products.supplier_id = suppliers.supplier_id
    INNER JOIN categories ON products.category_id = categories.category_id;

3. Report Generation: Views can be used to generate reports that contain data from one or multiple tables. This can be useful to provide insights into data stored across multiple tables.

For example, suppose that we have three tables ‘employees‘, ‘departments‘, and ‘salaries‘. We can create a view that displays the total salary for each department, making it easier to generate reports on salary expenses.

    CREATE VIEW salary_by_dept AS
    SELECT departments.department_name, SUM(salaries.salary) as total_salary
    FROM employees, departments, salaries
    WHERE employees.department_id = departments.department_id AND
    employees.employee_id = salaries.employee_id
    GROUP BY departments.department_name;

In conclusion, views in MySQL can be used to simplify queries, restrict access to sensitive data, and generate reports. They are a useful tool for any database administrator to have in their toolbox.

Reading is step one. Saying it out loud is the interview. Our AI interviewer calls your phone and runs a realistic MySQL interview — then scores it.
📞 Practice MySQL — free 15 min
📕 Buy this interview preparation book: 100 MySQL questions & answers — PDF + EPUB for $5

All 100 MySQL questions · All topics