Visual Basic® .NET bilan ma'lumotlar bazalarini boshqarish kitobidan muallif Makmanus Jeffri P

SUM funksiyasi Sizning umumlashtirish qobiliyatingiz shunchaki yozuvlarni sanash bilan cheklanmaydi. SUM funksiyasidan foydalanib, istalgan raqamli maydonlar uchun barcha qaytarilgan yozuvlar uchun xulosa natijalarini yaratishingiz mumkin. Misol uchun, jami hosil qiluvchi so'rovni yaratish

Badiiy kitoblar dizayneri tezkor qo'llanmasidan muallif muallif noma'lum

Badiiy kitoblar dizayneridan 3.2. Tezkor qoʻllanma muallif Izekbis

uni() funktsiyasi Belgini unicode raqami bo'yicha topish/almashtirish uni() funksiyasi yordamida ham amalga oshirilishi mumkin.Uni() funksiyasiga misol: Boouni(107,32)Dizayner Kitob so'zini topadi

UNIX kitobidan: Jarayonning o'zaro ta'siri muallif Stiven Uilyam Richard

pthread_rwlock_init funktsiyasi Birinchi funksiya pthread_rwlock_init o'qish-yozish blokirovkasini dinamik ravishda ishga tushiradi. Uning matni 8.2.7-8 ro'yxatda ko'rsatilgan.Bu funksiya bilan atributlarni belgilash qo'llab-quvvatlanmaydi, shuning uchun attr ko'rsatkichi null ekanligini tekshiramiz.9-19 Biz

XSLT kitobidan muallif Holzner Stiven

sem_open Function Listing 10-22 yangi semani yaratuvchi yoki mavjudini ochadigan sem_open funksiyasining matnini ko'rsatadi.10-22 Listing. Funktsiya sem_open//my_pxsem_fifo/sem_open.c1 #include "unpipc.h"2 #include "semaphore.h"3 #include /* ixtiyoriy argumentlar roʻyxati uchun */4 mysem_t *5 mysem_open(const char *pathname, int)

XSLT texnologiyasi kitobidan muallif Valikov Aleksey Nikolaevich

Sem_close funksiyasi Sem_close funksiyasining matni 10.23.11-15 Listingda ko'rsatilgan. Biz ikkala tutqichni yopamiz va sem_t turi uchun ajratilgan xotirani bo'shatamiz Listing 10.23. Funktsiya sem_close//my_pxsem_fifo/sem_close.s1 #include "unpipc.h"2 #include "semaphore.h"3 int4 mysem_close(mysem_t *sem)5 (6 if (sem->sem_magic != SEM_MAGIC) (7 xato =

PGP kitobidan: Ochiq kalit ma'lumotlarini kodlash va shifrlash. muallif Levin Maksim

concat() Concat funksiyasi unga uzatilgan barcha satrlarni birlashtiradi va natijada olingan qatorni qaytaradi: concat(string 1, string string, ...) qaysi

Badiiy kitoblar dizayneridan 3.2. Muallifning kitob yaratish bo'yicha qo'llanma

“Kriptografiyaga kirish” kitobidan muallif Filipp Zimmermann

PascalABC.NET tilining tavsifi kitobidan muallif RuBoard jamoasi

Muallifning kitobidan

Muallifning kitobidan

Muallifning kitobidan

hash funktsiyasi. PGP dan foydalanishning yana bir muhim afzalligi shundaki, PGP "xesh-funksiya" deb ataladigan funksiyadan foydalanadi, u shunday ishlaydiki, ma'lumotlar har qanday o'zgarganda, hatto bir bitga bo'lsa ham, "xesh funktsiyasi" natijasi shunday bo'ladi. butunlay

Muallifning kitobidan

uni() funktsiyasi Belgini unicode raqami bo'yicha topish/almashtirish uni() funksiyasi yordamida ham amalga oshirilishi mumkin.Uni() funksiyasiga misol: Boouni(107,32)Dizayner Kitob so'zini topadi

Muallifning kitobidan

Hash funktsiyasi Biroq, yuqorida tavsiflangan sxema bir qator muhim kamchiliklarga ega. U juda sekin ishlaydi va juda ko'p ma'lumot ishlab chiqaradi - asl ma'lumotlardan kamida ikki baravar ko'p. Bunday sxemani takomillashtirish transformatsiya jarayoniga kirishdir

Muallifning kitobidan

Method Concat Usullarning tavsifi Usullar T. funksiyaning ketma-ketligi uchun berilgan Concat(ikkinchi: T ning ketma-ketligi): T ning ketma-ketligi; Birinchisining oxiriga ikkinchisini qo'shish va natijani qaytarish orqali ikkita ketma-ketlikni birlashtiradi


ushbu maqolani nashr etishga faqat maqola muallifining saytiga havola bilan ruxsat beriladi

MySQL da GROUP_CONCAT().
Bugun men Mysql-dagi qiziqarli xususiyat haqida gapirmoqchiman.
Ma'lum bo'lishicha, buni juda kam dasturchilar biladi, nega kam odam foydalanishini bilmayman, lekin men o'nlab do'stlarim bilan suhbatlashdim va bu haqda yarmidan kamrog'i bilar edi. GROUP_CONCAT.
Bu funksiya shunday ishlaydi CONCAT_WS(Satrlarni chegaralovchi bilan birlashtiradi), faqat farqli o'laroq CONCAT_WS jadvaldan tanlov natijalarini birlashtira oladi.

Sintaksis
GROUP_CONCAT( expr [,expr ...]
[,col_name ...]]
)

Sizga uy hayvonlari bilan umumiy misol keltiraman.
Misol uchun, har bir odamga o'ziga tegishli bo'lgan hayvon tayinlangan jadval mavjud.

`test` JADVAL YARATISH (
`id` int(11) NULL EMAS auto_increment,
`name` varchar(250) NULL EMAS, # - shaxsning ismi
`pet` varchar(250) NULL EMAS, # bu uy hayvonlari
ASOSIY KALT (`id`)
);

Jadvaldagi ma'lumotlar shunday
masha - to'tiqush
yorug'lik - mushuk
masha - hamster
Yuliya - it
engil - it
masha - baliq

Ushbu jadvaldan shuni ko'rish mumkin
Mashada to'tiqush, hamster va baliq bor,
Svetaning mushuk va iti bor,
Va Yuliyaning faqat iti bor.
Shunday qilib, stoldagi barcha odamlarni ko'rsatish vazifasi bor va har birining yonida qanday hayvonlar borligini ko'rsatish kerak.

Keling, shunday iltimos bilan murojaat qilaylik
`name`, GROUP_CONCAT(`pet`) ni `pet` sifatida tanlang
FROM `test`
`nom` bo`yicha GURUHLASH

Natija shunday
Masha - to'tiqush, hamster, baliq
chiroqlar - mushuk, it
Yuliya - it

Bu har bir odamning barcha hayvonlarining birlashmasi bo'lib chiqdi.
`nom` bo`yicha GURUHLASH oxirida u bir xil nomlarni guruhlaydi, dublikatlarni yo'q qiladi deyish mumkin.

Albatta, misol juda hayotiy emas, bunday ortiqcha ma'lumotlar tez-tez topilmaydi, odatda nomlar bir jadvalda, hayvonlar ikkinchi va havolalar uchinchi jadvalda saqlanadi.
Bu faqat bunday holat uchun va foydali bo'ladi GROUP_CONCAT().
Men ichki so'rov bilan misol keltiraman.


("test"dan GROUP_CONCAT(`pet`) ni `pet` sifatida tanlang, bu erda `name` = `name1`)`uy hayvonlari` sifatida
FROM `test`

Ushbu misolda hayvonlarning kombinatsiyalangan qutisini yaratish uchun ichki tanlovdan foydalaniladi...
AYRIQ bir xil nomlarni bekor qiladi. Maydon nomi biz uni ichki so'rovda to'g'ri hal qilish uchun nomini o'zgartiramiz.
Bu misol allaqachon hayotdan olingan misolga o'xshaydi.
Ismlar ko'rsatiladi, bir xillarini tashlab yuboriladi, har bir ism uchun hayvonlarning ro'yxati chiqariladi.
Hammasi juda oddiy. Har bir ismni olishingiz va keyin har bir ism uchun hayvonlarni tortib olishingiz shart emas, barchasi bitta so'rovda amalga oshiriladi.

Endi bu qiyin GROUP_CONCAT haqida batafsil.

Ajratuvchi.
Standart ajratuvchi verguldir.
Agar kerak bo'lsa, siz boshqa ajratgichni belgilashingiz mumkin

DISTINCT `ism`ni `name1` sifatida tanlang,
(`test`dan GROUP_CONCAT(`pet` SEPARATOR "::") ni `pet` sifatida tanlang, bu erda `name` = `name1`)``pet` sifatida
FROM `test`

Endi hayvonlar vergul bilan emas, balki qo'sh nuqta bilan ajratiladi ( :: )

Va bu funktsiyaning qolgan imkoniyatlari tasvirlangan sintaksisdan (bir xil yozuvlarni saralash va istisno qilish) aniq.

Bir nechta umidsizliklar.

Limit 1024.
Bu funksiya chiqish ma'lumotlari miqdori bo'yicha cheklovga ega.
Odatiy bo'lib, har bir birlashma uchun 1024 belgi - har bir chiqish satriga.
Agar yopishtirilgan ma'lumotlarning o'lchami kattaroq bo'lsa, u holda u qisqartiriladi.
O'lchamni kengaytirish uchun siz buyruqni bajarishingiz kerak SET group_concat_max_len =4096;
Agar sizda imtiyozlar mavjud bo'lsa, unda siz olingan ma'lumotlar miqdorini 4096 va boshqalarga kengaytirasiz.
Ammo ko'pincha oddiy xostingda bunday imtiyozlar yo'q.

Faqat matn.
Keyingi xususiyat GROUP_CONCAT u faqat satrlar bilan ishlaydi.
Agar siz raqamlarni bir-biriga yopishtirmoqchi bo'lsangiz, unda siz muvaffaqiyat qozonolmaysiz, raqamni matnga aylantirishingiz kerak.

Aytaylik, siz hayvonlarni emas, balki identifikatorlar ro'yxatini olishni xohlaysiz.
Odatiy variant ishlamaydi, siz raqamni matnga aylantirishingiz kerak, masalan, bu kabi

DISTINCT `ism`ni `name1` sifatida tanlang,
("test"dan "nom" = "ism1") "pet_id" sifatida CONVERT(GROUP_CONCAT(`id') cp1251 FOYDALANISH) ni tanlang.
FROM `test`

Bu erda qiziqarli xususiyatning umumiy ko'rinishi GROUP_CONCAT().
Uni ma'lumot uchun ishlatish eng yaxshisidir, siz mutlaqo barcha ma'lumotlarni olishingizga ishonmasligingiz kerak, chunki ma'lumotlar chegarada belgilanganidan ko'proq bo'lishi mumkin.
Masalan, siz sahifada mahsulotlar ro'yxatini ko'rsatasiz.
Har bir elementning narxi, mavjudligi, vazni va qisqacha tavsifi mavjud. Va bu erda, masalan, har bir mahsulot uchun ushbu mahsulotning qaysi ranglarda mavjudligini ko'rsatishingiz mumkin.
Ushbu sahifada juda ko'p mahsulotlar ko'rsatilganligi sababli, mahsulot haqida qo'shimcha ma'lumotlar qisqacha ko'rsatilishi kerak va bu erda siz mahsulot qanday ranglarda mavjudligi haqida ma'lumot olishingiz mumkin. Masalan, ushbu mahsulotning eng mashhur 5 ta rangini ko'rsating.
Shubhasiz, agar sahifada 20 ta mahsulot ko'rsatilsa, unda siz hech qachon har bir mahsulot uchun 1024 belgidan kattaroq ranglar haqida ma'lumot ko'rsatmaysiz, sahifani qayta yuklashning ma'nosi yo'q.
Bu erda bunday joylarda foydalanish mantiqiy GROUP_CONCAT().

Izohlar

27.11.2008 Evgeniy
Yomon sovuq emas

07.12.2008 Viola
Ajoyib imkoniyat. Men bu haqda bilardim, lekin cheklov borligini bilmasdim. Nima uchun matnga o'zgartirish kerakligi aniq emas? Men faqat identifikatorlar ro'yxatini oldim va konvertatsiya qilinmadi.

07.12.2008 Vadim
Viola, sizning identifikatorlaringiz matn maydonlarida saqlangan bo'lishi kerak.
Agar bazadagi maydon raqamli turga ega bo'lsa, u holda bu funksiya konvertatsiyasiz hech narsani ko'rsatmaydi ... U matnga aylantirilishi kerak.

07.12.2008 Viola
Yo'q, menda ID maydoni bor edi - int (11), avtomatik o'sish, asosiy kalit. Ehtimol, haqiqat shundaki, tanlovdan so'ng men matnga yashirin konvertatsiya qilaman - natijani satrga yopishtiraman. Ammo tanlovning o'zida bunday narsa yo'q va u kerakli natijani qaytaradi.

24.12.2008 Vadim
Xo'sh, nima bo'lganini aytish qiyin, ehtimol bu sizning yashirin konvertatsiyalaringiz tufaylidir ...
Lekin men o'zim mysql ning uch xil versiyasini tekshirib ko'rdim va matnga aylantirish kerak, aks holda u qiymat bermaydi, balki maydon haqida ba'zi ma'lumotlarni beradi.

24.02.2009 Serxio
Viola masalani gapiradi, men ham Intni normal chiqaraman. Versiya 5.1

24.04.2009 Gumer
RAHMAT!!!

Bu juda zarur edi.

16.06.2009 Nigina
Menda xatolik bor, garchi men hamma narsani to'g'ri ko'chirib olganman;)

18.10.2009 tyman8992
mysql 5.0.51b, InnoDB jadvali - INT(11) konvertatsiyasi talab qilinadi, faqat tekshirildi.

21.10.2009 Artur
Rahmat.
Natija Exceldagi pivot jadvalga o'xshash formatda ko'rsatildi.

21.12.2009 Semyon
Yo'lda yana bir xususiyat mavjud.
Birlashma natijasi 255 dan katta bo'lishi mumkin emas. Bu juda achinarli :(

21.12.2009 admin
255 etarli emas, balki 1024?

19.01.2010
m bir nechta maydonlarni birlashtirib, chegaralovchi qo'shishingiz mumkin
masalan, u yaxshi ishlaydi
msisdn bo'yicha msisdn, group_concat(hafta,"=",hafta bo'yicha zaryadlash tartibi) ni y2009 guruhidan tanlang
380xxxxxxxxxx 40=8,41=4,44=8,45=8,46=4,47=1,50=8,51=9,52=4,53=1

09.03.2010 Dmitriy
Lekin men so'rovni ololmayapman

SELECT product.id,title, catid, GROUP_CONCAT(`idSpecific`) AS `maxsus`
"mahsulot"dan
CHAPGA QO'SHILING `specification_items` ON'product.id = idProduct
WHERE catid =46 GROUP BY BY

Natija aniq

09.03.2010 admin
bu funksiya faqat satrlar bilan ishlaydi.
va sizning holatingizda, ehtimol, raqamni qayta ishlash mavjud.
bu kabi ma'lumotlarni aylantirishingiz kerak
CONVERT(GROUP_CONCAT(`idSpecific`) cp1251 FOYDALANISH)

24.03.2010 Dmitriy
O'zgartirganingiz uchun katta rahmat :)

25.03.2010 AJ
Ichki tanlovlardan qochishning biron bir usuli bormi? agar siz so'rovda bir necha yuz (ming) yozuvni ko'rsatishingiz kerak bo'lsa, u bir xil miqdordagi ichki so'rovlar bo'ladi.

26.03.2010 Viktor
Lekin JOIN orqali ichki tanlanganlardan qochish mumkin emasmi?
Garchi qo'shilish bu erda yordam bermasa ham, chunki bitta so'rovda ko'plab qatorlar tanlangan ...
ehtimol uyalar holda selekta uni qilish uchun emas.

24.05.2010 USVR
Yaxshi xususiyat! Velosipedni ixtiro qilishdan va uning ketma-ketligidan qochishga yordam berdi.

AJga, Va bu erda, nima deyishidan qat'i nazar, pastki so'rov talab qilinadi. Bitta savol shundaki, bu quyi so'rovni kim bajaradi - mijoz yoki server. Albatta, "pastki so'rov" atamasidan foydalanish mutlaqo to'g'ri emas, men ishonchim komil emas, lekin serverda butun tashqi so'rov uchun bir vaqtning o'zida faqat bitta quyi so'rov tanlovi bo'ladi, uni dasturda amalga oshirish mumkin emas. mijoz.
Qanday afsuski, cheklov bor. Bu umuman ma'nosiz va faqat biror narsadan himoya o'lchovi sifatida oqlanadi (Bufer to'lib ketishi?).

24.05.2010 USVR
Ehtimol, noto'g'ri ifodalangan
Serverda optimallashtirish mumkin (bu barcha jamlangan funktsiyalarning mohiyatidir).
Men bu funktsiya qanday optimallashtirilganligini aniq bilmayman, lekin mijozda ma'lumotlarni qayta ishlashdan ko'ra kamroq resurslarni talab qilishi aniq.

Concat (Str1,Str2,...,StrN) funksiyasi Str1,Str2,...,StrN qatorlarni parametrlar ro‘yxatida ko‘rsatilgan tartibda birlashtiradi (yoki birlashtiradi). Barcha birlashtirilgan satrlar belgilari yig'indisi 255 dan oshmasligi kerak.

DemoFunctionConcat dasturi; VarWord:string; Word1, Word2: string; Word1 boshlang:= "kompaniyalar"; Word2:="Microsoft"; Word:= Concat("Kompyuterlar",Word1,Word2); writeln(Word); ("Microsoft Computers" matni ko'rsatiladi) End.

Mustaqil hal qilish uchun vazifalar

    “a” bilan tugaydigan 1-chi tuslovchi ot berilgan. Kirish to'g'ri yoki yo'qligini tekshiring. Ushbu so'zni barcha holatlarda chop eting. Kichik dasturlarni qo'llash.

    Matndagi “cha” va “cha” so‘zlarining imlosini tekshiring. Yo'l qo'yilgan xatolar sonini va tuzatilgan qatorni chop eting. Kichik dasturlarni qo'llash.

    Berilgan y so‘zining berilgan x so‘zida necha marta kelishini hisoblovchi algoritmni yozing. Agar y so'zi x dan uzun bo'lsa, natija nolga teng bo'lishi kerak. Kichik dasturlarni qo'llash.

    Berilgan matnda alifboning har bir harfi necha marta kelishini aniqlang. Kichik dasturlarni qo'llash.

    a qatorni b qatorga teskari tartibda yozing. Ushbu satrlarning bir xil joylarida nechta bir xil harflar borligini hisoblang. Kichik dasturlarni qo'llash.

    Talabaning familiyasi, ismi va otasining ismi bo'sh joy bilan ajratilgan holda ko'rsatiladi. Uning familiyasi va bosh harflarini chop eting. Kichik dasturlarni qo'llash.

    Matndagi "zhi" va "shi" imlosini tekshiring. Yo'l qo'yilgan xatolar sonini va tuzatilgan qatorni chop eting. Kichik dasturlarni qo'llash.

    Maxsus taklif va nomni so'rang. Imlo xatolarini qidiring va ularni tuzating. Yo'l qo'yilgan xatolar sonini va tuzatilgan qatorni chop eting. Kichik dasturlarni qo'llash.

    Berilgan belgilar qatoridagi raqamlar sonini hisoblang. Kichik dasturlarni qo'llash.

    Kiritilgan belgilar qatoridagi harflar sonini hisoblang. Kichik dasturlarni qo'llash.

Berilgan belgilarning nechtasi satrda borligini bilish uchun bir nechta belgilar va satrni so'rang. Kichik dasturlarni qo'llash.

Satrlar bilan ishlashning standart protseduralari (o'chirish, kiritish, str, val).

Jarayonni kiritish

Insert protsedurasi ko'rsatilgan pozitsiyadan boshlab manba satrga boshqa qatorni kiritadi. Insert (Word1,Word2,5) buyrug'i Word1 qatorini Word2 qatoriga 5-pozitsiyadan boshlab kiritish kerakligini bildiradi.

Yo'q qilish tartibi

Delete protsedurasi ma'lum uzunlikdagi fragmentni ko'rsatilgan pozitsiyadan boshlab manba qatoridan olib tashlaydi. Shunday qilib, Delete(Word1,2,3) operatori ikkinchisidan boshlab belgilangan satrdan uch belgili fragmentni olib tashlaydi.

Protsedura Str

Str (Chislo, Stroka) ning umumiy ko'rinishi

Str protsedurasi Chislo o'zgaruvchisining raqamli qiymatini Stroka qator o'zgaruvchisiga aylantiradi. Birinchi parametrdan keyin chiqish formatiga o'xshash format bo'lishi mumkin.

DemoProcedureStr dasturi; VarWord:string; raqam: butun son; BeginNumber:= 1560; Str(Raqam:8, Word); writeln(Word); (" 1500" qatori ko'rsatiladi) End.

JarayonVal

Umumiy shakl Val (Stroka, Chislo, Code)

Val protsedurasi Stroka qiymatini butun yoki haqiqiy qiymatga aylantiradi va natijani Chisloga joylashtiradi. Stroka satr o'zgaruvchisining qiymati boshida va oxirida bo'sh joy bo'lmasligi kerak. Kod butun sonli o'zgaruvchidir. Agar konversiya jarayonida xatolik topilmasa, Kodning qiymati nolga teng, agar xato topilsa, Code birinchi xato belgisining pozitsiya raqamini o'z ichiga oladi va Chislo qiymati aniqlanmagan bo'ladi.

DemoProcedureVal dasturi; VarWord:string; Raqam, kod: butun son; Begin writeln("Raqamlar qatorini kiriting"); readln(Word); Val(So'z, raqam, kod); (satrni raqamga aylantirish) agar Kod<>0 then writeln("Xato! Pozitsiya ",Kod," raqam emas!",); oxiri.

Satrlarni birlashtirishga imkon beradi. Funktsiya chaqiruvi quyidagicha ko'rinadi:

concat(s 1 ,s 2 ,…,s n)

6.9-misol. Ikki qatorni birlashtirish uchun dastur.

dastur prog6_9;

foydalanadi wincrt;

s:=concat(s1,s2);

kiritish tartibi

Satr ichiga satr kiritadi.Prosedur chaqiruvi quyidagicha ko'rinadi:

kiritish (st1, st2, n)

bu erda st1 - kiritiladigan satr

st2 - st1 qatori kiritilgan qator

n - qo'shish boshlanadigan pozitsiya.

6.10-misol. Satrga satr kiritish dasturi.

dastur Prog6_10;

foydalanadi wincrt;

insert(st1,st2,n);

Protsedura Str

Raqamlarni satrga aylantirish imkonini beradi. Jarayon chaqiruvi quyidagicha ko'rinadi:

str( Raqam, st);

bu yerda st - qatorning doimiysi yoki sonning tasvirini o'z ichiga olgan o'zgaruvchi;

Raqam - o'zgaruvchi, raqamli qiymat satrga aylantiriladi va st o'zgaruvchisiga tayinlanadi;

6.11-misol. Raqamni satrga aylantirish uchun dastur.

dastur Prog6_11;

foydalanadi WinCrt;

readln(n); (Raqam kiritish)

str(n,st); (raqamni o'zgartirish n qator)

writeln("raqam tasviri=",st);

Nazorat savollari

1. Qator nima?

2. Satr tipidagi ma’lumotlarni qaysi identifikator aniqlaydi?

3. Ipning maksimal mumkin bo‘lgan uzunligi qancha? Tokni qanday aniqlash mumkin

ip uzunligi?

4. Qanday ifodalar qator deb ataladi?

5. Satrli ma’lumotlarda qanday amallarni bajarishga ruxsat beriladi?

6. Satrlar qanday taqqoslanadi?

7. Operandli ifodalarni yozishga qanday talablar qo‘yiladi

string va literal turi?

8. Satrdagi alohida belgilarga qanday kirish mumkin?

9. Maxsus protseduralarning maqsadi va ma'lumotlarni qayta ishlash funktsiyalari

string turi. Misollar keltiring. \

Ma'lumotlar bazalari bilan ishlash doimiy ravishda so'rovlar natijalarini olish bilan bog'liq. Va ba'zi hollarda, bu ma'lumotni ma'lum bir tarzda ko'rsatish yoki boshqa ma'lumotlar bilan birlashtirish kerak. Ushbu muammoni hal qilish uchun SQL funktsiyasi mavjud - CONCAT.

CONCAT funksiyasi nima qiladi?

Ba'zi ishlarni bajarishda qatorlarni qo'shimcha ma'lumotlar bilan yoki bir-biri bilan ulash zarurati tug'iladi. Ushbu muammoni hal qilish uchun SQL funktsiyasi mavjud - CONCAT. Uni ishlatganda ikki yoki undan ortiq satr birlashtiriladi. Bunday holda, satrlar bilan ishlashda ham, sonli o'zgaruvchilar bilan ham satrlarni birlashtirish operatsiyasi to'g'ri bajariladi.

Ba'zi ma'lumotlar bazalarida SQL CONCAT bir nechta lazzatlarga ega. Shunday qilib, MySQL-da uning analogi mavjud - CONCAT_WS. Funktsiyalar orasidagi farq unchalik katta emas: birinchisi bo'lsa, qiymati NULL bo'lgan argument bilan birlashtirilganda, birlashtirish natijasi NULL bo'ladi va birlashmaning ikkinchi variantidan foydalanganda, nol operand bo'ladi. shunchaki o'tkazib yuboring.

Funktsiya sintaksisi

CONCAT funksiyasidan foydalanilganda, SQL sintaksisi dasturchini argumentlarni operandlarni birlashtirish tartibida ishlatishga majbur qiladi. Satrni birlashtirish operatsiyasining sintaksisi juda oddiy: CONCAT kalit so'zidan keyin barcha kerakli argumentlar yoki satrlar vergul bilan ajratilgan qavslar ichida ko'rsatiladi va yopish qavsdan keyin, agar kerak bo'lsa, AS kalit so'zi va o'zgaruvchining nomi. natijasi yoziladi. CONCAT funksiyasi shabloni quyidagicha ko'rinadi:

CONCAT (1-qator, 2-satr [, 3-qator, ...]) .

Shuni ta'kidlash kerakki, funktsiya argumentlari sifatida raqamli va satr qiymatining operandlari va natijani qaytaradigan ba'zi funksiyalardan foydalanish mumkin. Masalan, SQL CONCAT operatsiyasining o'zi. Shunday qilib, operatsiya uyalar tamoyilini qo'llab-quvvatlaydi.

CONCAT-dan foydalanmasdan qanday qilish kerak?

Agar operatsiyani ishlatishdan qochish kerak bo'lsa yoki dasturchi CONCAT funktsiyasidan bexabar bo'lsa, SQL qatorlarni birlashtirishni amalga oshirishning boshqa variantini taklif qiladi. Buning uchun siz "+" operatoridan foydalanishingiz kerak, ammo bu yondashuv u bilan ishlashda e'tiborga olinishi kerak bo'lgan bir qator xususiyatlarga ega.

“+” funksiyasidan foydalanilganda operandlar sonli qiymatlar bo‘lsa, operatsiya natijasi raqamlarning oddiy qo‘shilishi bo‘ladi va agar kerak bo‘lsa, aniq konvertatsiya qilmasdan raqamni satr bilan birlashtirsa, dastur xatolik hosil qiladi. Shunday qilib, quyidagi so'rov bajarilganda, natijada "6" raqamining qiymati bo'ladi:

Aks holda, ikkala usul ham bir xil va bir xil natijani qaytaradi.