Select into

Ushbu qo'llanmada siz so'rov natijalari to'plamidan yangi jadval yaratish uchun PostgreSQL SELECT INTO bayonotidan qanday foydalanishni o'rganasiz.

Agar siz ma'lumotlarni o'zgaruvchilarga tanlash usulini izlayotgan bo'lsangiz, uni PL/pgSQL SELECT INTO bayonotiga qarang.

PostgreSQL SELECT INTO bayonoti yangi jadval yaratadi va so'rovdan qaytarilgan ma'lumotlarni jadvalga kiritadi.

Yangi jadvalda so'rov natijalari to'plamining ustunlari bilan bir xil nomlarga ega ustunlar bo'ladi. Oddiy SELECT bayonotidan farqli o'laroq, SELECT INTO bayonoti mijozga natijani qaytarmaydi.

Quyida PostgreSQL SELECT INTO bayonotining sintaksisi tasvirlangan:

SELECT
    select_list
INTO [ TEMPORARY | TEMP | UNLOGGED ] [ TABLE ] new_table_name
FROM
    table_name
WHERE
    search_condition;

Natijalar to'plamidan olingan struktura va ma'lumotlar bilan yangi jadval yaratish uchun siz INTO kalit so'zidan keyin yangi jadval nomini ko'rsatasiz.

TEMP yoki TEMPORARY kalit so'zi ixtiyoriy; o'rniga vaqtinchalik jadval yaratish imkonini beradi.

Agar mavjud bo'lsa, UNLOGGED kalit so'zi yangi jadvalni o'chirilgan jadvalga aylantiradi.

WHERE bandi asl jadvallardan yangi jadvalga kiritilishi kerak bo'lgan qatorlarni belgilash imkonini beradi. WHERE bandidan tashqari siz SELECT INTO iborasi uchun SELECT iborasida INNER JOIN, LEFT JOIN, GROUP BY va HAVING kabi boshqa bandlardan ham foydalanishingiz mumkin.

PL/pgSQL da SELECT INTO iborasidan foydalana olmaysiz, chunki u INTO bandini boshqacha izohlaydi. Bunday holda siz SELECT INTO iborasidan koʻra koʻproq funksionallikni taʼminlovchi CREATE TABLE AS iborasidan foydalanishingiz mumkin.

PostgreSQL SELECT INTO misollar

Namoyish uchun biz namunaviy ma'lumotlar bazasidagi film jadvalidan foydalanamiz.

Quyidagi bayonot film_r deb nomlangan yangi jadvalni yaratadi, unda film jadvalidan 5 kunlik ijara muddati va R reytingiga ega filmlar mavjud.

SELECT
    film_id,
    title,
    rental_rate
INTO TABLE film_r
FROM
    film
WHERE
    rating = 'R'
AND rental_duration = 5
ORDER BY
    title;

Jadval yaratilishini tekshirish uchun film_r jadvalidan ma'lumotlarni so'rashingiz mumkin:

SELECT * FROM film_r;

Quyidagi bayonot uzunligi 60 daqiqadan kam bo'lgan filmlarni o'z ichiga olgan short_film nomli vaqtinchalik jadvalni yaratadi.

SELECT
    film_id,
    title,
    length 
INTO TEMP TABLE short_film
FROM
    film
WHERE
    length < 60
ORDER BY
    title;

Quyida short_film jadvalidagi ma'lumotlar ko'rsatilgan:

SELECT * FROM short_film;

Ushbu qo'llanmada siz so'rov natijalari to'plamidan yangi jadval yaratish uchun PostgreSQL SELECT INTO bayonotidan qanday foydalanishni o'rgandingiz.

© postgresqltutorial.com

Last updated