Tashtirish va kesish o'rtasidagi farq

Tashtirish va kesish o'rtasidagi farq
Tashtirish va kesish o'rtasidagi farq

Video: Tashtirish va kesish o'rtasidagi farq

Video: Tashtirish va kesish o'rtasidagi farq
Video: 2022 EPS-TOPIK SKILLS TEST MASTER KLASS//KOREYS TILI 2024, Iyul
Anonim

Drop va Tuncate

Drop va Truncate ikkita SQL (Tuzilgan so'rovlar tili) iboralari bo'lib, ular ma'lumotlar bazasini boshqarish tizimlarida qo'llaniladi, biz ma'lumotlar bazasidan ma'lumotlar yozuvlarini o'chirishni xohlaymiz. Drop va Truncate iboralari jadvaldagi barcha ma'lumotlarni va tegishli SQL bayonotini olib tashlaydi. Bu holatda oʻchirish operatsiyasi samarali emas, chunki u Drop va Tuncate’dan koʻra koʻproq xotira joylarini ishlatadi.

Agar biz ma'lumotlar bazasidagi jadvalni barcha ma'lumotlari bilan birga olib tashlamoqchi bo'lsak, SQL Drop bayonoti yordamida buni osonlik bilan bajarishimizga imkon beradi. Drop buyrug'i DDL (Data Definition Language) buyrug'i bo'lib, u mavjud ma'lumotlar bazasi, jadval, indeks yoki ko'rinishni yo'q qilish uchun ishlatilishi mumkin. U jadvaldagi barcha ma'lumotlarni, shuningdek, ma'lumotlar bazasidan jadval tuzilishini o'chiradi. Bundan tashqari, biz jadvaldagi barcha ma'lumotlardan oddiygina, lekin jadvalsiz xalos bo'lishni xohlashimiz mumkin va bunday stsenariyda SQLda Truncate iborasidan foydalanishimiz mumkin. Kesish ham DDL buyrug'idir va u jadvaldagi barcha qatorlarni yo'q qiladi, lekin kelajakda foydalanish uchun jadval ta'rifini saqlab qoladi.

Yotish buyrug'i

Avval aytib o'tilganidek, Drop buyrug'i jadval ta'rifini va uning barcha ma'lumotlarini, yaxlitlik cheklovlarini, indekslarni, triggerlarni va ushbu jadvalda yaratilgan kirish imtiyozlarini olib tashlaydi. Shunday qilib, u mavjud ob'ektni ma'lumotlar bazasidan butunlay olib tashlaydi va boshqa jadvallar bilan aloqalar ham buyruqni bajargandan so'ng haqiqiy bo'lmaydi. Shuningdek, u jadval haqidagi barcha ma'lumotlarni ma'lumotlar lug'atidan olib tashlaydi. Quyida jadvalda Drop iborasidan foydalanishning odatiy sintaksisi keltirilgan.

JADVALNI TOSHLASH

Biz shunchaki Drop buyrug'ining yuqoridagi misolida ma'lumotlar bazasidan olib tashlamoqchi bo'lgan jadval nomini almashtirishimiz kerak.

Shuni ta'kidlash kerakki, chet el kalit cheklovi bilan allaqachon havola qilingan jadvalni o'chirish uchun Drop bayonotidan foydalanib bo'lmaydi. Bunday holda, havola qiluvchi tashqi kalit cheklovi yoki o'sha maxsus jadval birinchi bo'lib o'chirilishi kerak. Shuningdek, Drop bayonoti maʼlumotlar bazasidagi tizim jadvallarida qoʻllanilmaydi.

Drop buyrugʻi avtomatik yuklash bayonoti boʻlgani uchun, bir marta ishga tushirilgan operatsiyani orqaga qaytarib boʻlmaydi va hech qanday tetik ishdan chiqmaydi. Jadval o'chirilganda, jadvalga barcha havolalar haqiqiy bo'lmaydi va shuning uchun agar jadvalni qayta ishlatmoqchi bo'lsak, uni barcha yaxlitlik cheklovlari va kirish imtiyozlari bilan qayta yaratish kerak. Boshqa jadvallar bilan barcha aloqalar ham qayta joylashtirilishi kerak.

Kesish buyrug'i

Kesish buyrug'i DDL buyrug'i bo'lib, u foydalanuvchi tomonidan belgilangan shartlarsiz jadvaldagi barcha satrlarni olib tashlaydi va jadval tomonidan ishlatiladigan bo'sh joyni bo'shatadi, lekin jadval tuzilmasi ustunlari, indekslari va cheklovlari bilan bir xil bo'lib qoladi. Kesish jadval ma'lumotlarini saqlash uchun ishlatiladigan ma'lumotlar sahifalarini ajratish orqali jadvaldagi ma'lumotlarni yo'q qiladi va faqat ushbu sahifa taqsimotlari tranzaktsiyalar jurnalida saqlanadi. Shunday qilib, u Delete kabi boshqa tegishli SQL buyruqlariga qaraganda kamroq tranzaksiya jurnali resurslari va tizim resurslaridan foydalanadi. Shunday qilib, Truncate boshqalarga qaraganda bir oz tezroq bayonotdir. Quyida Tuncate buyrug'ining odatiy sintaksisi keltirilgan.

JADVALNI QISHLASH

Yuqoridagi sintaksisdagi barcha ma'lumotlarni olib tashlamoqchi bo'lgan jadval nomini almashtirishimiz kerak.

Truncate chet el kalit cheklovi bilan havola qilingan jadvalda ishlatilmaydi. U harakat qilishdan oldin avtomatik ravishda majburiyatdan foydalanadi va keyin boshqa majburiyatdan foydalanadi, shuning uchun tranzaktsiyani orqaga qaytarish mumkin emas va hech qanday tetikleyici ishga tushmaydi. Jadvalni qayta ishlatmoqchi bo'lsak, faqat ma'lumotlar bazasidagi mavjud jadval ta'rifiga kirishimiz kerak.

Drop va Truncate oʻrtasidagi farq nima?

Ochish va Kesish buyruqlari ham DDL buyruqlari, shuningdek, bu buyruqlar yordamida bajarilgan tranzaksiyalarni orqaga qaytarib boʻlmaydi.

Drop va Tuncate oʻrtasidagi asosiy farq shundaki, Drop buyrugʻi nafaqat jadvaldagi barcha maʼlumotlarni, balki jadval tuzilmasini barcha havolalar bilan maʼlumotlar bazasidan butunlay oʻchiradi, Kesish buyrugʻi esa faqat hammasini oʻchiradi. jadvaldagi qatorlar va u jadval tuzilishi va unga havolalarni saqlaydi.

Agar jadval oʻchirib tashlansa, boshqa jadvallar bilan aloqalar endi haqiqiy emas, yaxlitlik cheklovlari va kirish imtiyozlari ham olib tashlanadi. Shunday qilib, agar jadvalni qayta ishlatish kerak bo'lsa, uni munosabatlar, yaxlitlik cheklovlari va kirish imtiyozlari bilan qayta qurish kerak. Agar jadval qisqartirilsa, jadval tuzilishi va uning cheklovlari kelajakda foydalanish uchun qoladi va shuning uchun qayta foydalanish uchun yuqoridagi rekreatsiyalardan hech biri talab qilinmaydi.

Ushbu buyruqlar qoʻllanilganda, ulardan foydalanishda ehtiyot boʻlishimiz kerak. Bundan tashqari, biz ushbu buyruqlarning mohiyatini, ular qanday ishlashini yaxshiroq tushunishimiz kerak, shuningdek, asosiy narsalarni yo'qotmaslik uchun ularni ishlatishdan oldin ehtiyotkorlik bilan rejalashtirishimiz kerak. Nihoyat, bu ikkala buyruq ham kamroq resurslarni sarflab, maʼlumotlar bazalarini tez va oson tozalash uchun ishlatilishi mumkin.

Tavsiya: