MySQL Views: How to Create View from Tables
โก เธชเธฃเธธเธเธญเธขเนเธฒเธเธเธฒเธเธเธฅเธฒเธ
MySQL Views are virtual tables that store no data of their own and instead present the result of a stored SELECT query. This resource explains how to create, query, join, and drop views, with runnable examples from the myflixdb database.

Views เธเธทเธญเธญเธฐเนเธฃ MySQL?
VIEWS เนเธเนเธเธเธฒเธฃเธฒเธเนเธชเธกเธทเธญเธเธเธตเนเนเธกเนเนเธเนเธเธเนเธญเธกเธนเธฅเนเธเน เธเธญเธเธเธเนเธญเธ เนเธเนเนเธชเธเธเธเนเธญเธกเธนเธฅเธเธตเนเนเธเนเธเนเธงเนเนเธเธเธฒเธฃเธฒเธเธญเธทเนเธ เธเธฅเนเธฒเธงเธญเธตเธเธเธฑเธขเธซเธเธถเนเธ VIEWS เนเธกเนเธกเธตเธญเธฐเนเธฃเธเธญเธเธเธฒเธเธเธฒเธฃเธชเธทเธเธเนเธ SQL เธกเธธเธกเธกเธญเธเธชเธฒเธกเธฒเธฃเธเธกเธตเธเธฑเนเธเธซเธกเธเธซเธฃเธทเธญเธชเธญเธเธชเธฒเธกเนเธเธงเธเธฒเธเธเธฒเธฃเธฒเธเนเธเน เธ MySQL view เธชเธฒเธกเธฒเธฃเธเนเธชเธเธเธเนเธญเธกเธนเธฅเธเธฒเธเธเธฒเธฃเธฒเธเนเธเธตเธขเธงเธซเธฃเธทเธญเธซเธฅเธฒเธขเธเธฒเธฃเธฒเธเนเธเน
MySQL เนเธงเธขเธฒเธเธฃเธเนเธกเธธเธกเธกเธญเธ
เธเธญเธเธเธตเนเนเธฃเธฒเธกเธฒเธเธนเนเธงเธขเธฒเธเธฃเธเนเธเธทเนเธเธเธฒเธเธเธตเนเนเธเนเนเธเธเธฒเธฃเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธ MySQL.
CREATE VIEW `view_name` AS SELECT statement;
WHERE
- โเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธ `view_name`โ เธเธญเธ MySQL เนเธเธดเธฃเนเธเนเธงเธญเธฃเนเนเธเธทเนเธญเธชเธฃเนเธฒเธเธงเธฑเธเธเธธเธกเธธเธกเธกเธญเธเนเธเธเธฒเธเธเนเธญเธกเธนเธฅเธเธทเนเธญ `view_name`
- โเธเธณเธชเธฑเนเธ AS SELECTโ เธเธทเธญเธเธณเธชเธฑเนเธ SQL เธเธตเนเธเธฐเธฃเธงเธกเนเธงเนเนเธเนเธเธฅเน MySQL เธเธณเธเธงเธเธเธฒเธฃเธเธน เธญเธฒเธเนเธเนเธเธเธณเธชเธฑเนเธ SELECT เธเธตเนเธชเธฒเธกเธฒเธฃเธเธเธฃเธฐเธเธญเธเธเนเธงเธขเธเนเธญเธกเธนเธฅเธเธฒเธเธเธฒเธฃเธฒเธเนเธเธตเธขเธงเธซเธฃเธทเธญเธซเธฅเธฒเธขเธเธฒเธฃเธฒเธเธเนเนเธเน
เธเธณเนเธกเธเนเธญเธเนเธเนเธกเธธเธกเธกเธญเธ?
Before building one, it helps to know what a view actually buys you.
เธเธธเธเธญเธฒเธเธเนเธญเธเธเธฒเธฃเนเธเนเธกเธธเธกเธกเธญเธเนเธเนเธเธซเธฅเธฑเธเธเนเธงเธขเนเธซเธเธธเธเธฅ 3 เธเธฃเธฐเธเธฒเธฃเธเนเธญเนเธเธเธตเน
- Ultimately, you will use your SQL knowledge, to create applications, which will use a database for data requirements. Itโs recommended that you use VIEWS of the original table structure in your application instead of using the tables themselves. This ensures that when you refactor your DB, your legacy code will see the original schema via the view without breaking the application.
- VIEWS เธเนเธงเธขเนเธเธดเนเธกเธเธงเธฒเธกเธชเธฒเธกเธฒเธฃเธเนเธเธเธฒเธฃเนเธเนเธเธฒเธเธเนเธณ เธเธธเธเธเธฐเนเธกเนเธเนเธญเธเธชเธฃเนเธฒเธเธเธดเธงเธฃเธตเธเธตเนเธเธฑเธเธเนเธญเธเธเธถเนเธเนเธเธตเนเธขเธงเธเนเธญเธเธเธฑเธเธเธฒเธฃเธฃเธงเธกเธเนเธญเธกเธนเธฅเธเนเธณเน เธเธงเธฒเธกเธเธฑเธเธเนเธญเธเธเธฑเนเธเธซเธกเธเธเธฐเธเธนเธเนเธเธฅเธเนเธเนเธเธเธดเธงเธฃเธตเธเธฃเธฃเธเธฑเธเนเธเธตเธขเธงเนเธเธขเนเธเน VIEWS เนเธเนเธเธเธตเนเธเธฃเธฐเธเธฑเธเธเธฑเธเธเธฅเนเธฒเธงเธเธฐเธเธชเธฒเธเธฃเธงเธกเนเธเนเธฒเธเธฑเธเนเธญเธเธเธฅเธดเนเธเธเธฑเธเธเธญเธเธเธธเธเนเธเนเธเนเธฒเธขเธเธถเนเธ เธเธถเนเธเธเธฐเธเนเธงเธขเธฅเธเนเธญเธเธฒเธชเนเธเธดเธเธเนเธญเธเธดเธเธเธฅเธฒเธเนเธเธเธฒเธฃเธเธดเธกเธเน เนเธฅเธฐเนเธเนเธเธเธญเธเธเธธเธเธเธฐเธญเนเธฒเธเธเนเธฒเธขเธเธถเนเธ
- เธกเธธเธกเธกเธญเธเธเนเธงเธขเธฃเธฑเธเธฉเธฒเธเธงเธฒเธกเธเธฅเธญเธเธ เธฑเธขเธเนเธญเธกเธนเธฅ เธเธธเธเธชเธฒเธกเธฒเธฃเธเนเธเนเธกเธธเธกเธกเธญเธเนเธเธทเนเธญเนเธชเธเธเนเธเธเธฒเธฐเธเนเธญเธกเธนเธฅเธเธตเนเนเธเนเธฃเธฑเธเธญเธเธธเธเธฒเธเนเธเนเธเธนเนเนเธเนเนเธฅเธฐเธเนเธญเธเธเนเธญเธกเธนเธฅเธเธตเนเธฅเธฐเนเธญเธตเธขเธเธญเนเธญเธ เนเธเนเธ เธซเธกเธฒเธขเนเธฅเธเธเธฑเธเธฃเนเธเธฃเธเธดเธ
เธงเธดเธเธตเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธเนเธ MySQL
With the syntax and the benefits established, the steps below build a working view end to end.
เธเนเธญเนเธเธเธตเนเนเธเนเธเธเธฃเธฐเธเธงเธเธเธฒเธฃเธเธตเธฅเธฐเธเธฑเนเธเธเธญเธเนเธเธเธฒเธฃเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธเนเธ MySQL:
เธเธฑเนเธเธเธญเธ 1) เธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธเนเธฃเธเธเธญเธเนเธฃเธฒเนเธเธขเนเธเน โmyflixdbโ
เธเธญเธเธเธตเนเนเธฃเธฒเธกเธฒเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธเนเธฃเธเธเธญเธเนเธฃเธฒเนเธเธขเนเธเน "myflixdb" เนเธฃเธฒเธเธฐเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธเธเนเธฒเธขเน เธเธตเนเธเธณเธเธฑเธเธเธญเธฅเธฑเธกเธเนเธเธตเนเนเธซเนเธเนเธเธเธฒเธฃเธฒเธเธชเธกเธฒเธเธดเธ
Suppose authorization requirements state that the accounts department can only see memberโs number, name and gender from the memberโs table. To achieve this you can create a VIEW โ
CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;
เธเธฑเนเธเธเธญเธ 2) เธเธฒเธฃเธเธขเธฒเธขเนเธซเธเธเธกเธธเธกเธกเธญเธ
เธเธณเนเธเธดเธเธเธฒเธฃเธชเธเธฃเธดเธเธเนเธเนเธฒเธเธเนเธเนเธ MySQL เธเธฒเธฃเนเธเนเธเธฒเธ workbench เธเธฑเธ myflixdb เนเธฅเธฐเธเธฒเธฃเธเธขเธฒเธขเนเธซเธเธเธกเธธเธกเธกเธญเธเนเธเธเธฒเธเธเนเธญเธกเธนเธฅ explorer เธเธฐเนเธซเนเธเธฅเธฅเธฑเธเธเนเธเธฑเธเธเนเธญเนเธเธเธตเน
เนเธเธฃเธเธเธฃเธฒเธเธงเนเธฒเธเธเธฐเธเธตเนเธญเนเธญเธเนเธเนเธเธเน Accounts_v_members เธชเธฒเธกเธฒเธฃเธเธกเธญเธเนเธซเนเธเนเธเนเนเธเธญเนเธญเธเนเธเนเธเธเนเธกเธธเธกเธกเธญเธเธเธฒเธเธเนเธญเธกเธนเธฅ
เธเธฑเนเธเธเธญเธ 3) เธเธณเนเธเธดเธเธเธฒเธฃเธเธณเธชเธฑเนเธ SELECT
เธเธญเธเธเธตเนเนเธฃเธฒเธกเธฒเธเธณเนเธเธดเธเธเธฒเธฃ a เธเธณเธชเธฑเนเธ SELECT เธเธตเนเนเธฅเธทเธญเธเธเธดเธฅเธเนเธเธฑเนเธเธซเธกเธเธเธฒเธเธกเธธเธกเธกเธญเธเธเธฑเธเนเธชเธเธเธเนเธฒเธเธฅเนเธฒเธ MySQL เธชเธฃเนเธฒเธเธเธฑเธงเธญเธขเนเธฒเธเธกเธธเธกเธกเธญเธ
SELECT * FROM `accounts_v_members`;
เธเธฑเนเธเธเธญเธ 4) เธเธณเนเธเธดเธเธเธฒเธฃเธชเธเธฃเธดเธเธเน
เธเธณเนเธเธดเธเธเธฒเธฃเธชเธเธฃเธดเธเธเนเธเนเธฒเธเธเนเธเนเธ MySQL workbench เธเธฑเธ myflixdb เนเธซเนเธเธฅเธฅเธฑเธเธเนเธเธฑเธเนเธชเธเธเธเนเธฒเธเธฅเนเธฒเธเธเธตเน
| membership_number | full_names | gender |
|---|---|---|
| 1 | Janet Jones | Female |
| 2 | Janet Smith Jones | Female |
| 3 | Robert Phil | Male |
| 4 | Gloria Williams | Female |
| 5 | Leonard Hofstadter | Male |
| 6 | Sheldon Cooper | Male |
| 7 | Rajesh Koothrappali | Male |
| 8 | Leslie Winkle | Male |
| 9 | Howard Wolowitz | Male |
Only the authorized columns for accounts department have been returned. Other details found in the members table have been hidden.
เธซเธฒเธเนเธฃเธฒเธเนเธญเธเธเธฒเธฃเธเธนเธเธณเธชเธฑเนเธ SQL เธเธตเนเธเธฃเธฐเธเธญเธเนเธเนเธเธกเธธเธกเธกเธญเธเนเธเธกเธธเธกเธกเธญเธเธซเธเธถเนเธ เนเธฃเธฒเธชเธฒเธกเธฒเธฃเธเนเธเนเธชเธเธฃเธดเธเธเนเธเธตเนเนเธชเธเธเธเนเธฒเธเธฅเนเธฒเธเนเธเธทเนเธญเธเธณเนเธเธดเธเธเธฒเธฃเธเธฑเธเธเธฅเนเธฒเธงเนเธเน
SHOW CREATE VIEW `accounts_v_members`;
เธเธฒเธฃเธเธณเนเธเธดเธเธเธฒเธฃเธชเธเธฃเธดเธเธเนเธเนเธฒเธเธเนเธเธเธฐเธเธณเนเธซเนเธเธธเธเธกเธตเธเธทเนเธญเธกเธธเธกเธกเธญเธเนเธฅเธฐเธเธณเธชเธฑเนเธ SQL SELECT เธเธตเนเนเธเนเนเธเธเธฒเธฃเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธ
เนเธเนเธฒเธฃเนเธงเธกเนเธฅเธฐเธเธนเนเธ MySQL
A single-table view is the simplest case. Views become far more valuable when they wrap a multi-table query.
เธกเธฒเธเธนเธเธฑเธงเธญเธขเนเธฒเธเธเธตเนเธเนเธญเธเธเนเธฒเธเธเธฑเธเธเนเธญเธเธเธถเนเธเนเธเธตเนเธขเธงเธเนเธญเธเธเธฑเธเธเธฒเธฃเธฒเธเนเธฅเธฐเธเธฒเธฃเนเธเนเธเธฒเธเธซเธฅเธฒเธขเธฃเธฒเธขเธเธฒเธฃเธเธฑเธ เธฃเนเธงเธก.
เนเธฃเธฒเธเธฐเธเธฑเธเนเธเนเธเนเธเธ JOIN เธเธตเนเธชเธฃเนเธฒเธเธเธถเนเธเนเธเธทเนเธญเธฃเธฑเธเธเนเธญเธกเธนเธฅเธเธฒเธเธชเธฒเธก (3) เธเธฒเธฃเธฒเธ เนเธเนเนเธเน เธชเธกเธฒเธเธดเธ เธ เธฒเธเธขเธเธเธฃเน เนเธฅเธฐเธเธฒเธฃเนเธเนเธฒเธ เธฒเธเธขเธเธเธฃเน เธเนเธฒเธเธฅเนเธฒเธเธเธตเนเธเธทเธญเธชเธเธฃเธดเธเธเนเธเธตเนเธเนเธงเธขเนเธซเนเนเธฃเธฒเธเธฃเธฃเธฅเธธเนเธเนเธฒเธซเธกเธฒเธขเธเธฑเนเธ
CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date` FROM `movierentals` AS mr INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number` INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;
เธเธฒเธฃเธเธณเนเธเธดเธเธเธฒเธฃเธชเธเธฃเธดเธเธเนเธเนเธฒเธเธเนเธเธเธฐเธชเธฃเนเธฒเธเธกเธธเธกเธกเธญเธเธเธทเนเธญ General_v_movie_rentals เนเธ myflixdb เธเธญเธเนเธฃเธฒ
เธเธญเธเธเธตเนเนเธฃเธฒเธกเธฒเนเธฅเธทเธญเธเธเธดเธฅเธเนเธเธฑเนเธเธซเธกเธเธเธฒเธเธเธฒเธฃเธฒเธเธเธทเนเธญ General_v_movie_rentals
SELECT * FROM `general_v_movie_rentals`;
เธเธณเนเธเธดเธเธเธฒเธฃเธชเธเธฃเธดเธเธเนเธเนเธฒเธเธเนเธเนเธ MySQL เธเธฃเธฑเธเนเธเนเธ เนเธกเธทเนเธญเนเธเธฃเธตเธขเธเนเธเธตเธขเธเธเธฑเธ myflixdb เนเธฃเธฒเธเธฐเธเธเธเธฅเธฅเธฑเธเธเนเธเธฑเธเนเธชเธเธเธเนเธฒเธเธฅเนเธฒเธเธเธตเน
| membership_number | full_names | title | transaction_date | return_date |
|---|---|---|---|---|
| 1 | Janet Jones | Pirates of the Caribean 4 | 20-06-2012 | 28-06-2012 |
| 1 | Janet Jones | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
| 3 | Robert Phil | Forgetting Sarah Marshal | 22-06-2012 | 25-06-2012 |
| 2 | Janet Smith Jones | Forgetting Sarah Marshal | 21-06-2012 | 24-06-2012 |
| 3 | Robert Phil | X-Men | 23-06-2012 | 28-06-2012 |
เนเธเธฃเธเธเธฃเธฒเธเธงเนเธฒเนเธฃเธฒเนเธกเนเธเธณเนเธเนเธเธเนเธญเธเนเธเธตเธขเธเธเธณเธชเธฑเนเธ JOIN เธเธตเนเธเธฑเธเธเนเธญเธเนเธเธทเนเธญเธฃเธฑเธเธเนเธญเธกเธนเธฅเนเธเธตเนเธขเธงเธเธฑเธเธชเธกเธฒเธเธดเธ เธ เธฒเธเธขเธเธเธฃเน เนเธฅเธฐเธฃเธฒเธขเธฅเธฐเนเธญเธตเธขเธเธเธฒเธฃเนเธเนเธฒเธ เธฒเธเธขเธเธเธฃเน เนเธฃเธฒเนเธเธตเธขเธเนเธเนเนเธเนเธกเธธเธกเธกเธญเธเนเธเธเธณเธชเธฑเนเธ SELECT เธเธฑเนเธงเนเธเนเธเนเธเนเธเธตเธขเธงเธเธฑเธเธเธฒเธฃเธฒเธเธเธฑเนเธงเนเธเธญเธทเนเธเน เธชเธฒเธกเธฒเธฃเธเนเธฃเธตเธขเธเนเธเนเธกเธธเธกเธกเธญเธเนเธเนเธเธฒเธเธเธธเธเธเธตเนเนเธเธฃเธฐเธเธเนเธญเธเธเธฅเธดเนเธเธเธฑเธเธเธตเนเธเธณเธเธฒเธเธเธ myflixdb
เธซเธฅเนเธping เนเธเนเธฒเธเธกเนเธ MySQL
เธเธณเธชเธฑเนเธ DROP เธชเธฒเธกเธฒเธฃเธเนเธเนเนเธเธทเนเธญเธฅเธเธกเธธเธกเธกเธญเธเธญเธญเธเธเธฒเธ เธเธฒเธเธเนเธญเธกเธนเธฅ เธเธตเนเนเธกเนเธเธณเนเธเนเธเธญเธตเธเธเนเธญเนเธ เนเธงเธขเธฒเธเธฃเธเนเธเธทเนเธเธเธฒเธเนเธเธเธฒเธฃเธฅเธฐเธเธดเนเธเธกเธธเธกเธกเธญเธเธกเธตเธเธฑเธเธเธตเน
DROP VIEW `general_v_movie_rentals`;
เธซเธฅเนเธping a view removes only the stored query; the underlying tables and their data are untouched.

