1. CAST-funktsiooni põhikontseptsioon
Mis on CAST-funktsioon?
MySQL-i CAST funktsioon on SQL-i funktsioon, mida kasutatakse andmetüübi teisendamiseks. See võimaldab määratud avaldise teisendamist teise tüüpi. Näiteks saab stringi teisendada täisarvuks või kuupäeva stringiks. CAST on kasulik tööriist, mida kasutatakse sageli andmebaasioperatsioonides andmetüüpide ühtsuse tagamiseks.
CAST-funktsiooni peamised kasutusalad
CAST-funktsiooni kasutatakse laialdaselt järgmistes olukordades:
- Andmete normaliseerimine: erinevas vormingus andmete ühtlustamiseks, näiteks tabelisse salvestatud kuupäeva formaadi standardiseerimiseks.
- Andmetüübi teisendamine: näiteks täisarv stringiks või vastupidi, et optimeerida andmete kuvamist või arvutusi.
SELECT CAST('2023-09-22' AS DATE);
Erinevus CAST-funktsiooni ja muude teisenduste vahel
CAST-funktsioon sarnaneb teiste MySQL-i teisendusfunktsioonidega (nt CONVERT
), kuid peamine erinevus seisneb selles, et CAST järgib SQL-standardit ja on toetatud paljudes andmebaasides. CONVERT
on MySQL-ile spetsiifiline ning seda kasutatakse peamiselt märgistikute teisendamiseks.
2. CAST-funktsiooni süntaks ja kasutamine
CAST-funktsiooni süntaks
CAST-funktsiooni põhisüntaks on järgmine:
CAST(avaldise AS andmetüüp)
Selles süntaksis määratakse avaldisena väärtus, mida soovitakse teisendada, ja andmetüübi osas sihtandmetüüp.
CAST-funktsiooni näited
- Täisarvuks teisendamine: stringi teisendamine täisarvuks.
SELECT CAST('123' AS SIGNED);
- Stringiks teisendamine: arvu teisendamine stringiks.
SELECT CAST(123 AS CHAR);
Vigade käsitlemine
CAST-funktsiooni kasutamisel võib sobimatu väärtuse andmetüüpi teisendamisel tekkida viga. Näiteks 'abc'
täisarvuks teisendamine tekitab vea. Sellistes olukordades on soovitatav kasutada koos CAST-iga IFNULL
või muid vigade käsitlemise lahendusi.
3. Levinumad andmetüübid ja nende teisendamise näited
Tüüpilised andmetüübi teisendamise stsenaariumid
CAST-funktsiooni kasutatakse sageli järgmisteks teisendusteks:
- INT-tüüp: arvu teisendamine täisarvuks.
- VARCHAR-tüüp: arvu või kuupäeva teisendamine stringiks.
- DATE-tüüp: stringi või arvu teisendamine kuupäevaks.
INT-tüüpi teisendamine
SELECT CAST('456' AS SIGNED);
Selles näites teisendatakse string '456'
täisarvuks.
VARCHAR-tüüpi teisendamine
SELECT CAST(456 AS CHAR);
Täisarvu teisendamine stringiks. See on kasulik, kui soovitakse andmeid kuvada kindlas formaadis.
DATE-tüüpi teisendamine
SELECT CAST('2024-01-01' AS DATE);
Stringi teisendamine kuupäevaks. Nii salvestatakse andmed korrektselt ja hilisemad kuupäevaoperatsioonid on võimalikud.

4. CAST-funktsiooni tähelepanekud ja parimad tavad
Olulised tähelepanekud
CAST-funktsiooni kasutamisel tuleb arvestada järgmisega:
- Tüüpide ühilduvus: sobimatud teisendused võivad tekitada vea, seetõttu tuleb eelnevalt kontrollida ühilduvust.
- Andmete täpsuse kadu: eriti ujukomaarve teisendades võib täpsus kaduda.
Parimad tavad
- DECIMAL-tüübi kasutamine: ujukomaarvude teisendamisel on soovitatav kasutada DECIMAL-tüüpi, et vältida täpsuse kadu.
SELECT CAST(123.456 AS DECIMAL(5,2));
- Vigade käsitlemine: kui andmetüübid võivad olla segamini, tasub kasutada
IFNULL
võiCASE
avaldusi vigade vältimiseks.
5. CAST- ja CONVERT-funktsioonide erinevused
Võrdlus: CAST vs CONVERT
Mõlemad teisendavad andmetüüpe, kuid nende süntaks ja kasutus erinevad:
- CAST: kasutatakse laialdaselt SQL-standardis. Süntaks:
CAST(avaldise AS andmetüüp)
. - CONVERT: MySQL-ile omane. Süntaks:
CONVERT(avaldise, andmetüüp)
.
CONVERT-funktsiooni näide
CONVERT-funktsiooni kasutatakse peamiselt märgistikute teisendamiseks.
SELECT CONVERT('abc' USING utf8);
Selles näites teisendatakse stringi märgistik.
Kumba kasutada?
Üldiselt on soovitatav kasutada CAST-funktsiooni, kuna see järgib SQL-standardit ja on laiemalt toetatud. Märgistikute teisendamiseks sobib aga paremini CONVERT.
6. Praktilised näited CAST-funktsiooniga
Reaalsed andmeoperatsioonid
Allpool mõned näited, kuidas CAST-funktsiooni kasutada andmete töötlemisel.
Arvude stringiks teisendamine ja sorteerimine
Näiteks arvude stringiks teisendamine ja seejärel sorteerimine:
SELECT CAST(column_name AS CHAR) FROM table ORDER BY column_name;
Stringi täisarvuks teisendamine ja filtreerimine
Samuti saab stringi täisarvuks teisendada ja kasutada filtreerimiseks:
SELECT * FROM table WHERE CAST(column_name AS SIGNED) > 100;
7. Kokkuvõte
Artikli kokkuvõte
CAST-funktsioon on väga kasulik SQL-tööriist, mis võimaldab efektiivselt teisendada andmetüüpe. Käesolevas artiklis tutvustasime nii põhikasutust kui ka praktilisi näiteid. Andmete teisendamisel tuleks alati arvestada ühilduvuse ja täpsusega ning rakendada parimaid tavasid.