SQL Views

در SQL از Views برای ایجاد یک جدول مجازی استفاده می‌کنیم.
ویو داده‌ها را از یک یا چند جدول جمع‌آوری می‌کنه و مانند یک جدول عادی می‌توانیم روی آن SELECT، JOIN یا فیلتر انجام بدیم، ولی خودش داده‌ها را ذخیره نمی‌کنه.

🔹 ساختار کلی

CREATE VIEW view_name AS SELECT column1, column2, ... FROM table_name WHERE condition;
  • view_name → نام ویو

  • ... SELECT → کوئری‌ای که ویو بر اساس آن ساخته می‌شود

🔹 مثال ساده

CREATE TABLE Students ( StudentID INT PRIMARY KEY, FullName VARCHAR(100), Age INT, City VARCHAR(50) ); CREATE VIEW AdultStudents AS SELECT StudentID, FullName, Age FROM Students WHERE Age >= 18;

📌 توضیح:
ویو AdultStudents فقط دانشجویان بالای ۱۸ سال را نمایش می‌دهد.

🔹 استفاده از View

SELECT * FROM AdultStudents;

📌 نتیجه مشابه یک جدول خواهد بود، اما داده‌ها واقعی در جدول اصلی (Students) ذخیره شده‌اند.

🔹 View با چند جدول (JOIN)

CREATE VIEW EmployeeDetails AS SELECT e.EmployeeID, e.FullName, d.DepartmentName FROM Employees e JOIN Departments d ON e.DepartmentID = d.DepartmentID;

📌 ویو EmployeeDetails اطلاعات کارکنان همراه با نام دپارتمان را نمایش می‌دهد.

🔹 به‌روزرسانی داده‌ها از طریق View

  • بعضی ویوها قابل ویرایش (Updatable) هستن، یعنی می‌توان INSERT, UPDATE, DELETE انجام داد.

  • اگر ویو شامل JOIN، GROUP BY یا توابع تجمعی باشد، معمولاً غیرقابل ویرایش است.

🔹 حذف View

DROP VIEW view_name;

📌 ویو حذف می‌شود ولی جدول‌های اصلی دست نخورده باقی می‌مانند.

🔹 نکات مهم

  • ویوها به ساده‌تر کردن کوئری‌های پیچیده کمک می‌کنند.

  • می‌توانند امنیت داده‌ها را افزایش دهند، چون دسترسی به ستون‌ها یا رکوردهای خاص محدود می‌شود.

  • ویوها حافظه زیادی مصرف نمی‌کنند، چون داده‌ها را ذخیره نمی‌کنند، بلکه روی جدول‌های اصلی نمایش داده می‌شوند.