Navigation

شرح SQL بالعربي استخدام الجداول المؤقتة في DB2 و mySQL

تكمن المشكلة في DB2 في اننا لا نستطيع انشاء جدول مؤقت دون اعلام قاعدة البيانات بمكان تواجد هذا الجدول, اذ لا بد من انشاء ما يسمى بمساحة الجدول, حيث ان الجداول المؤقتة تستخدم مساحة من النوع user Temporary هذه المساحة تُمكن جميع مستخدمي قاعدة البيانات من الوصول الى هذا الجدول بعكس مساحة الجدول من النوع system التي لا تسمح الا لنظام ادارة قاعدة البيانات فقط بالوصول اليها, كما ان هذه المساحة تُحذف تلقائيا في حالة إلغاء الاتصال.

استخدام الجداول المؤقتة في DB2 و mySQL – شرح SQL بالعربي


اولاُ الجداول المؤقتة في DB2 :


تستخدم قواعد البيانات DB2 الجملة DECLARE GLOBAL TEMPORARY TABLE لانشاء جدول مؤقت, ويكون لدينا حالتين :
  • الحالة الاولى انشاء جدول مؤقت وتحديد الحقول التي يتألف منها كما فعلنا في حالة SQL Server 
  • الحالة الثانية انشاء جدول مؤقت عبر تعبير Select كما فعلنا في قواعد بيانات Oracle . 
تكمن المشكلة في DB2 في اننا لا نستطيع انشاء جدول مؤقت دون اعلام قاعدة البيانات بمكان تواجد هذا الجدول, اذ لا بد من انشاء ما يسمى بمساحة الجدول, حيث ان الجداول المؤقتة تستخدم مساحة من النوع user Temporary هذه المساحة تُمكن جميع مستخدمي قاعدة البيانات من الوصول الى هذا الجدول بعكس مساحة الجدول من النوع system التي لا تسمح الا لنظام ادارة قاعدة البيانات فقط بالوصول اليها, كما ان هذه المساحة تُحذف تلقائيا في حالة إلغاء الاتصال.

اذن مراحل انشاء جدول مؤقت في قاعدة البيانات DB2 هي كما يلي :

1- انشاء مساحة الجدول بالصيغة التالية :


CREATE USER TEMPORARY SPACE table_space MANAGED BY SYSTEM USING (‘path’);


2- انشاء الجدول المؤقت بالصيغة التالية :

DECLARE GLOBAL TEMPPORARY TABLE temp_table

(Field1 Field1Type , Field2 Field2Type) IN table_space;

3- بعد ذلك ملء الجدول باستخدام تعليمة Insert Into .

مثال:
قم بإنشاء جدول مؤقت يحتوي على اسماء وارقام مستخدمي الهاتف الذين اجروا اتصالات برقم معين ؟
الحل 
ستكون الصيغة كما يلي :

CREATE USER TEMPORARY SPACE tempSpace MANAGED BY SYSTEM USING (‘c:\temp_space’);

بعد ذلك نقوم بإنشاء الجدول المؤقت بالصيغة التالية:

DECLARE GLOBAL TEMPPORARY TABLE tempCallers
(Name varchar(50) , Number varchar (15)) IN tempSpace;

بعد ذلك نقوم بملء الجدول بالصيغة التالية :

Insert Into tempCallers
Select Distinct callerName AS Name , callerNumber AS Number from
Callers where Destination = ‘62918763’;

ثانياُ الجداول المؤقتة في MySQL :

تستخدم MySQL الجملة CREATE TEMPORARY TABLE لانشاء الجداول المؤقتة وهي شبيهه بالجملة create table المستخدمة لانشاء الجداول العادية , تشكل الجداول المؤقتة في MySQL احد اليات الالتفاف على عدم دعم MySQL للاستعلامات الفرعية :

والصيغة هي كما يلي :


CREATE TEMPPORARY TABLE temp_table
(Field1 Field1Type , Field2 Field2Type;

مثال :


نريد انشاء الجدول المؤقت myTemp الذي يحتوي على اسماء المواد التي تم بيع كمية اكبر من 100 منها ليتم اعادة طلبها من المستودع ... سنستخدم الصيغة التالية لذلك :

CREATE TEMPORARY TABLE myTemp (Name varchar(50));

واذا اردنا ملء هذا الجدول نستخدم الصيغة :

Insert Into myTemp select Name , sum (Quantity) from Sales
Group By Name
Having sum (Quantity) > 100;

الى هنا اكتفي ونلتقي في درس جديد وسيكون موضوعنا القادم عن استخدام الفهارس تابعنا ليصلك كل جديد او قم بتسجيل اعجابك بصفحتنا على الفيس بوك .
مشاركة

أضف تعليق:

0 comments: