19-Mavzu: Ko‘rsatilgan ma’lumotlarni o‘chirish, yangilash va qo‘shish so‘rovlarini yaratish va ular bilan ishlash Reja: 1. Yangilash so'rovidan foydalanish 2. Kontent o‘chirilganligi sababli so‘rovni bajarish 3. SQL versiyasi Access ma'lumotlar bazalarida yangilash so'rovi bilan siz mavjud yozuvlarga ma'lumotlarni qo'shishingiz, o'zgartirishingiz va o'chirishingiz mumkin. Yangilash so'rovlarini Topish va almashtirish dialog oynasining yanada kuchli o'zgarishi deb o'ylashingiz mumkin . Yangilash so'rovini ma'lumotlar bazasiga yangi yozuvlar qo'shish yoki yozuvlarni olib tashlash uchun ishlatib bo'lmaydi.
Yangi yozuvlarni qo'shish uchun qo'shish so'rovi, yozuvlarni o'chirish uchun esa o'chirish so'rovi ishlatiladi.
Umumiy koʻrinish
Yangilash so'rovidan foydalanish
Bir jadvaldagi ma'lumotlarni boshqa jadvaldagi ma'lumotlar bilan yangilang
Kontent o‘chirilganligi sababli so‘rovni bajarish bloklandi
SQL versiyasi: UPDATE bayonoti
Umumiy koʻrinish
Quyida "Topish va almashtirish" va "yangilash so'rovi" o'rtasidagi o'xshashlik va farqlar keltirilgan
Topish va almashtirish dialog oynasida bo'lgani kabi, siz o'zgartirmoqchi bo'lgan qiymatni va yangilanish so'rovida yangi qiymatni belgilashingiz mumkin.
Top va almashtirishdan farqli o'laroq , yangilash so'rovi sizga quyidagilarga imkon beradi:
almashtiriladigan qiymatga bog'liq bo'lmagan shartlardan foydalanish;
bir vaqtning o'zida bir nechta yozuvlarni yangilash;
bir vaqtning o'zida bir nechta jadvallardagi yozuvlarni o'zgartirish.
Maydonni yangilash chegaralari
Yangilash soʻrovini quyidagi turdagi maydonlardagi maʼlumotlarni yangilash uchun ishlatib boʻlmaydi.
Hisoblangan maydonlar. Hisoblangan maydon qiymatlari jadvalda doimiy saqlanmaydi. Hisoblashdan so'ng ular faqat kompyuterning vaqtinchalik xotirasida mavjud. Hisoblangan maydonlar uchun doimiy xotira yo'qligi sababli ularni yangilab bo'lmaydi.
Xulosa yoki oʻzaro soʻrovdagi maydonlar. Ushbu turdagi so'rovlardagi qiymatlar hisoblab chiqiladi va shuning uchun yangilanish so'rovi bilan yangilanib bo'lmaydi.
"Hisoblagich" ma'lumotlar turiga ega maydonlar. "Hisoblagich" ma'lumotlar turiga ega bo'lgan maydonlardagi qiymatlar jadvalga yozuv qo'shilgandagina o'zgartiriladi.
Noyob qiymatlarga ega so'rovlardagi maydonlar va noyob yozuvlar uchun so'rovlar Bunday so'rovlardagi qiymatlar umumlashtiriladi. Ba'zi qiymatlar bitta yozuvni, boshqalari esa bir nechta yozuvni ifodalaydi. Yangilash operatsiyasini amalga oshirib bo'lmaydi, chunki qaysi yozuvlar dublikat sifatida yo'q qilinganligini aniqlash mumkin emas va shuning uchun barcha kerakli yozuvlarni yangilash mumkin emas. Ushbu cheklov siz yangilash so'rovidan foydalanayotgan bo'lsangiz yoki shakl yoki jadvalga qiymatlarni kiritish orqali ma'lumotlarni qo'lda yangilamoqchi bo'lsangiz ham amal qiladi.
Birlashtirish soʻrovidagi maydonlar Birlashma soʻrovidagi maydonlar maʼlumotlarini yangilab boʻlmaydi, chunki ikki yoki undan ortiq maʼlumot manbalarida paydo boʻladigan har bir yozuv birlashish soʻrovi natijalarida faqat bir marta paydo boʻladi. Ba'zi takroriy yozuvlar natijalardan olib tashlanganligi sababli, Access barcha kerakli yozuvlarni yangilay olmaydi.
Asosiy kalitlar bo'lgan maydonlar. Ba'zi hollarda, masalan, jadval munosabatlarida asosiy kalit maydonidan foydalanilganda, agar aloqa avtomatik ravishda kaskadli yangilanish uchun sozlanmagan bo'lsa, so'rov bilan maydonni yangilash mumkin emas.
Eslatma: Kaskadli yangilanish bilan, asosiy jadvaldagi asosiy kalit qiymati o'zgarganda Access avtomatik ravishda tashqi kalit qiymatlarini yangilaydi.
Sahifaning yuqorisi
Yangilash so'rovidan foydalanish
Yangilash so'rovini yaratish uchun quyidagilarni bajarishingizni tavsiya qilamiz: yangilanmoqchi bo'lgan yozuvlarni aniqlash uchun tanlangan so'rovni yarating va keyin uni yangilash so'roviga aylantiring va yozuvlarni yangilang. Ushbu ketma-ketlik to'g'ri yozuvlarni yangilayotganingizni ta'minlaydi.
Maslahat: Yangilash so'rovini ishga tushirishdan oldin ma'lumotlar bazasining zaxira nusxasini yaratish tavsiya etiladi. Ushbu so'rov natijalarini qaytarib bo'lmaydi va yaratilgan zahira zarur bo'lganda ma'lumotlarni qayta tiklashga imkon beradi.
Ma'lumotlar bazasining zaxira nusxasini yarating
Fayl yorlig'ini oching va Boshqacha saqlash buyrug'ini tanlang . Esda tutingki, agar siz Access 2010 dan foydalanayotgan bo'lsangiz , Fayl yorlig'ini bosing va Saqlash va nashr etish ni tanlang .
O'ng tarafdagi Kengaytirilgan o'rnatish bo'limida Ma'lumotlar bazasi zahirasini yaratish ni bosing .
Zaxira nusxasini saqlash dialog oynasida zaxira uchun nom va joyni belgilang va keyin Saqlash tugmasini bosing .
Access asl faylni yopadi, uning zaxira nusxasini yaratadi va qayta ochadi.
Zaxiraga qaytish uchun asl faylni yoping va nomini o'zgartiring, shunda siz asl versiya nomidan foydalanishingiz mumkin. Zaxira nusxasini asl versiya nomi bilan nomlang va Access-da qayta nomlangan zaxira nusxasini oching.
Ushbu bo'limda
1-qadam: Qaysi yozuvlarni yangilash kerakligini aniqlash uchun tanlangan so'rovni yarating
2-qadam: Yozuvlarni yangilash
1-qadam: Qaysi yozuvlarni yangilash kerakligini aniqlash uchun tanlangan so'rovni yarating
Yangilanadigan yozuvlarni o'z ichiga olgan ma'lumotlar bazasini oching.
" Yaratish " yorlig'ida " So'rovlar " guruhida " So'rovlar dizayni " tugmasini bosing .
Jadvallar yorlig'ini oching .
Yangilamoqchi bo'lgan yozuvlarni o'z ichiga olgan bir yoki bir nechta jadvalni tanlang va Qo'shish tugmasini , keyin Yopish tugmasini bosing .
Jadvallar so'rovlar konstruktorida bir yoki bir nechta oynada ko'rsatiladi va ularda har bir jadvalning barcha maydonlari paydo bo'ladi. Rasmda odatiy jadvalga ega Query Builder ko'rsatilgan.
1. So'rovlar konstruktor oynasidagi jadval
2. So'rov shakli
Jadval oynalarida yangilanmoqchi bo'lgan maydonlarni ikki marta bosing. Tanlangan maydonlar so'rov shaklining Maydon maydonida paydo bo'ladi.
So'rovlar dizaynidagi har bir ustun uchun bitta jadval maydoni qo'shishingiz mumkin.
Jadvaldagi barcha maydonlarni tezda qo'shish uchun jadval oynasidagi jadval maydonlari ro'yxatining yuqori qismidagi yulduzcha ( * ) belgisini ikki marta bosing. Rasmda barcha maydonlar qo'shilgan so'rov shakli ko'rsatilgan.
So'rov natijalarini maydon qiymatlari asosida cheklash uchun so'rovlar dizaynidagi Shart qatoriga natijalarni cheklash uchun foydalanmoqchi bo'lgan shartni kiriting.
Shartlar misol jadvali
Quyidagi jadvalda shartlarning ba'zi misollari va ularni qo'llash natijalari ko'rsatilgan.
Eslatma: Ushbu jadvaldagi ko'pgina misollar so'rovni yanada moslashuvchan yoki samarali qilish uchun joker belgilardan foydalanadi.
Vaziyat
Natija
>234
234 dan katta barcha raqamlarni qaytaradi. 234 dan kichik barcha raqamlarni topish uchun < 234 shartidan foydalaning.
>= "Novosibirsk"
"Novosibirsk" dan alifbo oxirigacha barcha yozuvlarni qaytaradi.
#2.02.2020# va #12.01.2020# orasida #
2-17-fevral va 1-dekabr (ANSI-89) orasidagi sanalarni tanlaydi. Agar ma'lumotlar bazasi ANSI-92 joker belgilar to'plamidan foydalansa , xesh belgilari ( # ) o'rniga bitta tirnoq ( ' ) dan foydalaning . Misol: “02/02/2020” va “01/12/2020” orasida.
"Germaniya" emas
Maydon tarkibi "Germaniya" qiymatiga mos kelmaydigan barcha yozuvlarni topadi. Bu shart "Germaniya (Evro)" yoki "Yevropa (Germaniya)" kabi "Germaniya" so'zidan boshqa qo'shimcha matnni o'z ichiga olgan yozuvlarni topadi.
"T*" emas
"T" harfi bilan boshlanadiganlardan tashqari barcha yozuvlarni topadi. Agar ma'lumotlar bazasi ANSI-92 joker belgilaridan foydalansa, yulduzcha ( * ) o'rniga foiz belgisidan ( % ) foydalaning .
"*t" emas
“t” bilan tugamaydigan barcha yozuvlarni topadi. Agar ma'lumotlar bazasi ANSI-92 joker belgilaridan foydalansa, yulduzcha (*) o'rniga foiz belgisini (%) ishlating.
In (Kanada, Buyuk Britaniya)
"Kanada" yoki "Buyuk Britaniya" so'zlarini o'z ichiga olgan ro'yxatdagi barcha yozuvlarni topadi.
"[A-G]*" kabi
Matn maydoni alifboning birinchi to'rtta harfidan biri bilan boshlanadigan barcha yozuvlarni qidiradi (A-D). Agar ma'lumotlar bazasi ANSI-92 joker belgilaridan foydalansa, yulduzcha (*) o'rniga foiz belgisini (%) ishlating.
"*ar*" kabi
"tr" harflari birikmasini o'z ichiga olgan barcha yozuvlarni topadi. Agar ma'lumotlar bazasi ANSI-92 joker belgilaridan foydalansa, yulduzcha (*) o'rniga foiz belgisini (%) ishlating.
"Gregori Verniy?"
"Gregori" nomidan boshlangan va 9 ta harfdan iborat ikkinchi qatorni o'z ichiga olgan barcha yozuvlarni topadi, ulardan 6 tasi "Verniy" familiyasining boshini tashkil qiladi va oxirgi harf noma'lum. Agar ma'lumotlar bazasi ANSI-92 joker belgilar to'plamidan foydalansa , savol belgisi ( ? ) o'rniga pastki chiziqdan ( _ ) foydalaning .
#2/2/2020 #
2020-yil 2-fevral uchun barcha yozuvlarni topadi. Agar maʼlumotlar bazasi ANSI-92 pastki belgilar toʻplamidan foydalansa, sanani funt belgilari (#) oʻrniga bitta tirnoq (') bilan oʻrab oling; masalan: '02.02.2020').
< Sana() - 30
Eng kamida 30 kunlik barcha sanalarni qaytarish uchun Sana funksiyasidan foydalanadi .
Sana()
Joriy sanani o'z ichiga olgan barcha yozuvlarni qaytarish uchun Sana funksiyasidan foydalanadi .
Date( ) va DateAdd ("M", 3, Date( )) o'rtasida
Joriy sana va uch oydan keyingi sana o'rtasidagi barcha yozuvlarni qaytarish uchun Date va DateAdd funksiyalaridan foydalanadi.
Null
Bo'sh (bo'sh yoki null) qiymatni o'z ichiga olgan barcha yozuvlarni qaytaradi.
Null emas
Bo'sh bo'lmagan qiymatni o'z ichiga olgan barcha yozuvlarni qaytaradi.
""
Nol uzunlikdagi qatorni o'z ichiga olgan barcha yozuvlarni qaytaradi. Bunday satrlar odatda maydon qiymatga ega bo'lishi kerak bo'lganda qo'llaniladi, lekin qiymat hali ma'lum emas. Masalan, maydon faks raqamini kiritishingizni talab qiladi, lekin ba'zi mijozlarda bunday raqam yo'q. Bunday holda, raqam o'rniga, ular orasida bo'sh joy qoldirmasdan, qo'sh tirnoq juftligini kiritishingiz mumkin (").
Dizayn ko'rinishida Natijalar guruhida " Ishga tushirish" tugmasini bosing .
So'rov yangilanishi kerak bo'lgan yozuvlarni qaytarishiga ishonch hosil qiling.
So'rovlar yaratuvchisiga qo'shishni istamagan maydonlarni olib tashlash uchun ularni tanlang va DELETE tugmasini bosing.
So'rovlar yaratuvchisiga maydonlar qo'shish uchun ularni so'rov shakliga torting.