Windows.  Viruslar.  Noutbuklar.  Internet.  Idora.  Utilitalar.  Haydovchilar

SQL - 3-dars. Jadvallar yaratish va ularni ma'lumotlar bilan to'ldirish

Shunday qilib, biz ma'lumotlar turlari bilan tanishdik, endi biz forumimiz uchun jadvallarni yaxshilaymiz. Keling, avval ularni ko'rib chiqaylik. Va foydalanuvchilar jadvalidan boshlaylik. Bizda 4 ta ustun mavjud:

Id_user - bu butun son qiymatlari, ya'ni tur int bo'ladi, keling, uni 10 belgi bilan cheklaylik - int (10).
name - bu varchar satr qiymati, keling, uni 20 ta belgi bilan cheklaymiz - varchar(20).
email - bu varchar string qiymati, keling, uni 50 ta belgi bilan cheklaylik - varchar(50).
parol - bu varchar string qiymati, biz uni 15 belgi bilan cheklaymiz - varchar(15).

Barcha maydon qiymatlari talab qilinadi, shuning uchun siz qo'shishingiz kerak YO'Q deb yozing NULL.

Id_user int (10) NULL EMAS
varchar(20) nomi NULL EMAS
email varchar(50) NULL EMAS

Ma'lumotlar bazasining kontseptual modelidan eslaganingizdek, birinchi ustun asosiy kalitdir (ya'ni uning qiymatlari noyobdir va ular rekordni noyob tarzda aniqlaydi). O'z-o'zidan noyoblikni kuzatish mumkin, ammo bu oqilona emas. Buning uchun SQLda maxsus atribut mavjud - AUTO_INCREMENT, bu ma'lumotlarni qo'shish uchun jadvalga kirishda ushbu ustunning maksimal qiymatini hisoblab chiqadi, natijada olingan qiymatni 1 ga oshiradi va uni ustunga kiritadi. Shunday qilib, ushbu ustunda avtomatik ravishda noyob raqam hosil bo'ladi va shuning uchun NOT NULL turi ortiqcha. Shunday qilib, asosiy kalit bilan ustunga atribut tayinlaymiz:


varchar(20) nomi NULL EMAS
email varchar(50) NULL EMAS
parol varchar(15) NULL EMAS

Endi biz id_user maydoni asosiy kalit ekanligini belgilashimiz kerak. Buni SQL da amalga oshirish uchun biz foydalanamiz kalit so'z ASOSIY KALT(), kalit maydonining nomi qavs ichida ko'rsatilgan. Keling, o'zgartirishlar kiritaylik:

Id_user int (10) AUTO_INCREMENT
varchar(20) nomi NULL EMAS
email varchar(50) NULL EMAS
parol varchar(15) NULL EMAS
ASOSIY KALT (ID_user)

Shunday qilib, jadval tayyor va uning yakuniy versiyasi quyidagicha ko'rinadi:

Jadval foydalanuvchilarini yaratish (
id_user int (10) AUTO_INCREMENT,
varchar nomi (20) NULL EMAS,
email varchar(50) NULL EMAS,
parol varchar(15) NULL EMAS,
ASOSIY KALT (ID_user)
);

Endi ikkinchi jadval - mavzularni ko'rib chiqamiz. Xuddi shunday bahslashsak, bizda quyidagi maydonlar mavjud:



id_author int (10) NULL EMAS
ASOSIY KALT (id_mavzu)

Lekin bizning ma'lumotlar bazasi modelimizda id_author maydoni chet el kalitidir, ya'ni. u faqat foydalanuvchilar jadvalining id_user maydonidagi qiymatlarga ega bo'lishi mumkin. Buni SQLda ko'rsatish uchun kalit so'z mavjud EXT KALİT(), quyidagi sintaksisga ega:

FOREIGN KEY (ustun_nomi_qaysi_xorijiy_kalit) MA'LUMOTLAR ota_jadval_nomi (ota_ustun_nomi);

Keling, id_author xorijiy kalit ekanligini ko'rsatamiz:

Id_topic int (10) AUTO_INCREMENT
mavzu_nomi varchar(100) NULL EMAS
id_author int (10) NULL EMAS
ASOSIY KALT (id_mavzu)
FOREIGN KEY (id_author) MA'LUMOTLAR foydalanuvchilar (id_user)

Jadval tayyor va uning yakuniy versiyasi quyidagicha ko'rinadi:

Jadval mavzularini yaratish (
id_topic int (10) AUTO_INCREMENT,
mavzu_nomi varchar(100) NULL EMAS,

ASOSIY KALT (id_mavzu),
FOREIGN KEY (id_author) MA'LUMOTLAR foydalanuvchilar (id_user)
);

Qolgan oxirgi jadval - bu xabarlar. Bu erda hamma narsa o'xshash, faqat ikkita xorijiy kalit:

Jadval postlarini yaratish (
id_post int (10) AUTO_INCREMENT,
xabar matni NULL EMAS,
id_author int (10) NULL EMAS,
id_topic int (10) NULL EMAS,
ASOSIY KALT (id_post),
FOREIGN KEY (id_author) MA'LUMOTLAR foydalanuvchilar (id_user),
FOREIGN KEY (id_mavzu) ADABIYOTLAR mavzulari (id_mavzu)
);

E'tibor bering, jadvalda bir nechta xorijiy kalitlar bo'lishi mumkin, ammo MySQLda faqat bitta asosiy kalit bo'lishi mumkin. Birinchi darsda biz forum ma'lumotlar bazasini o'chirib tashladik, uni yana yaratish vaqti keldi.

Keling, ishga tushamiz MySQL serveri(Boshlash - Dasturlar - MySQL - My SQL Server 5.1 - MySQL Command Line Client), parolni kiriting, ma'lumotlar bazasi forumini yarating (ma'lumotlar bazasi forumini yarating;), foydalanish uchun uni tanlang (forumdan foydalaning;) va uchta jadvalimizni yarating:

E'tibor bering, bitta buyruq bir nechta satrlarda Enter tugmasi yordamida yozilishi mumkin (MySQL avtomatik ravishda belgini almashtiradi. yangi qator->) va faqat ajratuvchi (nuqtali vergul)dan keyin Enter tugmachasini bosish so'rovni bajaradi.

Esingizda bo'lsin, agar siz noto'g'ri ish qilgan bo'lsangiz, DROP iborasi yordamida har doim jadvalni yoki butun ma'lumotlar bazasini tashlab qo'yishingiz mumkin. Biror narsani tuzating buyruq qatori juda noqulay, shuning uchun ba'zida (ayniqsa dastlabki bosqich) so'rovlarni ba'zi muharrirlarda, masalan, bloknotda yozish, so'ngra ularni qora oynaga nusxalash va joylashtirish osonroq.

Shunday qilib, jadvallar yaratilgan, bunga ishonch hosil qilish uchun jamoani eslaylik jadvallarni ko'rsatish:

Va nihoyat, so'nggi xabarlar jadvalimizning tuzilishini ko'rib chiqaylik:

Endi DEFAULT maydonidan tashqari strukturaning barcha sohalarining ma'nolari aniq bo'ladi. Bu standart qiymat maydoni. Ba'zi ustunlar (yoki barchasi) uchun standart qiymatni belgilashimiz mumkin. Misol uchun, agar bizda "Uylangan" deb nomlangan maydon bo'lsa va ENUM ("ha", "yo'q") yozilsa, qiymatlardan birini standart qiymat qilish mantiqiy bo'lar edi. Sintaksis quyidagicha bo'ladi:

Uylangan raqam ("ha", "yo'q") NO NULL standart ("ha")

Bular. bu kalit so'z ma'lumotlar turidan keyin bo'sh joy bilan ajratilgan holda yoziladi va standart qiymat qavs ichida ko'rsatiladi.

Ammo keling, stolimizga qaytaylik. Endi biz jadvallarimizga ma'lumotlarni kiritishimiz kerak. Veb-saytlarda siz odatda ma'lumotni ba'zi html shakllariga kiritasiz, keyin qaysidir tildagi skript (php, java...) bu ma'lumotlarni formadan ajratib oladi va ma'lumotlar bazasiga kiritadi. U buni ma'lumotlar bazasiga ma'lumotlarni kiritish uchun SQL so'rovi orqali amalga oshiradi. Biz hali PHP-da skriptlarni qanday yozishni bilmaymiz, ammo endi biz ma'lumotlarni kiritish uchun SQL so'rovlarini yuborishni o'rganamiz.

Buning uchun operator ishlatiladi KIRITMOQ. Ikki xil sintaksisdan foydalanishingiz mumkin. Birinchi variant jadvalning barcha maydonlariga ma'lumotlarni kiritish uchun ishlatiladi:

INSERT INTO jadval_nomi VALUES ("birinchi_ustun_qiymati","ikkinchi_ustun_qiymati", ..., "oxirgi_ustun_qiymati");


Keling, foydalanuvchilar jadvaliga quyidagi qiymatlarni qo'shishga harakat qilaylik:

INSERT INTO FOYDALANUVCHILAR QIYMATLAR ("1","sergey", " [elektron pochta himoyalangan]", "1111");

Ikkinchi variant jadvalning ba'zi maydonlariga ma'lumotlarni kiritish uchun ishlatiladi:

INSERT INTO jadval_nomi ("ustun_nomi", "ustun_nomi") VALUES ("birinchi_ustun_qiymati", "ikkinchi_ustun_qiymati");


Bizning foydalanuvchilar jadvalida barcha maydonlar talab qilinadi, lekin bizning birinchi maydonimizda AUTO_INCREMENT kalit so'zi mavjud (ya'ni, u avtomatik ravishda to'ldiriladi), shuning uchun biz ushbu ustunni o'tkazib yuborishimiz mumkin:

INSERT INTO foydalanuvchilar (ism, email, parol) VALUES ("valera", " [elektron pochta himoyalangan]", "2222");

Agar bizda NULL tipidagi maydonlar bo'lsa, ya'ni. ixtiyoriy, biz ham ularni e'tiborsiz qoldirishimiz mumkin. Ammo agar siz NOT NULL qiymati bo'lgan maydonni bo'sh qoldirishga harakat qilsangiz, server xato xabarini ko'rsatadi va so'rovni bajarmaydi. Bundan tashqari, ma'lumotlarni kiritishda server jadvallar orasidagi munosabatlarni tekshiradi. Shuning uchun, tegishli jadvalda mavjud bo'lmagan xorijiy kalit bo'lgan maydonga qiymat qo'sha olmaysiz. Qolgan ikkita jadvalga ma'lumotlarni kiritish orqali buni tasdiqlaysiz.

Lekin birinchi navbatda, yana bir nechta foydalanuvchilar haqida ma'lumot qo'shamiz. Bir vaqtning o'zida bir nechta satrlarni qo'shish uchun siz shunchaki qavslarni vergul bilan ajratilgan qiymatlar bilan ro'yxatlashingiz kerak:

Endi ma'lumotlarni ikkinchi jadvalga - mavzularga kiritamiz. Hammasi bir xil, lekin id_author maydonidagi qiymatlar foydalanuvchilar jadvalida bo'lishi kerakligini yodda tutishimiz kerak:

Endi foydalanuvchilar jadvalida yo'q id_author bilan boshqa mavzu qo'shishga harakat qilaylik (chunki biz foydalanuvchilar jadvaliga atigi 5 ta foydalanuvchi qo'shdik, u holda id=6 mavjud emas):

Server xato qiladi va bunday qatorga kira olmasligini aytadi, chunki xorijiy kalit bo'lgan maydon tegishli foydalanuvchilar jadvalida bo'lmagan qiymatni o'z ichiga oladi.

Keling, xabarlar jadvaliga bir nechta qatorlarni qo'shamiz, unda bizda 2 ta xorijiy kalit borligini eslaymiz, ya'ni. Biz kiritadigan id_author va id_topic ular bilan bog'langan jadvallarda bo'lishi kerak:

Shunday qilib, bizda ma'lumotlar mavjud 3 ta jadval mavjud. Savol tug'iladi - jadvallarda qanday ma'lumotlar saqlanganligini qanday ko'rish mumkin. Buni keyingi darsda qilamiz.

Ma'lumotlar bazalari bilan ishlash jadvallarni va ulardagi ma'lumotlarni o'zgartirish bilan bevosita bog'liq. Lekin boshlashdan oldin jadvallar yaratilishi kerak. Ushbu jarayonni avtomatlashtirish uchun maxsus dastur mavjud - "JADVAL TUZISH".

Birinchi narsa!

MS SQL "CREATE TABLE" buyrug'i yordamida jadvallarni yaratish jarayonini tushunishdan oldin, funktsiyadan foydalanishdan oldin bilishingiz kerak bo'lgan narsalarga to'xtalib o'tish kerak.

Avvalo, siz jadval nomini o'ylab topishingiz kerak - u ma'lumotlar bazasidagi boshqalar bilan solishtirganda noyob bo'lishi va bir nechta qoidalarga amal qilishi kerak. Ism (a-z) harfi bilan boshlanishi kerak, undan keyin har qanday harf, raqamlar yoki pastki chiziq qo'yilishi kerak, lekin natijada ibora bo'lmasligi kerak ajratilgan so'z. Jadval nomining uzunligi 18 belgidan oshmasligi kerak.

Nom haqida qaror qabul qilib, siz tuzilmani ishlab chiqishingiz kerak: ustunlar uchun nomlarni o'ylab ko'ring, ularda ishlatiladigan ma'lumotlar turi va qaysi maydonlarni to'ldirish kerakligi haqida o'ylang. Bu erda darhol xorijiy va asosiy kalitlarning maydonlarini, shuningdek ma'lumotlar qiymatlari bo'yicha mumkin bo'lgan cheklovlarni aniqlashga arziydi.

Jadvalning qolgan nuanslari juda oson tuzatilishi mumkin, shuning uchun jadvalni yaratish bosqichida ular to'liq o'ylab topilmasligi mumkin.

Sintaksis

Jadvalning tuzilishini ishlab chiqqandan so'ng, uni yaratishga o'tishingiz mumkin. Buni SQL-ning "CREATE TABLE" funksiyasi yordamida juda oddiy bajarish mumkin. Unda foydalanuvchi oldindan ixtiro qilingan jadval nomini va ustunlar ro'yxatini, ularning har biri uchun turi va nomini ko'rsatishi kerak. Funktsiya sintaksisi quyidagicha:

JADVAL YARASH jadval_nomi
((ustun_nomi ma'lumotlar turi …| jadval_cheklovi)
[,(ustun_nomi ma'lumotlar turi …| jadval_cheklovi)]…)

Funktsiyani qurishda ishlatiladigan argumentlar quyidagilarni anglatadi:

  • jadval_nomi - jadval nomi
  • ustun_nomi - ustun nomi
  • ma'lumotlar turi - ushbu sohada ishlatiladigan ma'lumotlar turi
  • DEFAULT ustunda ishlatiladigan standart ifodadir.

Yana ikkita funktsiya argumentidan foydalanish ham mumkin:

  • column_constraint - ustun parametrlari
  • table_constraint - jadval parametrlari

Ularda foydalanuvchi ish uchun zarur bo'lgan cheklovlarni yoki jadvalni to'ldirish shartlarini belgilashi mumkin.

Jadvallarni yaratish xususiyatlari

Funktsiya bilan so'rov yozishda ba'zan maydonlarni to'ldirish qoidalarini o'rnatish kerak bo'ladi. Buning uchun muayyan shartlar to'plamini belgilaydigan maxsus funksiya atributlarini qo'shishingiz kerak.

Hujayrada bo'sh qiymat bo'lishi mumkinligini aniqlash uchun ustun nomi va turini ko'rsatgandan so'ng, kalit so'zlardan birini kiritishingiz kerak: NULL (bo'lishi mumkin). bo'sh qiymatlar) yoki NO NULL (maydon to'ldirilishi kerak).

Jadvalni yaratishda ko'p hollarda ikkita bir xil bo'lmasligi uchun har bir yozuvni birlashtirish kerak. Buning uchun ko'pincha qatorlarni raqamlash qo'llaniladi. Va foydalanuvchidan jadvaldagi oxirgi raqamni bilishni talab qilmaslik uchun "JADVAL TUZISH" funksiyasida tegishli maydondan keyin "Birlamchi kalit" kalit so'zini yozib, asosiy kalit ustunini ko'rsatish kifoya. Ko'pincha, jadvallar bir-biri bilan birlashtirilgan asosiy kalit orqali amalga oshiriladi.

Asosiy kalit bilan bog'lanishni ta'minlash uchun xususiyat ishlatiladi xorijiy kalit"Xorijiy kalit". Ustun uchun ushbu xususiyatni belgilash orqali siz ushbu maydon bir xil yoki boshqa jadvalning asosiy kalit ustunidagi qiymatlardan biriga mos keladigan qiymatni o'z ichiga olishiga ishonch hosil qilishingiz mumkin. Shunday qilib, ma'lumotlarning izchilligini ta'minlash mumkin.

Belgilangan to'plam yoki ta'rifga qarshi tekshirishni ta'minlash uchun CHECK atributidan foydalaning. U funktsiya argumentlari ro'yxatida oxirgi yoziladi va ba'zi shaxsiy parametrlarga ega mantiqiy ifoda. Uning yordami bilan siz mumkin bo'lgan qiymatlar ro'yxatini cheklashingiz mumkin, masalan, "Gender" jadvali maydonida faqat "M" va "F" harflari yordamida.

Taqdim etilganlarga qo'shimcha ravishda, funktsiya ko'proq o'ziga xos xususiyatlarga ega, ammo ular amalda kamroq qo'llaniladi.

Misollar

Funktsiyaning ishlash tamoyilini to'liq tushunish uchun CREATE TABLE (SQL) qanday ishlashini amalda ko'rib chiqishga arziydi. Quyidagi misol rasmda ko'rsatilgan jadvalni yaratadi:

JADVAL YARATISH Maxsus
(ID CHAR(10) NO NULL Asosiy kalit,
Maxsus_nom CHAR(20),
Maxsus_manzil CHAR(30),
Maxsus_shahar CHAR(20),
Maxsus_mamlakat CHAR(20),
ArcDate CHAR(20))

Ko'rib turganingizdek, hujayradagi qiymat yo'qligi parametri (NULL) o'tkazib yuborilishi mumkin, chunki u sukut bo'yicha ishlatiladi.

Agar siz SQL so'rovi orqali qaytarilgan ma'lumotlar to'plamini saqlashingiz kerak bo'lsa, unda ushbu maqola siz uchun qiziqarli bo'ladi, chunki biz uni ko'rib chiqamiz. SELECT INTO bayonoti, qaysi yordamida Microsoft SQL Server, siz yangi jadval yaratishingiz va uni natija bilan to'ldirishingiz mumkin SQL so'rovi.

Biz, albatta, SELECT INTO bayonotining tavsifidan boshlaymiz va keyin misollarga o'tamiz.

Transact-SQL-da SELECT INTO bayonoti

TANLASH– yangi jadval yaratuvchi va unga SQL so‘rovidan olingan qatorlarni kirituvchi T-SQL tilidagi ko‘rsatma. Jadval tuzilishi, ya'ni. ustunlar soni va nomlari, ma'lumotlar turlari va amal qilish xususiyatlari NULL qiymatlar, ustunlarga asoslanadi ( ifodalar) SELECT bayonotidagi manba tanlash ro'yxatida ko'rsatilgan. Odatda, SELECT INTO bayonoti bir nechta jadvallar va ko'rinishlardagi ma'lumotlarni, jumladan, ba'zi hisoblash ma'lumotlarini bitta jadvalga birlashtirish uchun ishlatiladi.

SELECT INTO iborasidan foydalanish uchun siz yangi jadval yaratiladigan maʼlumotlar bazasida CREATE TABLE ruxsatiga ega boʻlishingiz kerak.

SELECT INTO bayonotida ikkita argument mavjud:

  • new_table — yangi jadvalning nomi;
  • fayllar guruhi - fayllar guruhi. Agar argument ko'rsatilmagan bo'lsa, standart fayl guruhi ishlatiladi. Bu imkoniyat Microsoft SQL Server 2017 dan boshlab mavjud.

SELECT INTO bayonoti haqida muhim fikrlar

  • Yo'riqnoma joriy serverda jadval yaratish uchun ishlatilishi mumkin masofaviy serverda jadval yaratish qo'llab-quvvatlanmaydi;
  • Siz yangi jadvalni joriy ma'lumotlar bazasi va joriy serverdan yoki boshqa ma'lumotlar bazasidan yoki uzoq serverdan ma'lumotlar bilan to'ldirishingiz mumkin. Masalan, ma'lumotlar bazasining to'liq nomi sifatida belgilang database_schema.jadval_nomi yoki uzoq server bo'lsa, bog'langan_server.database.schema.jadval_nomi;
  • Yangi jadvaldagi identifikatsiya ustuni IDENTITY xususiyatini meros qilib olmaydi, agar: bayonotda JOIN, UNION, GROUP BY bandi, agregat funksiya bo‘lsa yoki identifikatsiya ustuni iboraning bir qismi bo‘lsa, masofaviy ma’lumotlar manbasidan olingan bo‘lsa. , yoki roʻyxat tanlovida bir necha marta paydo boʻladi. Umuman shunga o'xshash holatlar identifikatsiya ustuni IDENTITY xususiyatini meros qilib olmaydi va NOT NULL sifatida yaratilgan;
  • SELECT INTO iborasidan, hatto manba jadvali boʻlingan boʻlsa ham, boʻlingan jadval yaratish uchun foydalana olmaysiz;
  • Siz oddiy jadvalni, shuningdek, vaqtinchalik jadvalni yangi jadval sifatida belgilashingiz mumkin, lekin jadval o'zgaruvchisi yoki jadval qiymati parametrini ko'rsata olmaysiz;
  • Hisoblangan ustun, agar SELECT INTO bayonotining tanlov ro'yxatida mavjud bo'lsa, yangi jadvalda u odatiy holga keladi, ya'ni. hisoblanmaydi;
  • SELECT INTO dan COMPUTE bandi bilan foydalanish mumkin emas;
  • SELECT INTO-dan foydalanib, indekslar, cheklovlar va triggerlar yangi jadvalga o'tkazilmaydi, agar kerak bo'lsa, bayonot bajarilgandan keyin qo'shimcha ravishda yaratilishi kerak;
  • ORDER BY bandi yangi jadvaldagi qatorlar belgilangan tartibda kiritilishiga kafolat bermaydi.
  • FILESTREAM atributi yangi jadvalga o'tkazilmaydi. Yangi jadvaldagi BLOB FILESTREAM obyektlari varbinary(max) tipidagi BLOB obyektlari bo‘ladi va 2 GB chegarasiga ega bo‘ladi;
  • SELECT INTO operatsiyalari paytida tranzaktsiyalar jurnaliga yozilgan ma'lumotlar miqdori tiklash modeliga bog'liq. Ommaviy qayd qilingan tiklash modelidan foydalanadigan ma'lumotlar bazalarida va oddiy model, SELECT INTO ni o'z ichiga olgan ommaviy operatsiyalar minimal tarzda qayd etiladi. Shu sababli, SELECT INTO bayonoti jadval yaratish uchun alohida bayonotlarga va uni ma'lumotlar bilan to'ldirish uchun INSERT operatorlariga qaraganda samaraliroq bo'lishi mumkin.

SELECT INTO dan foydalanishga misollar

Men barcha misollarni Microsoft SQL Server 2016 Express DBMS da ishga tushiraman.

Dastlabki ma'lumotlar

Birinchidan, ikkita jadval tuzamiz va ularni ma'lumotlar bilan to'ldiramiz, biz ushbu jadvallarni misollarda birlashtiramiz;

JADVAL YARATING TestJadval(IDENTITY(1,1) NO NULL, NO NULL, (100) NO NULL, NULL) ON GO JADVAL YARATISH TestTable2( IDENTITY(1,1) NO NULL, (100) NO NULL) BOShQA Test jadvaliga qo'shing QIYMATLAR (1,"Klaviatura", 100), (1, "Sichqoncha", 50), (2, "Telefon", 300) Test Jadvaliga 2 QIYMATLARGA KIRISH (" Kompyuter komponentlari"), ("Mobil qurilmalar") Test jadvalidan * TANLASH * Test jadvalidan 2-TANLASHGA o'ting

1-misol - Ma'lumotlarni birlashtirish bilan SELECT INTO yordamida jadval yaratish

Tasavvur qilaylik, ikkita jadvalni birlashtirib, olingan natijani yangi jadvalda saqlashimiz kerak ( masalan, ular tegishli bo'lgan toifa nomi bilan mahsulotlarni olishimiz kerak).

Amaliyot SELECT INTO SELECT T1.ProductId, T2.CategoryName, T1.MahsulotName, T1.Price INTO TestTable3 INTO TestJadval T1 FROM CHP BIRIN TestTable T2 T2 ON T1.CategoryId = T2.CategoryId --ROMT SELECT ma'lumotlarini tanlash * yangi jadvaldan Test3


Natijada TestTable3 deb nomlangan jadval yaratdik va uni birlashtirilgan ma'lumotlar bilan to'ldirdik.

2-misol - Ma'lumotlarni guruhlash bilan SELECT INTO yordamida vaqtinchalik jadval yaratish

Keling, aytaylik, bizga guruhlangan ma'lumotlar kerak, masalan, ma'lum bir toifadagi mahsulotlar soni haqida ma'lumot va biz bu ma'lumotlarni vaqtinchalik jadvalda saqlashimiz kerak, masalan, biz bu ma'lumotlardan faqat SQL bayonotlari, shuning uchun biz to'liq jadval yaratishimiz shart emas.

SELECT INTO SELECT T2.CategoryName, COUNT(T1.ProductId) AS CntProduct INTO INTO #TestTable INTO INTO TestTable T1 FROM TestTable 2 T2 ON T1.CategoryId = T2.Category. - Vaqtinchalik jadvaldan ma'lumotlarni olish #TESTTable


Ko'rib turganingizdek, biz #TestTable vaqtinchalik jadvalini yaratishga va uni guruhlangan ma'lumotlar bilan to'ldirishga muvaffaq bo'ldik.

Shunday qilib, biz "T-SQL dasturchining yo'li" kitobimda T-SQL tilidagi SELECT INTO bayonotini ko'rib chiqdik, men barcha konstruktsiyalar haqida batafsil gapiraman; T-SQL tili (Men uni o'qishni tavsiya qilaman), va bu hozircha!

Agar xatolikni sezsangiz, matn qismini tanlang va Ctrl+Enter tugmalarini bosing
ULOSING: