استفاده از جداول میانی و جداول موقت  

با نام و یاد خداوند. سلام خدمت کاربران گرامی
در جلسات  قبل با دستور  join و خانواده ی آن آشنا شدیم. با استفاده از دستور join می توانستیم ارتباط بین جداول را برقرار کنیم .بعضی مواقع مجبور هستیم کوئری بنویسیم که خیلی سخت و پیچیده است، برای اینکه نوشتن این کوئری راحت تر شود و خوانایی  کار هم بالاتر رود در چند مرحله این کوئری را می نویسیم یعنی یک سری جداول را تولید می کنیم به نام جداول میانی ، سپس از این جداول استفاده می کنیم و کوئری بعدی را اجرا می کنیم همین روش  را ادامه می دهیم تا به نتیجه دلخواه برسیم.

دو تا جدول به نام های Student و Course داشتیم . ابتدا با استفاده از دستور select  اطلاعات جداول خود را مشاهده می کنیم:

select *
from Student

خروجی جدول student:

دستور join در SQL -تصویر 1

select *
from Course

خروجی جدول Course:

دستور join در SQL -تصویر 2

جداول میانی

چگونه جداول میانی را تولید کنید ؟ با یک مثال شروع می کنیم. یک جدول میانی را می خواهیم داشته باشیم که دانش آموزان  بالای 25 سال را نمایش دهد ؟

ابتدا یک کوئری طبق دستورات زیر می نویسیم:

select *
from student
where Age>25

خروجی را مشاهده می کنیم:

هم اکنون ما می خواهیم خروجی این کوئری را به عنوان یک جدول داشته باشیم برای چنین کاری از کلمه ی کلیدی into  استفاده می کنیم:

select * into نام جدول میانی
from student
where Age>25

مثال:

select * into ST2
from student
where Age>25

خروجی را مشاهده می کنیم:

 جداول موقت در sql server |نتایج

5 ردیف به این جدول اضافه شده است . اگر در قسمت جداول نگاه کنیم مشاهده می کنیم که علاوه بر جدول student  و Course  جدولی بنام ST2 نیز وجود دارد . برای مشاهده این جدول در بین جداولمان ابتدا روی Tables  راست کلیک کرده و گزینه ی Refresh  را انتخاب می کنیم تا در صورت عدم نمایش تغییرات ، تغییرات مشاهده  شوند .

 جداول موقت در sql server | به روز رسانی

طبق تصویر زیر جدول  st2 را نیز در بین جداول خود مشاهده می کنیم .

 جداول موقت در sql server | جداول

در جدول st2  جواب کوئری که نوشتیم در آن ذخیره شده است.

نکته : اما  معمولا از این جداول استفاده نمی شود معمولا از جداول موقت برای این منظور استفاده می شود .

جداول موقت در sql server

جداول موقت در sql server جداولی هستند که تا هنگامی که sql server  اجرا است این جداول نیز وجود دارند ولی وقتی که از  sql server  خارج می شویم آن جداول نیز دیگر وجود ندارند و حذف شده اند. برای اینکه جدولی را به صورت موقت بسازیم  از کلمه ی کلیدی # استفاده می کنیم .

select * into #نام جدول موقت
from student
where Age>25

مثال:

select * into #ST2
from student
where Age>25

خروجی را مشاهده می کنیم:

 جداول موقت در sql server | نمایش نتیجه مثال

5 ردیف به این جدول اضافه شده است . باز مثل قبل  روی Tables  راست کلیک کرده و گزینه ی Refresh  را انتخاب می کنیم تا در صورت عدم نمایش تغییرات ، تغییرات مشاهده  شوند.

اما طبق تصویر زیر مشاهده می کنیم که جدولی بنام  #st2 را در بین جداول خود نداریم.

 جداول موقت در sql server |جداول

اما جداول موقت در کجا ذخیره می شوند؟

جداول موقت داخل پوشه ی دیتابیس های سیستمی(system Databases) و داخل دیتابیس tempdb و زیر شاخه ی Temporary Tables  قرار می گیرند .

Databases\ System Databases\ tempdb\ Temporary Tables

مطابق شکل زیر :

 جداول موقت در sql server | مسیر temproray tables

ابتدا گزینه ی Refresh  را انتخاب می کنیم تا در صورت عدم نمایش تغییرات ، تغییرات نمایش داده شوند .

 جداول موقت در sql server | نمایش جدول

ما حتی می توانیم روی این جداول مانند جداول دیگر کوئری اجرا کنیم .

select * into #ST2
from student
where Age>25

———————————

select *
from  #ST2

خروجی را مشاهده می کنیم:

 جداول موقت در sql server

در این جلسه با جداول میانی و جداول موقت آشنا شدیم و در جلسه بعد قصد داریم تا شما را با دستور insert آشنا کنیم .

با  آموزش مبانی SQL Server در خدمت شما هستیم. لطفا سوالات ، نظرات و پیشنهادات خود را در قسمت دیدگاه ها با ما در میان بگذارید.

به این مقاله چند تا ستاره میدی؟
[تعداد رای: 5 امتیاز: 4.6]