استفاده از جداول میانی و جداول موقت
با نام و یاد خداوند. سلام خدمت کاربران گرامی
در جلسات قبل با دستور join و خانواده ی آن آشنا شدیم. با استفاده از دستور join می توانستیم ارتباط بین جداول را برقرار کنیم .بعضی مواقع مجبور هستیم کوئری بنویسیم که خیلی سخت و پیچیده است، برای اینکه نوشتن این کوئری راحت تر شود و خوانایی کار هم بالاتر رود در چند مرحله این کوئری را می نویسیم یعنی یک سری جداول را تولید می کنیم به نام جداول میانی ، سپس از این جداول استفاده می کنیم و کوئری بعدی را اجرا می کنیم همین روش را ادامه می دهیم تا به نتیجه دلخواه برسیم.
دو تا جدول به نام های Student و Course داشتیم . ابتدا با استفاده از دستور select اطلاعات جداول خود را مشاهده می کنیم:
select *
from Student
خروجی جدول student:
select *
from Course
خروجی جدول Course:
جداول میانی
چگونه جداول میانی را تولید کنید ؟ با یک مثال شروع می کنیم. یک جدول میانی را می خواهیم داشته باشیم که دانش آموزان بالای 25 سال را نمایش دهد ؟
ابتدا یک کوئری طبق دستورات زیر می نویسیم:
select *
from student
where Age>25
خروجی را مشاهده می کنیم:
هم اکنون ما می خواهیم خروجی این کوئری را به عنوان یک جدول داشته باشیم برای چنین کاری از کلمه ی کلیدی into استفاده می کنیم:
select * into نام جدول میانی
from student
where Age>25
مثال:
select * into ST2
from student
where Age>25
خروجی را مشاهده می کنیم:
5 ردیف به این جدول اضافه شده است . اگر در قسمت جداول نگاه کنیم مشاهده می کنیم که علاوه بر جدول student و Course جدولی بنام ST2 نیز وجود دارد . برای مشاهده این جدول در بین جداولمان ابتدا روی Tables راست کلیک کرده و گزینه ی Refresh را انتخاب می کنیم تا در صورت عدم نمایش تغییرات ، تغییرات مشاهده شوند .
طبق تصویر زیر جدول st2 را نیز در بین جداول خود مشاهده می کنیم .
در جدول st2 جواب کوئری که نوشتیم در آن ذخیره شده است.
نکته : اما معمولا از این جداول استفاده نمی شود معمولا از جداول موقت برای این منظور استفاده می شود .
جداول موقت در sql server
جداول موقت در sql server جداولی هستند که تا هنگامی که sql server اجرا است این جداول نیز وجود دارند ولی وقتی که از sql server خارج می شویم آن جداول نیز دیگر وجود ندارند و حذف شده اند. برای اینکه جدولی را به صورت موقت بسازیم از کلمه ی کلیدی # استفاده می کنیم .
select * into #نام جدول موقت
from student
where Age>25
مثال:
select * into #ST2
from student
where Age>25
خروجی را مشاهده می کنیم:
5 ردیف به این جدول اضافه شده است . باز مثل قبل روی Tables راست کلیک کرده و گزینه ی Refresh را انتخاب می کنیم تا در صورت عدم نمایش تغییرات ، تغییرات مشاهده شوند.
اما طبق تصویر زیر مشاهده می کنیم که جدولی بنام #st2 را در بین جداول خود نداریم.
اما جداول موقت در کجا ذخیره می شوند؟
جداول موقت داخل پوشه ی دیتابیس های سیستمی(system Databases) و داخل دیتابیس tempdb و زیر شاخه ی Temporary Tables قرار می گیرند .
Databases\ System Databases\ tempdb\ Temporary Tables
مطابق شکل زیر :
ابتدا گزینه ی Refresh را انتخاب می کنیم تا در صورت عدم نمایش تغییرات ، تغییرات نمایش داده شوند .
ما حتی می توانیم روی این جداول مانند جداول دیگر کوئری اجرا کنیم .
select * into #ST2
from student
where Age>25
———————————
select *
from #ST2
خروجی را مشاهده می کنیم:
در این جلسه با جداول میانی و جداول موقت آشنا شدیم و در جلسه بعد قصد داریم تا شما را با دستور insert آشنا کنیم .
با آموزش مبانی SQL Server در خدمت شما هستیم. لطفا سوالات ، نظرات و پیشنهادات خود را در قسمت دیدگاه ها با ما در میان بگذارید.
به این مقاله چند تا ستاره میدی؟[تعداد رای: 5 امتیاز: 4.6]
دیدگاه خود را بنویسید