الفرق بين القص والحذف

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

ما هو الأمر Truncate؟

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

اقتطاع بناء الجملة:

اسم الجدول TRUNCATE؛

هنا يجب تحديد اسم الجدول المراد حذفه. هذا سيسمح لأي طاولة تجلس في منطقة التخزين. مثال على استخدام Truncate.

راجع جدول "الموظفين" وصف المعلومات أدناه.

لنطبع الأمر التالي في جدول الموظفين.

موظف TRUNCATE TABLE ؛

هذه نتيجة بناء الجملة أعلاه ولا تحتوي على بيانات.

ما هو أمر الحذف؟

الغرض من الأمر delete هو إزالة الصفوف المحددة من الجدول. هنا عبارة "أين" لتمييز الأسطر المراد حذفها. إذا لم نحدد صفوفًا ، فسيحذف الأمر جميع الصفوف في الجدول. مجرد إلقاء نظرة على تركيبتها.

خارج الخدمة ؛

يحذف بناء الجملة أعلاه جميع الصفوف في جدول "الموظفين". وبالتالي ، لا يحتوي جدول النتائج على أي معلومات.

من التوظيف Emp-id = 1011؛

يحذف هذا التعبير سطر واحد باستخدام emp-ID 1011.

الاختلافات:

  • Truncate هو DDL ؛ حذف هذا هو DML: ناقشنا أعلاه كيفية عمل DDL و DML أعلاه. الأمر Truncate هو DDL ، والذي يعمل على مستوى بنية البيانات. لكن Delete هو أمر DML ويعمل في بيانات الجدول. أمثلة أخرى لـ DDL هي CREATE و ALTER. وبالمثل ، يمكننا القول أن أوامر مثل SELECT و UPDATE و INSERT هي أفضل الأمثلة على DML. كيف يعمل Truncate و Delete: بعد أن نصدر أمر Truncate ، فإنه يبحث فقط عن الجدول المحدد. ثم يمحو جميع البيانات من الذاكرة. لكن وضع إيقاف التشغيل مختلف قليلاً. هنا ، يتم نسخ بيانات الجدول الأصلية في مساحة "الإرجاع" قبل إجراء المعالجة الفعلية للبيانات. ثم يتم إجراء التغييرات في مساحة الجدول الفعلية. لذلك كلاهما مختلف في طريقة عملهما.

قص -> إزالة كافة البيانات من الجدول -> حقل الجدول فارغ الآن.

حذف -> نسخ بيانات الجدول مرة أخرى إلى الحقل السابق -> حذف البيانات المحددة / الجدول بأكمله -> مساحة الجدول فارغة ، ولكن الصفوف التي تم إرجاعها مليئة بالصفوف.

  • تراجع: التراجع يشبه أمر الإلغاء على ملحقات Microsoft. يُستخدم هذا التراجع عن أي تغييرات حديثة قمنا بإجرائها ، أي من آخر نقطة تم حفظها. للقيام بذلك ، يجب نقل البيانات إلى منطقة التراجع قبل التحرير. تتطلب ألواح اللف الخلفي هذه مساحة تخزين إضافية ، ولكنها مفيدة جدًا في العودة إلى النسخة الأصلية. خاصة عندما تقوم بالتحرير بالخطأ! الآن ، دعونا نعود إلى ما تم تخفيضه وإزالته ضد Roll. كما ناقشنا أعلاه ، لا يستخدم Truncate مطلقًا مساحة قابلة لإعادة الاستخدام ، ولا يمكننا أبدًا العودة إلى البيانات الأصلية. لكن الأمر حذف يستخدم المساحة لعكس ، ويمكننا استخدام "Commit" أو "RollBack" لقبول التغيير أو إلغائه. المشغلات: هنا ملاحظة صغيرة لأولئك الذين يحتاجون إلى شرح حول المحفزات. المشغلات هي مجموعة من العمليات / العمليات المحددة مسبقًا والتي يجب تنشيطها عندما يواجه الجدول حالة معينة. على سبيل المثال ، إذا كان لدى الموظف أكثر من عام من الخبرة في الشركة ، فيمكننا البدء في تغيير كشوف المرتبات. يمكن أن تعمل هذه المحفزات في جداول أخرى أيضًا. على سبيل المثال ، يمكننا تحديث جدولنا المالي بمجرد زيادة الأجور.

Truncate هو أمر DDL حيث لا يُسمح بالمشغل. لكن الحذف أمر DML ، حيث يُسمح بالتشغيل.

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

لذا ، دعنا نلقي نظرة على هذه الاختلافات وعرض الجدول.

معرفة الفرق بين الموضوعين يوسع معرفتهما بكليهما! أنت على المسار الصحيح ، أي لفهم الاختلاف بين صفحة الويب ، وخاصة أوامر القص والحذف. نأمل أن تكون واضحًا الآن بشأن الاختلافات وإعلامنا إذا كان بإمكاننا مساعدتك في فهمها. يمكنك مساعدتنا في إظهار الباقي!

المراجع

  • http://www.orafaq.com/faq/difference_b between_truncate_delete_and_drop_commands
  • http://beginner-sql-tutorial.com/sql-delete-statement.htm
  • https://stackoverflow.com/questions/2578194/what-is-ddl-and-dml
  • https://stackoverflow.com/questions/139630/whats-the-difference-b Between-truncate-and-delete-in-sql