தொகுதி பாடங்கள் (4/4)
பார்வைகள் மற்றும் தரவு சுருக்கம்
எங்கள் பாடங்கள் முழுவதும், வினவல்கள் (குறிப்பாக சிக்கலான JOINகள் அல்லது GROUP BY போன்ற திரட்டல்கள்) நீண்ட மற்றும் விதிகள் மற்றும் கணக்கீடுகள் நிறைந்ததாகத் தொடங்குவதை நீங்கள் கவனித்திருப்பீர்கள்.
** முடிக்கப்பட்ட வினவலை மனரீதியாகச் சேமித்து, பார்வையில் இருந்து மறைத்து, அது எல்லா நோக்கங்களுக்கும் மற்றும் நோக்கங்களுக்கும், DB**யின் இயல்பான "டேபிள்" என்று பாசாங்கு செய்தால் என்ன செய்வது?
காட்சிகளின் உலகிற்கு வரவேற்கிறோம்.
காட்சியை உருவாக்கவும்
ஒரு பார்வை என்பது SQL வினவல் என்று பெயரிடப்பட்ட ஒரு நிலையானது, ஆனால் அது ஒரு "மெய்நிகர்" அட்டவணையைப் போலவே செயல்படுகிறது!
CREATE VIEW user_spending AS
SELECT
c.id,
c.first_name,
SUM(o.amount) as total_spent
FROM customers c
JOIN orders o ON c.id = o.customer_id
GROUP BY c.id;முடிந்தது! இப்போது, எப்பொழுதும் JOIN மற்றும் GROUP BY ஐ மீண்டும் செய்வதற்கு பதிலாக, நீங்கள் சரியான சாதாரண வினவல்களை எழுத வேண்டும்:
SELECT * FROM user_spending WHERE total_spent > 100;
-- Postgres dietro le quinte richiamerà automaticamente la grande formula.பார்வைகள் மற்றும் "நிகழ்நேர தரவு"
மிகவும் பொதுவான கட்டுக்கதை என்னவென்றால், Views தரவை எடுத்து, விலைகள் அல்லது தரவரிசை போன்ற தொகைகளைக் கணக்கிட்டு, ஒரு புகைப்படம் போன்ற சில சோகமான தொடர்ச்சியான ஸ்னாப்ஷாட்டை உருவாக்குகிறது. தவறு (கிட்டத்தட்ட எப்போதும்)! இயல்பாக, பார்வைகள் ** மெய்நிகர்**: ஒவ்வொரு முறையும் உங்கள் SELECT இல் ஒரு காட்சியின் பெயரை வைக்கும் போது, திரைக்குப் பின்னால் உள்ள Postgres உங்கள் கோரிக்கையை ஒருங்கிணைக்கிறது, DB இன் நிலையை அடிப்படையாகக் கொண்டு அந்த துல்லியமான மில்லி வினாடியில் இயங்குகிறது. எனவே நீங்கள் பழைய தரவுகளைப் படிக்க மாட்டீர்கள்.
அவை எதற்காக?
- எளிமை: பார்வைகள் வெளிப்புற பயன்பாடுகளை மாற்றங்களிலிருந்து பாதுகாக்கின்றன.
top_sellingபார்வையில் இருந்து தரவைப் படிக்க வேண்டும் என்று ஃப்ரண்ட்எண்ட் குழுவுக்குத் தெரிந்தால், சிறந்த விற்பனையாளர்களை வெளியே இழுக்க மூன்று இடைநிலை உறவுகளைச் சேர்ப்பதன் மூலம் நாளை நாம் தரவுத்தளத்தை மாற்றினால் அவர்கள் கவலைப்பட வேண்டியதில்லை! - பாதுகாப்பு மற்றும் பிரித்தல்: பெரிய DB களில், ஒரு பார்வையானது பயனர் தரவின் ஒரு பகுதியை வெளிப்புற டெவலப்பர்களிடமிருந்து முன்கூட்டியே தேர்ந்தெடுத்து மறைத்து, உண்மையான பெயர்கள் துடைக்கப்பட்ட பகுப்பாய்வுகளின் துணைக் காட்சிக்கு மட்டுமே அணுகலை (உதாரணமாக) வழங்குகிறது.
ஒரு பார்வையை கைவிடுதல்
அட்டவணைகளைப் போலவே, இனி தேவைப்படாதபோது DROP கட்டளையைப் பயன்படுத்தவும்:
DROP VIEW user_spending;முயற்சி செய்து பாருங்கள்
'high_value_products' எனப்படும் காட்சியை (VIEW) உருவாக்கவும். 'தயாரிப்புகள்' அட்டவணையில் இருந்து 3 அத்தியாவசிய புலங்களையும் (`id`, `பெயர்`, `விலை`) தேர்ந்தெடுக்கும் கொள்கலனாக இது செயல்பட வேண்டும், ஆனால் எப்போதும் 50.00க்கு மேல் 'விலை' உள்ள தயாரிப்புகளுக்கு மட்டுமே.
குறிப்பைக் காட்டு
CREATE VIEW view_name என எழுதவும் ... இருந்து ... எங்கிருந்து ...
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
ஒரு பார்வையை அழைக்கிறது
பிளாட்ஃபார்மில் உள்ள ஒவ்வொரு உடற்பயிற்சியும் தனிமைப்படுத்தப்பட்ட (மற்றும் சுத்தமான) சூழலில் இயங்குவதால், இந்தப் படிநிலையில் முந்தைய பார்வை இனி இருக்காது. 'high_value_products' காட்சியை மீண்டும் உருவாக்கவும் (இன்னும் தயாரிப்புகளின் விலை > 50 உள்ளது) பின்னர், உடனடியாக பின்வரும் வரியில், அது செயல்படுகிறதா என்பதைச் சரிபார்க்க, விலை இறங்குமுறையின்படி (DESC) வரிசைப்படுத்தப்பட்ட அனைத்து உள்ளடக்கங்களின் SELECTஐ இயக்கவும்.
குறிப்பைக் காட்டு
மறக்க வேண்டாம்; SQL அறிக்கைகளுக்கு இடையில் (முதல் வரியின் முடிவில் வைக்கவும்)! இது Postgres 2 பணிகளை வரிசையாக செயல்படுத்த அனுமதிக்கிறது.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்