String funksiyalar ro'yxati
Sana va vaqt funksiyalardan ko'proq funktsiyalar faqat String turida mavjud. Bu SQLda CHAR(n) va VARCHAR(n) turlari bilan belgilanadi. Eng ommabop funksiyalarni eslaymiz:
| Funktsiya | Tavsif | |
|---|---|---|
| 1 | LENGTH(str) | Berilgan stringning baytlardagi uzunligini qaytaradi |
| 2 | CHAR_LENGTH(str) | Berilgan stringning char'dagi uzunligini qaytaradi |
| 3 | LOCATE(substr,str), | String ichida substringni indexOf() metodi kabi qidiradi |
| 4 | LOCATE(substr,str,pos) | String ichida substringni pos belgidan boshlab qidiradi |
| 5 | CONCAT(str1,str2,...) | Birinchiga bir nechta stringni birlashtiradi |
| 6 | SUBSTR(), SUBSTRING() | Berilgan belgilar diapazoni ichidagi substringni qaytaradi |
| 7 | LOWER(str) | Stringni quyi registrga o'zgartiradi |
| 8 | UPPER(str) | Stringni yuqori registrga o'zgartiradi |
| 9 | REPLACE() | String ichidagi substringni almashtiradi |
| 10 | MATCH() | Stringni berilgan shablon bilan mosligini tekshiradi |
| 11 | TRIM(str) | Stringning boshlang'ich va oxirgi bo'sh belgilarnini kesib tashlaydi |
| 12 | LTRIM(str) | Stringning boshlang'ich bo'sh belgilarnini kesib tashlaydi |
| 13 | RTRIM(str) | Stringning oxirgi bo'sh belgilarnini kesib tashlaydi |
| 14 | TO_BASE64(str) | Stringni Base64 ga o'zgartiradi |
| 15 | FROM_BASE64(str) | Stringni Base64 dan o'zgartiradi |
Men funksiyalarni kichik guruhlarga guruhladim, shunda ular bilan qanday ishlash kerakligini tushunish osonroq bo'ladi. Keyinchalik, har bir guruhdan bitta funksiya ko'rib chiqamiz. Stringlar bilan ishlash uchun to'liq funksiyalar ro'yxatini rasmiy hujjatlar da topishingiz mumkin.
Stringni o'zgartiramiz
Dastlab, stringni boshqa ko'rinishga oddiy tarzda o'zgartiradigan eng oddiy funksiyalarni ko'rib chiqamiz. Masalan, stringni yuqori va quyi registrga o'zgartiradi. Ularning xizmat ko'rsatish darajasi Java tilidagi shunga o'xshash funksiyalar bilan bir xil.
Shuning uchun men faqat bir nechta misollarni keltiraman.
| # | So'rov | Natija |
|---|---|---|
| 1 | SELECT LENGTH('text') | 4 |
| 2 | SELECT LENGTH('Salom') | 12 |
| 3 | SELECT LOWER('Salom') | salom |
| 4 | SELECT UPPER('Salom') | SALOM |
| 5 | SELECT SUBSTR('Salom', 2, 3) | alo |
| 6 | SELECT SUBSTR('Salom qandaysiz?', 8) | qandaysiz? |
Funksiyalar JDKdagi shunga o'xshash funksiyalar singari kutilgan tarzda ishlaydi.
Yagona nozik jihat: birinchi qatorda natija 4, emas 8. Buning sababi shundaki, so'rovda lotin belgilarini kodlash uchun 1 bayt ishlatiladi (ASCII kodlash). Ammo ma'lumotlar bazasidan ma'lumotlar bilan ishlayotganingizda, stringning uzunligi ma'lumotlar bazasi kodlash sozlamalariga bog'liq bo'ladi. Ma'lumotlar bazasi bilan ishlashda ko'p ajablanishlaringizni kuting :)
Stringlar bilan murakkab amallar
Va keling, stringlar bilan ishlashda yanada murakkab narsalarni ko'rib chiqamiz. Qiziqarli bir narsa icat qilaylik...
Keling, task jadvalidan vazifalarni ko'rsatamiz va agar vazifaning muhlati o'tib ketgan bo'lsa, vazifa tavsifiga EXPIRED! so'zini qo'shamiz.
Qiziq tuyuladi. Murakkab shartlarni hali o'rganmagan bo'lsak ham, keling, vazifani biroz osonlashtiraylik. Faqat o'tgan vazifalar ro'yxatini ko'rsatadigan so'rovni yozamiz, lekin albatta vazifa nomiga “EXPIRED!” so'zini qo'shamiz.
Buning uchun CONCAT funksiyasidan foydalanishimiz kerak bo'ladi:
SELECT CONCAT( 'EXPIRED! ', name) FROM task WHERE deadline < CURDATE()
Ushbu so'rov natijasi quyidagicha bo'ladi:
| concat('EXPIRED! ', name) |
|---|
| EXPIRED! Frontendda bug'ni tuzatish |
Tavsiya. Agar sizga ma'lumotlarni biroz boshqacha shaklga o'tkazish kerak bo'lsa, buni Java kod darajasida qilish mumkin. Ammo SQL-server tomonida (WHERE ichida) string bilan ishlash funktsiyalaridan foydalanishni xohlasangiz, ularni ishlatmasdan turolmaysiz.
GO TO FULL VERSION