الدرس 3 - سلسلة شرح لغة T-SQL- التعامل المتقدم مع البيانات


    تعلم mysql,قواعد البيانات,تعلم mysql بالأمثلة وبسهولة,تعليم,sql تعلم,اوراكل,تعليم sql,شرح حول foreign key constraint في mysql,تعلم asp.net,تعليم sql server,تعلم برمجة sql,تعلم البرمجة,تعلم_البرمجة,تعليم sql server 2014,تعليم البرمجة,دورة تعلم sql server,تعليم لغة sql server


    ربط الخداول Joins
    يتم استخدام جملة Joins في دمج السجلات من جدولين أو أكثر في قاعدة بيانات. JOIN هي وسيلة لدمج الحقول من جدولين باستخدام القيم المشتركة لكل منهما.
    بالنظر في الجدولين التاليين ، (أ) جدول العملاء على النحو التالي -
    ID  NAME       AGE       ADDRESS             SALARY
    1   Ramesh     32        Ahmedabad           2000.00
    2   Khilan     25        Delhi               1500.00
    3   kaushik    23        Kota                2000.00
    4   Chaitali   25        Mumbai              6500.00
    5   Hardik     27        Bhopal              8500.00
    6   Komal      22        MP                  4500.00
    7   Muffy      24        Indore              10000.00
    (ب) جدول آخر هو المرتبات كما يلي -
    OID  DATE                       CUSTOMER_ID        AMOUNT
    100  2009-10-08 00:00:00.000    3                  1500.00
    101  2009-11-20 00:00:00.000    2                  1560.00
    102  2009-10-08 00:00:00.000    3                  3000.00
    103  2008-05-20 00:00:00.000    4                  2060.00
    دعونا نضم هذين الجدولين في بيان SELECT الخاص بنا على النحو التالي :
    SELECT ID, NAME, AGE, AMOUNT
       FROM CUSTOMERS, ORDERS
       WHERE  CUSTOMERS.ID = ORDERS.CUSTOMER_ID
    OR
    SELECT A.ID, A.NAME, A.AGE, B.AMOUNT
       FROM CUSTOMERS A inner join  ORDERS B on A.ID = B.Customer_ID
    سينتج الأمر أعلاه المخرجات التالية.
    ID   NAME      AGE    AMOUNT
    2    Khilan    25     1560.00
    3    kaushik   23     1500.00
    3    kaushik   23     3000.00
    4    Chaitali  25     2060.00
    من الملاحظ أن الصلة يتم تنفيذها في جملة WHERE. يمكن استخدام العديد من العوامل لربط الجداول ، مثل = و <و> و <> و <= و> = و! = و BETWEEN و LIKE و NOT؛ يمكن استخدامها جميعًا لضم الجداول. ومع ذلك ، فإن العامل الأكثر استخداما هو رمز  يساوى  "=".

    انواع الربط Joins
    هناك أنواع مختلفة من ربط الجداول المتاحة في MS SQL Server -
    ·        INNER JOIN - إرجاع الصفوف عندما يكون هناك تطابق في كلا الجدولين.
    ·        LEFT JOIN - إرجاع كل الصفوف من الجدول الأيسر ، حتى إذا لم تكن هناك تطابقات في الجدول الأيمن.
    ·        RIGHT JOIN - إرجاع جميع الصفوف من الجدول الأيمن ، حتى إذا لم تكن هناك تطابقات في الجدول الأيسر.
    ·        FULL JOIN - إرجاع الصفوف عندما يكون هناك تطابق في أحد الجداول.
    ·        SELF JOIN - يستخدم هذا لضم جدول إلى نفسه كما لو كان الجدول جدولين ، إعادة تسمية جدول واحد مؤقتًا
    ·        CARTESIAN JOIN - إرجاع الناتج الديكارتي لمجموعات السجلات من الجدولين أو أكثر من الجداول المرتبطة.


    الاستعلامات الفرعية Sub Query
    استعلام فرعي أو استعلام داخلي أو استعلام متداخل هو استعلام داخل استعلام آخر ومضمّن في جملة WHERE. يتم استخدام استعلام فرعي لإرجاع البيانات التي سيتم استخدامها في الاستعلام الرئيسي كشرط لتقييد البيانات التي سيتم استردادها.
    يمكن استخدام الاستعلامات الفرعية مع عبارات SELECT و INSERT و UPDATE و DELETE بالإضافة إلى عوامل التشغيل مثل = و <و> و> = و <= و IN و BETWEEN وما إلى ذلك.
    هناك بعض القواعد التي يجب أن تتبعها الاستعلامات الفرعية -
    ·        يجب عليك وضع الاستعلام فرعي بين قوسين.
    ·        يجب أن يتضمن الاستعلام فرعي جملة SELECT وعبارة FROM.
    ·        يمكن أن يتضمن الاستعلام فرعي جملة WHERE و GROUP BY و HAVING.
    ·        لا يمكن أن يتضمن الاستعلام الفرعي عبارات COMPUTE أو FOR BROWSE.
    ·        يمكنك تضمين جملة ORDER BY فقط عندما تستخدم جملة TOP.
    ·        يمكنك انشاء  استعلامات فرعية متداخلة حتى 32 مستوى.
    استعلامات فرعية مع عبارة SELECT
    بناء الجملة
    يتم استخدام الاستعلامات الفرعية بشكل متكرر مع عبارة SELECT. فيما يلي بناء الجملة.
    SELECT column_name [, column_name ]
    FROM   table1 [, table2 ]
    WHERE  column_name OPERATOR
       (SELECT column_name [, column_name ]
       FROM table1 [, table2 ]
       [WHERE])

    مثال
    يوجد فى  جدول العملاء السجلات التالية.
    ID  NAME       AGE       ADDRESS            SALARY
    1   Ramesh     32        Ahmedabad          2000.00
    2   Khilan     25        Delhi              1500.00
    3   kaushik    23        Kota               2000.00
    4   Chaitali   25        Mumbai             6500.00
    5   Hardik     27        Bhopal             8500.00
    6   Komal      22        MP                 4500.00
    7   Muffy      24        Indore             10000.00
    دعونا نطبق الاستعلام الفرعي التالي مع عبارة SELECT.
    SELECT * 
    FROM CUSTOMERS
    WHERE ID IN (SELECT ID FROM CUSTOMERS WHERE SALARY > 4500)
    سينتج الأمر أعلاه المخرجات التالية.
    ID  NAME       AGE       ADDRESS          SALARY
    4   Chaitali   25        Mumbai           6500.00
    5   Hardik     27        Bhopal           8500.00
    7   Muffy      24        Indore           10000.00
    استعلامات فرعية مع جملة INSERT
    يمكن أيضًا استخدام استعلامات فرعية مع عبارات INSERT. تستخدم عبارة INSERT البيانات التي يتم إرجاعها من الاستعلام الفرعي لإدراجها في جدول آخر. يمكن تعديل البيانات المحددة في الاستعلام الفرعي باستخدام أي من وظائف الحرف أو التاريخ أو الرقم.
    بناء الجملة
    فيما يلي بناء الجملة.
    INSERT INTO table_name [ (column1 [, column2 ]) ]
       SELECT [ *|column1 [, column2 ]
       FROM table1 [, table2 ]
       [ WHERE VALUE OPERATOR ]
    مثال
    النظر في جدول CUSTOMERS_BKP مع هيكل مماثل لجدول العملاء. فيما يلي بناء الجملة لنسخ جدول العملاء الكامل في CUSTOMERS_BKP.
    INSERT INTO CUSTOMERS_BKP
       SELECT * FROM CUSTOMERS 
       WHERE ID IN (SELECT ID FROM CUSTOMERS)
    استعلامات فرعية مع جملة UPDATE
    يمكن استخدام الاستعلام الفرعي بالاقتران مع عبارة UPDATE. يمكن تحديث أعمدة مفردة أو متعددة في جدول عند استخدام استعلام فرعي مع عبارة UPDATE.
    بناء الجملة
    فيما يلي بناء الجملة.
    UPDATE table
    SET column_name = new_value
    [ WHERE OPERATOR [ VALUE ]
       (SELECT COLUMN_NAME
       FROM TABLE_NAME)
       [ WHERE) ]
    مثال
    دعونا نفترض أن لدينا جدول CUSTOMERS_BKP متاح وهو نسخة احتياطية من جدول العملاء.
    يقوم المثال على تعديل  SALARY بمقدار 0.25 مرة في جدول العملاء لجميع العملاء الذين تبلغ أعمارهم أكبر من أو تساوي 27.
    UPDATE CUSTOMERS
    SET SALARY = SALARY * 0.25
    WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >= 27 )
    سيؤثر هذا على صفين ، وأخيراً سيكون لدى جدول العملاء السجلات التالية.
    ID  NAME       AGE       ADDRESS             SALARY
    1   Ramesh     32        Ahmedabad           500.00
    2   Khilan     25        Delhi               1500.00
    3   kaushik    23        Kota                2000.00
    4   Chaitali   25        Mumbai              6500.00
    5   Hardik     27        Bhopal              2125.00
    6   Komal      22        MP                  4500.00
    7   Muffy      24        Indore              10000.00
    استعلامات فرعية مع جملة  DELETE
    يمكن استخدام الاستعلام الفرعي بالاقتران مع عبارة DELETE مثل أي عبارات أخرى مذكورة أعلاه.
    بناء الجملة
    فيما يلي بناء الجملة.
    DELETE FROM TABLE_NAME
    [ WHERE OPERATOR [ VALUE ]
       (SELECT COLUMN_NAME  FROM TABLE_NAME) [ WHERE) ]
    مثال
    دعونا نفترض أن لدينا جدول CUSTOMERS_BKP متاح وهو نسخة احتياطية من جدول العملاء.
    يؤدي المثال التالي إلى حذف السجلات من جدول العملاء لجميع العملاء الذين تزيد أعمارهم عن 27 عامًا أو يساويها.
    DELETE FROM CUSTOMERS
    WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP WHERE AGE >=27 )
    سيؤثر هذا على صفين ، وأخيراً سيكون لدى جدول العملاء السجلات التالية.
    ID  NAME       AGE       ADDRESS          SALARY
    2   Khilan     25        Delhi            1500.00
    3   kaushik    23        Kota             2000.00
    4   Chaitali   25        Mumbai           6500.00 
    6   Komal      22        MP               4500.00
    7   Muffy      24        Indore           10000.00

    الأجراءات المخزنة  Stored Procedures
    يتم استخدام الإجراء المخزن Stored Procedure  لتوفير الوقت لكتابة التعليمات البرمجية مرات عديدة  عن طريق تخزين التعليمات البرمجية  في قاعدة البيانات وكذلك الحصول على النتائج المطلوب عن طريق استدعاء الإجراء المخزن وتمرير البيانات المطلوبة له

    بناء الجملة

    فيما يلي بناء الجملة لإنشاء إجراء مخزّن.
    Create procedure <procedure_Name> 
    As 
    Begin 
    <SQL Statement> 
    End 
    Go

    مثال

    يوجد فى  جدول العملاء السجلات التالية.
    ID  NAME       AGE       ADDRESS            SALARY 
    1   Ramesh     32        Ahmedabad          2000.00 
    2   Khilan     25        Delhi              1500.00 
    3   kaushik    23        Kota               2000.00 
    4   Chaitali   25        Mumbai             6500.00 
    5   Hardik     27        Bhopal             8500.00 
    6   Komal      22        MP                 4500.00 
    7   Muffy      24        Indore             10000.00 
    الأمر التالي هو مثال سيؤدي إلى جلب جميع السجلات من جدول العملاء في قاعدة بيانات Testdb.
    CREATE PROCEDURE SelectCustomerstabledata 
    AS 
    SELECT * FROM Testdb.Customers 
    GO
    سينتج الأمر أعلاه المخرجات التالية.
    ID  NAME       AGE       ADDRESS           SALARY 
    1   Ramesh     32        Ahmedabad         2000.00 
    2   Khilan     25        Delhi             1500.00 
    3   kaushik    23        Kota              2000.00 
    4   Chaitali   25        Mumbai            6500.00 
    5   Hardik     27        Bhopal            8500.00 
    6   Komal      22        MP                4500.00 
    7   Muffy      24        Indore            10000.00 


    العمليات Transactions
    العمليات هي وحدة العمل التي يتم تنفيذها على قاعدة بيانات. العمليات هي وحدات أو تسلسلات للعمل المنجز بترتيب منطقي ، سواء بطريقة يدوية من قبل المستخدم أو تلقائيًا من خلال برنامج قاعدة بيانات.
    العمليات هي امر او تعليمه واحدة أو أكثر من التغييرات في قاعدة البيانات. على سبيل المثال ، إذا كنت تقوم بإنشاء سجل أو تحديث سجل أو حذف سجل من الجدول ، فأنت تقوم بإجراء عملية على الجدول. من المهم التحكم في العمليات لضمان تكامل البيانات والتعامل مع أخطاء قاعدة البيانات.
    ستضم العديد من استعلامات SQL إلى مجموعة وستنفذها جميعًا معًا كجزء من العملية.

    خصائص العمليات

    العمليات لها الخصائص الأربع القياسية التالية ، والتي يشار إليها عادةً باسم ACID -
    ·        التأكد Atomicity - يضمن إتمام جميع العمليات داخل وحدة العمل بنجاح ؛ خلاف ذلك ، يتم ايقاف العمليات جميعها ، ويتم إرجاع العمليات السابقة إلى حالتها السابقة.
    ·        الاتساق Consistency  - يضمن تغيير قاعدة البيانات بشكل صحيح فى حالة  اتمام العمليات بنجاح.
    ·        العزلة Isolation  - تمكن المعاملات من العمل بشكل مستقل عن بعضها البعض.
    ·        المتانة Durability  - يضمن استمرار نتيجة أو تأثير العملية حالة فشل النظام.

    مراقبة العمليات

    هناك الأوامر التالية المستخدمة للتحكم في العمليات -
    ·        الالتزام COMMIT  - لحفظ التغييرات.
    ·        التراجع ROLLBACK – للتراجع عن التغييرات.
    ·        نقطة الحفظ SAVEPOINT - يخلق نقاط داخل مجموعات من المعاملات التي تم عمل لها  ROLLBACK.
    ·        انشاء عملية SET TRACTACTION - يضع اسمًا على المعاملة.
    يتم استخدام أوامر التحكم في المعاملات فقط مع أوامر DML INSERT و UPDATE و DELETE فقط. لا يمكن استخدامها أثناء إنشاء الجداول أو حذفها لأن هذه العمليات يتم التحكم بها تلقائيًا في قاعدة البيانات.
    من أجل استخدام أوامر التحكم في المعاملات في MS SQL Server ، يجب أن نبدأ المعاملة بـ "start tran" أو start command transaction وإلا لن تعمل هذه الأوامر.

    حفظ نتائج العمليات Commit

    الأمر COMMIT هو أمر المعاملات المستخدم لحفظ التغييرات التي تستدعيها المعاملة في قاعدة البيانات. يحفظ هذا الأمر جميع العمليات إلى قاعدة البيانات منذ آخر أمر COMMIT أو ROLLBACK.

    بناء الجملة

    فيما يلي بناء جملة أمر COMMIT.
    COMMIT; 

    مثال

    يوجد جدول العملاء السجلات التالية.
    ID  NAME       AGE       ADDRESS           SALARY 
    1   Ramesh     32        Ahmedabad         2000.00 
    2   Khilan     25        Delhi             1500.00 
    3   kaushik    23        Kota              2000.00 
    4   Chaitali   25        Mumbai            6500.00 
    5   Hardik     27        Bhopal            8500.00 
    6   Komal      22        MP                4500.00 
    7   Muffy      24        Indore            10000.00 
    سيؤدي مثال الأمر التالي إلى حذف السجلات من الجدول ذي العمر = 25 ، ثم تنفيذ التغييرات في قاعدة البيانات.
    Begin Tran 
    DELETE FROM CUSTOMERS 
       WHERE AGE = 25 
    COMMIT 
    نتيجة لذلك ، سيتم حذف صفين من الجدول وسيصدر بيان SELECT المخرجات التالية.
    ID  NAME       AGE       ADDRESS           SALARY 
    1   Ramesh     32        Ahmedabad         2000.00
    3   kaushik    23        Kota              2000.00
    5   Hardik     27        Bhopal            8500.00 
    6   Komal      22        MP                4500.00 
    7   Muffy      24        Indore            10000.00 

    ↚ 

    الأمر ROLLBACK

    الأمر ROLLBACK هو أمر للتراجع عن العمليات التي لم يتم حفظها بالفعل في قاعدة البيانات. يمكن استخدام هذا الأمر فقط للتراجع عن المعاملات منذ إصدار آخر أمر COMMIT أو ROLLBACK.

    بناء الجملة

    فيما يلي بناء جملة الأمر ROLLBACK.
    ROLLBACK

    مثال

    يوجد فى جدول العملاء السجلات التالية.
    ID  NAME       AGE       ADDRESS            SALARY 
    1   Ramesh     32        Ahmedabad          2000.00 
    2   Khilan     25        Delhi              1500.00 
    3   kaushik    23        Kota               2000.00 
    4   Chaitali   25        Mumbai             6500.00 
    5   Hardik     27        Bhopal             8500.00 
    6   Komal      22        MP                 4500.00 
    7   Muffy      24        Indore             10000.00 
    سيؤدي مثال الأمر التالي إلى حذف السجلات من الجدول ذي العمر = 25 ثم إعادة تشغيل التغييرات في قاعدة البيانات.
    Begin Tran 
    DELETE FROM CUSTOMERS 
       WHERE AGE = 25; 
    ROLLBACK
    نتيجة لذلك ، لن تؤثر عملية الحذف على الجدول وسيؤدي بيان SELECT إلى النتيجة التالية.
    ID  NAME       AGE       ADDRESS          SALARY 
    1   Ramesh     32        Ahmedabad        2000.00 
    2   Khilan     25        Delhi            1500.00 
    3   kaushik    23        Kota             2000.00 
    4   Chaitali   25        Mumbai           6500.00 
    5   Hardik     27        Bhopal           8500.00 
    6   Komal      22        MP               4500.00 
    7   Muffy      24        Indore           10000.00 

    نقطة الحفظ او الاسترجاع SAVEPOINT

    SAVEPOINT هي نقطة في العمليات اى يمكنك إعادة العمليات إلى نقطة معينة دون إعادة العامليات بالكامل.

     

    بناء الجملة

    فيما يلي بناء جملة الأمر SAVEPOINT.
    SAVE TRANSACTION SAVEPOINT_NAME
    يستخدم هذا الأمر فقط في إنشاء SAVEPOINT بين عبارات العمليات. يتم استخدام الأمر ROLLBACK للتراجع عن مجموعة من المعاملات.
    فيما يلي بناء الجملة للتراجع إلى SAVEPOINT.
    ROLLBACK TO SAVEPOINT_NAME
    في المثال التالي ، سنقوم بحذف ثلاثة سجلات مختلفة من جدول العملاء. سيتعين علينا إنشاء SAVEPOINT قبل كل عملية حذف ، حتى نتمكن من الرجوع إلى أي SAVEPOINT في أي وقت لإعادة البيانات المناسبة إلى حالتها الأصلية.

    مثال

    النظر في جدول العملاء لديهم السجلات التالية -
    ID  NAME       AGE       ADDRESS          SALARY 
    1   Ramesh     32        Ahmedabad        2000.00 
    2   Khilan     25        Delhi            1500.00 
    3   kaushik    23        Kota             2000.00 
    4   Chaitali   25        Mumbai           6500.00 
    5   Hardik     27        Bhopal           8500.00 
    6   Komal      22        MP               4500.00 
    7   Muffy      24        Indore           10000.00 
    فيما يلي سلسلة العمليات -
    Begin Tran 
    SAVE Transaction SP1 
    Savepoint created. 
    DELETE FROM CUSTOMERS WHERE ID = 1  
    1 row deleted. 
    SAVE Transaction SP2 
    Savepoint created. 
    DELETE FROM CUSTOMERS WHERE ID = 2 
    1 row deleted.
    SAVE Transaction SP3 
    Savepoint created. 
    DELETE FROM CUSTOMERS WHERE ID = 3 
    1 row deleted.
    تم إجراء عمليات الحذف الثلاثة ، ومع ذلك ، فقد غيرنا رأينا وقررنا ROLLBACK إلى SAVEPOINT التي حددناها على أنها SP2. نظرًا لأنه تم إنشاء SP2 بعد الحذف الأول ، يتم التراجع عن آخر حذفين -
    ROLLBACK Transaction SP2 
    Rollback complete. 
    لاحظ أنه تم إجراء الحذف الأول فقط منذ أن عدنا إلى SP2.
    SELECT * FROM CUSTOMERS 
    تم تحديد 6 صفوف.
    ID  NAME       AGE       ADDRESS          SALARY 
    2   Khilan     25        Delhi        1500.00 
    3   kaushik    23        Kota             2000.00 
    4   Chaitali   25        Mumbai           6500.00 
    5   Hardik     27        Bhopal           8500.00 
    6   Komal      22        MP               4500.00 
    7   Muffy      24        Indore           10000.00 

    انشاء او ضبط العمليات

    يمكن استخدام أمر SET TRACTACTION لبدء العمليات على قاعدة بيانات. يستخدم هذا الأمر لتحديد خصائص المعاملة التالية.

    بناء الجملة

    فيما يلي بناء جملة SET.
    SET TRANSACTION ISOLATION LEVEL <Isolationlevel_name>


    الفهارس Indexes
    الفهارس هي جدولة بحث خاصة يمكن أن يستخدمها محرك بحث قاعدة البيانات لتسريع استعادة البيانات. ببساطة ، الفهرس هو مؤشر للبيانات في جدول. يشبه الفهرس الموجود في قاعدة البيانات الفهرس في نهاية الكتاب.
    على سبيل المثال ، إذا كنت ترغب في الرجوع إلى جميع الصفحات الموجودة في كتاب يناقش موضوعًا معينًا ، فأنت أولاً تقوم بفحص الفهرس ، الذي يسرد جميع الموضوعات أبجديًا ثم يتم إحالته إلى رقم صفحة محدد أو أكثر.
    يساعد الفهرس على تسريع استعلامات SELECT وعبارات WHERE ، لكنه يبطئ إدخال البيانات ، باستخدام عبارات UPDATE و INSERT. يمكن إنشاء فهارس أو حذفها بدون أي تأثير على البيانات.
    يتضمن إنشاء فهرس عبارة CREATE INDEX ، التي تسمح لك بتسمية الفهرس ، وتحديد الجدول وأي عمود أو أعمدة سيتم فهرسته ، والإشارة إلى ما إذا كان الفهرس بترتيب تصاعدي أم تنازلي.
    يمكن أن تكون الفهارس فريدة من نوعها UNIQUE ، حيث يمنع الفهرس الإدخالات المكررة في العمود أو مجموعة من الأعمدة التي يوجد بها فهرس.

    إنشاء مؤشر INDEX

    فيما يلي بناء الجملة الأساسي لـ CREATE INDEX.

    بناء الجملة

    CREATE INDEX index_name ON table_name

    فهارس عمود واحد

    فهرس عمود واحد هو الذي يتم إنشاؤه استنادًا إلى عمود جدول واحد فقط. فيما يلي بناء الجملة.

    بناء الجملة

    CREATE INDEX index_name 
    ON table_name (column_name)

    مثال

    CREATE INDEX singlecolumnindex 
    ON customers (ID)

    فهارس فريد Indexes  Unique

    يتم استخدام الفهارس الفريدة ليس فقط لتسريع الاداء للبحث ، ولكن أيضًا لتكامل البيانات. لا يسمح الفهرس الفريد بإدراج أي قيم مكررة في الجدول. فيما يلي بناء الجملة.

    بناء الجملة

    CREATE UNIQUE INDEX index_name 
    on table_name (column_name)

    مثال

    CREATE UNIQUE INDEX uniqueindex 
    on customers (NAME)

    الفهارس المركبة

    فهرس مركب هو فهرس على عمودين أو أكثر من جدول. فيما يلي بناء الجملة.

    بناء الجملة

    CREATE INDEX index_name on table_name (column1, column2) 

    مثال

    CREATE INDEX compositeindex 
    on customers (NAME, ID)
    سواء لإنشاء فهرس ذي عمود واحد أو فهرس مركب ، ضع في الاعتبار العمود (الأعمدة) الذي قد تستخدمه بشكل متكرر في جملة WHERE في الاستعلام كشروط تصفية.
    في حالة استخدام عمود واحد فقط ، يجب أن يكون الفهرس المكون من عمود واحد هو الخيار. في حالة وجود عمودين أو أكثر يتم استخدامهما بشكل متكرر في جملة WHERE كمرشحات ، سيكون الفهرس المركب هو الخيار الأفضل.

    فهارس ضمنية

    الفهارس الضمنية هي فهارس يتم إنشاؤها تلقائيًا بواسطة خادم قاعدة البيانات عند إنشاء كائن. يتم إنشاء الفهارس تلقائيًا للقيود الرئيسية الأساسية والقيود الفريدة.

    حذف مؤشر INDEX

    يمكن حذف فهرس باستخدام أمر DROP. يجب توخي الحذر عند حذف الفهرس لأن الأداء قد يتباطأ أو يتحسن.

    بناء الجملة

    فيما يلي بناء الجملة.
    DROP INDEX tablename.index_name

    متى يجب تجنب الفهارس؟

    على الرغم من أن الفهارس تهدف إلى تحسين أداء قواعد البيانات ، فهناك أوقات ينبغي فيها تجنبها. تشير الإرشادات التالية إلى متى يجب إعادة النظر في استخدام الفهرس -
    ·        يجب عدم استخدام الفهارس على الجداول الصغيرة.
    ·        يجب ألا تتم فهرسة الجداول التي تحتوي على عمليات تحديث وادخال بيانات كثيرة
    ·        يجب عدم استخدام الفهارس على الأعمدة التي تحتوي على عدد كبير من القيم NULL.
    ·        لا يجب فهرسة الأعمدة التي يتم استخدامها  بشكل متكرر.


    Smart Blogger
    @مرسلة بواسطة
    كاتب ومحرر اخبار اعمل في موقع يونى سوفت لتكنولوجيا المعلومات .

    إرسال تعليق