JavaRush /Курсы /All lectures for AM purposes /Տողային ֆունկցիաներ

Տողային ֆունկցիաներ

All lectures for AM purposes
1 уровень , 231 лекция
Открыта

Տողային ֆունկցիաների ցուցակ

Ավելի շատ ֆունկցիաներ, քան ամսաթվի և ժամանակի հետ, միայն String տիպի մոտ։ Որը SQL-ում տրվում է CHAR(n) և VARCHAR(n) տիպերով։ Հիշենք դրանցից ամենահայտնիները:

Ֆունկցիա Նկարագրություն
1 LENGTH(str) Վերադարձնում է տրված տողի երկարությունը բայթերով
2 CHAR_LENGTH(str) Վերադարձնում է տրված տողի երկարությունը char-ներով
3 LOCATE(substr,str), Փնտրում է ենթատող տողի մեջ, ինչպես indexOf() մեթոդը
4 LOCATE(substr,str,pos) Փնտրում է ենթատող տողի մեջ, սկսելով pos նշանից
5 CONCAT(str1,str2,...) Միացնում է մի քանի տողեր
6 SUBSTR(), SUBSTRING() Վերադարձնում է ենթատող, տրված նշանների տիրույթով
7 LOWER(str) Փոխակերպում է տողը փոքրատառերի
8 UPPER(str) Փոխակերպում է տողը մեծատառերի
9 REPLACE() Փոխարինում է ենթատողը տողի մեջ
10 MATCH() Ստուգում է տողի համընկնումը տրված նմուշին
11 TRIM(str) Կտրում է պարպու նշանները տողի սկզբում և վերջում
12 LTRIM(str) Կտրում է պարպու նշանները տողի սկզբում
13 RTRIM(str) Կտրում է պարպու նշանները տողի վերջում
14 TO_BASE64(str) Փոխակերպում է տողը Base64
15 FROM_BASE64(str) Փոխակերպում է տողը Base64-ից

Ես հատուկ խմբավորեցի ֆունկցիաները փոքր խմբերով, որպեսզի ավելի հեշտ լինի հասկանալ, թե ինչպես աշխատել նրանցով։ Ստորև մենք կքննարկենք յուրաքանչյուր խմբից մեկ ֆունկցիա։ Տողերով աշխատելու ֆունկցիաների ամբողջական ցուցակը կարող ես գտնել պաշտոնական փաստաթղթերում։

Փոխակերպում ենք տողը

Եկեք նախ պարզենք ամենապարզ ֆունկցիաները, որոնք միայն փոխակերպում են տողը մի քիչ այլ տեսքի։ Օրինակ, փոխակերպում են տողը մեծ և փոքր տառերի։ Հիմնականում նրանց վարքը նման է Java լեզվի ֆունկցիաներին։

Ոչինչ, ես պարզապես կբերեմ մի քանի օրինակներ։

# Հարցում Արդյունք
1 SELECT LENGTH('text') 4
2 SELECT LENGTH('Բարև') 12
3 SELECT LOWER('Բարև') բարև
4 SELECT UPPER('Բարև') ԲԱՐԵՎ
5 SELECT SUBSTR('Բարև', 2, 3) արև
6 SELECT SUBSTR('Բարև ինչպես են գործերը?', 8) ինչպես են գործերը?

Ֆունկցիաներն աշխատում են ակնկալվածի պես, ինչպես JDK-ի նման ֆունկցիաները։

Միակ մանրուքը՝ առաջին տողում արդյունքը 4 է, ոչ թե 8։ Բոլորն այն պատճառով է, որ հարցման մեջ լատինական նշանների կոդավորմանը օգտագործվում է 1 բայթ (ASCII կոդավորում)։ Բայց եթե աշխատես տվյալների բազայի տվյալների հետ, ապա տողի երկարությունը կախված կլինի տվյալների բազայի կոդավորման կարգավորումներից։ Քեզ շատ անակնկալներ են սպասում տվյալների բազայի հետ աշխատանքի ժամանակ :)

Բարդ գործողություններ տողերի հետ

Դե եկեք քննարկենք էլ ավելի բարդ բաներ տողերի հետ աշխատանքի ժամանակ։ Ի՞նչ հնարք հնարենք…

Եկեք ցուցադրենք task աղյուսակից առաջադրանքները, և եթե առանձին առանձին առաջադրանքի վերջնաժամկետը անցել է, ապա լրացնենք առաջադրանքի նկարագրությանը EXPIRED! բառը

Հնչում է հետաքրքիր։ Թեև բարդ պայմանները դեռևս չենք սովորել, եկեք մի քիչ պարզեցնենք խնդիրը։ Պարզապես գրենք հարցում, որը կցուցադրի անցած խնդիրների ցուցակը, բայց անվանմանը հաստատ ավելացնենք “EXPIRED!” բառը։

Դրա համար պետք է ներգրավենք CONCAT ֆունկցիան՝

 SELECT CONCAT( 'EXPIRED! ', name) FROM task WHERE deadline < CURDATE() 

Այս հարցման արդյունքը կլինի այսպես՝

concat('EXPIRED! ', name)
EXPIRED! Ուղղել bug-ը frontend-ում

Խորհուրդ. Եթե քեզ անհրաժեշտ է պարզապես փոխակերպել տվյալներն ավելի քիչ այլ ձևի, ապա դա կարող ես անել Java-կոդի մակարդակով։ Բայց եթե ուզում ես օգտագործել տողերի հետ աշխատանքային ֆունկցիաներ SQL-սերվերի կողմում (WHERE-ի ներսում), ապա առանց դրանց հաստատ չի լինի։

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ