String funksiyalar

All lectures for UZ purposes
Daraja, Dars
Mavjud

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.

Izohlar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION