தொகுதி பாடங்கள் (4/4)
CAST மற்றும் வகை மாற்றங்கள்
SQL வலுவாக தட்டச்சு செய்யப்பட்டுள்ளது: ஒவ்வொரு நெடுவரிசையிலும் ஒரு வகை உள்ளது (INTEGER, TEXT,
NUMERIC, DATE, TIMESTAMP…), மற்றும் பல செயல்பாடுகளுக்கு வகைகள் தேவை
** பொருத்த**. அவை இல்லாதபோது - அல்லது நீங்கள் மதிப்பை வடிவமைக்க விரும்பும் போது
வித்தியாசமாக - நீங்கள் ** நடிகர்** பயன்படுத்துகிறீர்கள்.
இரண்டு சமமான தொடரியல்
-- SQL standard:
CAST(123 AS TEXT)
-- PostgreSQL shorthand (più comune nella pratica):
123::textஇரண்டு வடிவங்களும் ஒரே மாதிரியானவை. சுருக்கெழுத்து ::type மிகவும் கச்சிதமானது மற்றும்
மற்ற வெளிப்பாடுகளுடன் நன்றாக சங்கிலிகள்:
SELECT ordered_at::date AS day,
(oi.quantity * oi.unit_price)::numeric(10,2) AS total,
id::text || ' - ' || email AS label
FROM …;தரவுத்தொகுப்பில் பயனுள்ள வார்ப்புகள்
TIMESTAMP → DATE ordered_at::date
NUMERIC → INTEGER price::int -- tronca!
INTEGER → NUMERIC quantity::numeric -- per evitare div. intera
INTEGER → TEXT id::text -- per concatenare con ||
TEXT → DATE '2024-03-05'::date
NUMERIC → TEXT price::text -- per LIKE su numeriஒரு நடிகர் எப்போது தோல்வியடையும்
SELECT 'abc'::int; -- ERRORE: invalid input syntax for type integer
SELECT '12.5'::int; -- ERRORE: invalid input syntax for type integer
SELECT 12.5::int; -- 12 (cast numerico-numerico: arrotonda)சரம் → எண் அல்லது சரம் → தேதி இலிருந்து வரும் கேஸ்ட்கள் மிகவும் ஆபத்தானவை:
சரம் எதிர்பார்த்ததை சரியாகப் பொருந்தவில்லை என்றால் அவை பிழையை எழுப்புகின்றன
வடிவம். உற்பத்தியில், வெளிப்புற தரவுகளில், முதலில் சரிபார்க்க சிறந்தது
TRIM / LOWER / regex உடன்.
அனுப்பவும் மற்றும் ஆர்டர் செய்யவும்
நுட்பமான பிழைகளை உருவாக்கும் ஒரு வழக்கு: எண்களை வரிசைப்படுத்துதல் உரையாக சேமிக்கப்படும்.
SELECT '2', '10', '1' ORDER BY 1; -- '1', '10', '2' (alfabetico!)தீர்வு: உள்ளே ORDER BY:
SELECT code FROM articles ORDER BY code::int;முயற்சி செய்து பாருங்கள்
ஒவ்வொரு ஆர்டருக்கும், ஐடி மற்றும் நாளைக் காட்டவும் (order_at இன் தேதி பகுதி, வகை தேதி மட்டும்). இரண்டு நெடுவரிசைகள். ஐடி மூலம் ஆர்டர் செய்யுங்கள்.
குறிப்பைக் காட்டு
TIMESTAMP → DATE அனுப்பிய நேரம்: order_at::date.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
ஒவ்வொரு வாடிக்கையாளருக்கும் ' - ' (எ.கா. '1 - alice.rossi@example.com') மூலம் பிரிக்கப்பட்ட ஐடி மற்றும் மின்னஞ்சலை இணைக்கும் லேபிள் நெடுவரிசையைக் காட்டு. ஐடி மூலம் ஆர்டர் செய்யுங்கள்.
குறிப்பைக் காட்டு
தி || ஆபரேட்டருக்கு ஒரே மாதிரியான செயல்பாடுகள் தேவை: ஐடியை உரைக்கு அனுப்புவது சுத்தமான வழி.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்