53-Mavzu: INSERT SELECT jadvalidagi yozuvlar guruhini kiritish
Reja:
1. Butun qatorlarni qo‘shish
2. Chiziqlarning bir qismini qo'shish
3. Tanlangan ma'lumotlarni qo'shish
ldingi bo'limlarda biz oldindan tuzilgan jadvallardan ma'lumotlarni olish ishlarini ko'rib chiqdik. Endi jadvallarni qanday yaratish / o'chirish, yangi yozuvlarni qo'shish va eskilarini o'chirishni aniqlash vaqti keldi. Bu maqsadlar uchun SQL operatorlari mavjud: CREATE - jadval yaratadi, ALTER - jadval strukturasini o'zgartiradi, DROP - jadval yoki maydonni o'chiradi, INSERT - jadvalga ma'lumotlarni qo'shadi. Keling, tanishuvimizni ushbu iboralar guruhi bilan INSERT bayonotidan boshlaylik .
1. Butun qatorlarni qo‘shish
Nomidan ko'rinib turibdiki, INSERT operatori ma'lumotlar bazasi jadvaliga qatorlarni qo'shish (qo'shish) uchun ishlatiladi. Qo'shish bir necha usul bilan amalga oshirilishi mumkin:
- bitta to'liq qator qo'shing
- satrning bir qismini qo'shish
- so'rov natijalarini qo'shish.
Shunday qilib, jadvalga yangi satr qo'shish uchun jadval nomini ko'rsatishimiz, ustun nomlarini sanab o'tishimiz va INSERT INTO jadval_nomi (maydon1, maydon2 ... ) VALUES ( qiymat1, qiymat2 ) yordamida har bir ustun uchun qiymat belgilashimiz kerak. ..) qurish . Keling, bir misolni ko'rib chiqaylik.
INSERT INTO sotuvchilar (ID, Manzil, Shahar, Sotuvchi_nomi, Mamlakat) QIYMATLAR ( '6', '1st Street', 'Los-Anjeles', 'Garri Monro', 'AQSh')
Shuningdek, siz ustun nomlari tartibini o'zgartirishingiz mumkin, lekin ayni paytda VALUES parametridagi qiymatlar tartibini o'zgartirishingiz kerak .
2. Chiziqlarning bir qismini qo'shish
Oldingi misolda INSERT iborasidan foydalanganda biz jadval ustunlari nomlarini aniq belgilab oldik. Ushbu sintaksisdan foydalanib, biz ba'zi ustunlarni o'tkazib yuborishimiz mumkin. Bu shuni anglatadiki, siz ba'zi ustunlar uchun qiymat kiritasiz, lekin boshqalar uchun qiymat bermaysiz. Misol uchun:
INSERT INTO sotuvchilar (ID, Shahar, sotuvchi_nomi) QIYMATLAR ( '6', 'Los-Anjeles', 'Garri Monro')
Ushbu misolda biz ikkita ustun uchun qiymat bermadik Manzil va Mamlakat . Agar jadval ta'rifi ruxsat bergan bo'lsa, INSERT INTO bayonotidan ma'lum ustunlarni chiqarib tashlashingiz mumkin . Bunday holda, shartlardan biri bajarilishi kerak: bu ustun null (hech qanday qiymat yo'qligi) sifatida aniqlanadi yoki jadval ta'rifida belgilangan standart qiymat ko'rsatilgan. Bu shuni anglatadiki, agar qiymat belgilanmagan bo'lsa, standart qiymat ishlatiladi. Agar siz jadvaldagi satrlarda NULL qiymatlarga ruxsat bermaydigan ustunni o'tkazib yuborsangizva belgilangan standart qiymatga ega bo'lmasa, DBMS xato xabari chiqaradi va bu qator qo'shilmaydi.
3. Tanlangan ma'lumotlarni qo'shish
Oldingi misollarda biz ma'lumotlarni so'rovga qo'lda yozish orqali jadvallarga kiritdik. Biroq, INSERT INTO bayonoti , agar biz boshqa jadvaldan ma'lumotlarni kiritmoqchi bo'lsak, bu jarayonni avtomatlashtirishga imkon beradi. Buning uchun SQLda INSERT INTO ... SELECT ... kabi struktura mavjud . Ushbu dizayn bir vaqtning o'zida bitta jadvaldan ma'lumotlarni tanlash va ularni boshqasiga kiritish imkonini beradi. Aytaylik, bizda boshqa Sellers_EU jadvali mavjud bo'lib, Evropadagi tovarlarimizni sotuvchilar ro'yxati mavjud va biz ularni umumiy jadvalga qo'shishimiz kerak Sotuvchilar . Ushbu jadvallarning tuzilishi bir xil (bir xil miqdordagi ustunlar va bir xil nomlar), ammo ma'lumotlar har xil. Buning uchun quyidagi so'rovni yozishimiz mumkin:
INSERT INTO Sotuvchilar (ID, Manzil, Shahar, Sotuvchi_nomi, Mamlakat) identifikatorni, Manzilni, Shaharni, Sotuvchi_nomini, Sotuvchilar_EU dan mamlakatni tanlang
Ichki kalitlarning qiymati takrorlanmasligiga e'tibor berishingiz kerak ( ID maydoni ), aks holda xatolik yuz beradi. SELECT iborasi ma'lumotlarni filtrlash uchun WHERE bandlarini ham o'z ichiga olishi mumkin . Shuni ham ta'kidlash kerakki, DBMS SELECT bayonotida joylashgan ustunlar nomlariga e'tibor bermaydi, buning uchun faqat ularni joylashtirish tartibi muhimdir. Shuning uchun, SELECT tufayli tanlangan birinchi ko'rsatilgan ustundagi ma'lumotlar maydon nomidan qat'i nazar, har qanday holatda INSERT INTO bayonotidan keyin ko'rsatilgan Sotuvchilar jadvalining birinchi ustuniga to'ldiriladi .
4. Ma'lumotlarni bir jadvaldan ikkinchisiga ko'chirish
Ko'pincha ma'lumotlar bazalari bilan ishlashda zaxiralash yoki o'zgartirish uchun har qanday jadvallarning nusxalarini yaratish kerak bo'ladi. Jadvalning to'liq nusxasini yaratish uchun SQL alohida SELECT INTO bayonotini taqdim etadi . Masalan, biz Sotuvchilar jadvalining nusxasini yaratishimiz kerak, so'rovni quyidagicha yozishimiz kerak bo'ladi:
Sotuvchilardan * Sellers_new INTO ni tanlang
Oldingi INSERT INTO ... SELECT ... konstruktsiyasidan farqli o'laroq, mavjud jadvalga ma'lumotlar qo'shilganda, SELECT ... INTO ... FROM ... konstruktsiyasi ma'lumotlarni yangi jadvalga ko'chiradi. Shuni ham aytish mumkinki, birinchi konstruktsiya import ma'lumotlarini, ikkinchisini esa eksport qiladi. SELECT ... INTO ... FROM ... konstruktsiyasidan foydalanganda quyidagilarni hisobga oling:
- SELECT iborasida GROUP BY va HAVING kabi istalgan bandlardan foydalanishingiz mumkin
- qo'shilish bir nechta jadvallardan ma'lumotlarni qo'shish uchun ishlatilishi mumkin
- ma'lumotlar nechta jadvaldan olinganligidan qat'iy nazar, faqat bitta jadvalga qo'shilishi mumkin.
Do'stlaringiz bilan baham: |