Darsliklar SQL Murakkab SELECT va INSERT ifodalar (SELECT INTO, INSERT INTO SELECT)

SQL SQL Murakkab SELECT va INSERT ifodalar (SELECT INTO, INSERT INTO SELECT)

Murakkab SELECT va INSERT ifodalar (SELECT INTO, INSERT INTO SELECT) — bir so’rov natijasini boshqa jadvalga ko’chirish yoki nusxa yaratish vositalari. Zaxira nusxa olish, ma’lumotni bir jadvaldan boshqasiga uzatish yoki filtrlangan natijadan yangi jadval yaratish — bularning bari shu ifodalar orqali bajariladi.

SELECT INTOso’rov natijasidan yangi jadval yaratadi. INSERT INTO SELECT — so’rov natijasini mavjud jadvalga qo’shadi.

Boshlang’ich jadval

Quyidagi foydalanuvchilar jadvali bilan ishlaymiz:

id ism shahar
1 Farrux Toshkent
2 Master Sherkulov Toshkent
3 Aziz Samarqand

SELECT INTO — yangi jadval yaratish

SELECT INTO so’rov natijasidan yangi jadval yaratadi. Masalan, faqat Toshkentdagilardan yangi jadval:

SELECT ism, shahar
INTO toshkent_foydalanuvchilar
FROM foydalanuvchilar
WHERE shahar = 'Toshkent';

Natijada toshkent_foydalanuvchilar nomli yangi jadval yaratildi:

ism shahar
Farrux Toshkent
Master Sherkulov Toshkent

SELECT ... INTO yangi_jadval — so’rov natijasini yangi jadvalga saqladi. Bu zaxira nusxa olish yoki ma’lumotni ajratishda foydali.

INSERT INTO SELECT — mavjud jadvalga qo’shish

INSERT INTO SELECT so’rov natijasini mavjud jadvalga qo’shadi. Faraz qilaylik, arxiv jadvali allaqachon bor:

INSERT INTO arxiv (ism, shahar)
SELECT ism, shahar
FROM foydalanuvchilar
WHERE shahar = 'Samarqand';

Bu so’rov Samarqanddagilarni arxiv jadvaliga qo’shdi:

ism shahar
Aziz Samarqand

INSERT INTO ... SELECT — bir jadvaldan olingan qatorlarni boshqasiga ko’chiradi. SELECT INTO dan farqi: bu yerda jadval oldindan mavjud bo’lishi kerak.

Ikki ifodani solishtirish

Ikki ifodaning farqini jadvalda ko’ramiz:

Ifoda Jadval Vazifasi
SELECT INTO yangi yaratadi natijadan yangi jadval
INSERT INTO SELECT mavjud bo’lishi kerak natijani mavjudga qo’shadi

Amaliy qo’llanish

Bu ifodalar real vazifalarda ishlatiladi: SELECT INTO — jadvalning tez zaxira nusxasini olishda, INSERT INTO SELECT — eskirgan yozuvlarni arxiv jadvaliga ko’chirishda. Ikkovi ham katta hajmdagi ma’lumotni bir qatorda samarali ko’chiradi — buni qo’lda qilish mumkin emas.

Xulosa

Bu bo’limda SELECT INTO bilan natijadan yangi jadval yaratishni, INSERT INTO SELECT bilan natijani mavjud jadvalga qo’shishni va ularning farqini ko’rib chiqdik. Bu ifodalar ma’lumotni ko’chirish va zaxiralashning kuchli vositasidir. Keyingi darsda CASE va NULL ifodalariga o’tamiz.