MySQL CAST funktsioon: täielik juhend andmetüüpide teisendamiseks

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:

  1. Tüüpide ühilduvus: sobimatud teisendused võivad tekitada vea, seetõttu tuleb eelnevalt kontrollida ühilduvust.
  2. 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õi CASE 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.