రిలేషనల్ డేటాబేస్లతో పని విషయానికి వస్తే, మీరు కోరుకున్న పనులను నిర్వహించడానికి ప్రశ్నలను ఎలా మానిప్యులేట్ చేయాలి మరియు కలపాలి అనే దానిపై మీరు ప్రావీణ్యం పొందాలి. అందుకే ప్రతి రిలేషనల్ డేటాబేస్ ఇంజిన్ దాని వినియోగదారులకు అసాధారణమైన ఫీచర్లు, సామర్థ్యం మరియు సౌలభ్యాన్ని అందించడానికి ప్రయత్నించడం ద్వారా SQL భాష యొక్క దాని రుచిని అమలు చేస్తుంది.
SQL యొక్క అత్యంత శక్తివంతమైన లక్షణాలలో ఒకటి సబ్క్వెరీలు. సబ్క్వెరీలు అనేది పెద్ద మరియు మరింత సంక్లిష్టమైన ప్రశ్నలోని సమూహ ప్రశ్నల సమితి. సబ్క్వెరీలు డేటాను తిరిగి పొందడానికి లేదా ఒకే ఎంటిటీగా మరింత సంక్లిష్టమైన కార్యకలాపాలను నిర్వహించడానికి మిమ్మల్ని అనుమతిస్తాయి.
బహుళ పట్టికలలో డేటా ఫిల్టరింగ్, సార్టింగ్, అగ్రిగేషన్ మరియు మరిన్నింటిని నిర్వహించడానికి మేము సబ్క్వెరీలను ఉపయోగించవచ్చు.
అయినప్పటికీ, SQL సబ్క్వెరీల క్రింద దాచబడిన మరొక ఫీచర్ని సబ్క్వెరీ జాయిన్లు అంటారు. ఇవి సబ్క్వెరీలను పోలి ఉంటాయి; బదులుగా, అవి పట్టికలను కలిసి చేరడానికి బాహ్య ప్రశ్నలోని సబ్క్వెరీలను ఉపయోగించడానికి మిమ్మల్ని అనుమతించే జాయిన్లు.
మీ తల తిరుగుతున్నట్లయితే, చింతించకండి ఎందుకంటే సబ్క్వెరీ జాయిన్లు ప్రావీణ్యానికి సవాలుగా ఉంటాయి, ముఖ్యంగా ప్రారంభంలో. అయితే, ఈ ట్యుటోరియల్ సబ్క్వెరీని విచ్ఛిన్నం చేయడానికి ప్రయత్నిస్తుంది, చాలా అవకాశం లేకుండా ప్రాథమిక దశల్లో చేరుతుంది.
మీరు SQL, SQL జాయిన్లు, SQL సబ్క్వెరీలు లేదా అలాంటి వాటికి కొత్త కాదని మేము భావిస్తున్నామని గుర్తుంచుకోండి. అయితే, మీరు అయితే, మరిన్ని విషయాలను తెలుసుకోవడానికి మా ట్యుటోరియల్లను తనిఖీ చేయండి.
SQL ఔటర్ జాయిన్లను నేర్చుకోండి
సబ్క్వెరీ జాయిన్లతో ఎలా పని చేయాలో మీరు అర్థం చేసుకోవాలంటే, ఔటర్ జాయిన్స్తో ఎలా పని చేయాలో నేర్చుకోవడం అనేది కీలకమైన అంశం.
మీకు తెలియకుంటే, SQL ఔటర్ జాయిన్ ఒక టేబుల్ నుండి అన్ని అడ్డు వరుసలను మరియు రెండవ పట్టిక నుండి సరిపోలే అడ్డు వరుసలను పొందేందుకు మిమ్మల్ని అనుమతిస్తుంది. ఎడమ బాహ్య చేరడం, కుడి బాహ్య చేరడం, పూర్తి బాహ్య చేరడం మొదలైన వాటితో సహా ఇది కొంచెం క్లిష్టంగా ఉంటుంది.
SQL ఎడమ బాహ్య చేరికలో, ప్రశ్న ఎడమ పట్టిక నుండి అన్ని అడ్డు వరుసలను మరియు కుడి పట్టిక నుండి సరిపోలే అడ్డు వరుసలను అందిస్తుంది. కుడి పట్టికలో సరిపోలే అడ్డు వరుసలు లేకుంటే, ప్రశ్న ఫలిత నిలువు వరుసలలో NULL విలువలను కలిగి ఉంటుంది.
కుడి బాహ్య చేరిక విషయంలో, ప్రశ్న కుడి పట్టిక నుండి అన్ని అడ్డు వరుసలను అందిస్తుంది కానీ ఎడమ పట్టిక నుండి సరిపోలే అడ్డు వరుసలను మాత్రమే అందిస్తుంది. అదేవిధంగా, ఎడమ పట్టిక నుండి సరిపోలే అడ్డు వరుసలు లేకుంటే ప్రశ్న NULL విలువలను కలిగి ఉంటుంది.
చివరగా, మాకు పూర్తి బాహ్య చేరిక ఉంది. ఈ చేరిక కుడి మరియు ఎడమ పట్టికల నుండి అన్ని అడ్డు వరుసలను మరియు ఏవైనా సరిపోలని రికార్డుల కోసం NULL విలువలను అందిస్తుంది.
SQL సబ్క్వెరీ చేరింది
ఇప్పుడు మనం SQL సబ్క్వెరీల గురించి అర్థం చేసుకున్నాము, సబ్క్వెరీ జాయిన్ల గురించి మాట్లాడుకుందాం. సబ్క్వెరీ జాయిన్లు టేబుల్లలో చేరడానికి బాహ్య ప్రశ్నలోని సబ్క్వెరీలను ఉపయోగించడానికి మాకు అనుమతిస్తాయి.
అని అడుగుతుంటే అంతేనా? అవును, సబ్క్వెరీ జాయిన్లు చేసేది అంతే.
దీన్ని మెరుగ్గా ప్రదర్శించడానికి, కింది వాటిలో ప్రదర్శించబడిన క్రింది సింటాక్స్ ఉదాహరణను తీసుకోండి:
ఎంచుకోండి *టేబుల్ 1 నుండి
ఎడమవైపు చేరండి (
నిలువు వరుస 1, నిలువు వరుస 2 ఎంచుకోండి
పట్టిక 2 నుండి
) AS సబ్క్వెరీ
ON table1.column3 = subquery.column1;
మునుపటి సింటాక్స్లో, సబ్క్వెరీతో చేరడానికి ఎడమ బాహ్య జాయిన్ని ఉపయోగించి మేము టేబుల్ వన్ నుండి అన్ని నిలువు వరుసలను ఎంచుకుంటాము. సబ్క్వెరీ యొక్క పాత్ర టేబుల్ 2 నుండి నిర్వచించబడిన నిలువు వరుసలను పొందడం. మేము దానిని టేబుల్ 1 నుండి టేబుల్ 1 నుండి కాలమ్ 2 మరియు సబ్క్వెరీ నుండి కాలమ్ 1 యొక్క షరతుపై చేర్చాము.
ఆచరణాత్మక ఉదాహరణ:
సిద్ధాంతపరంగా, ఇది తక్కువ స్పష్టమైనదిగా అనిపిస్తుంది, అయితే సకిలా డేటాబేస్ని తీసుకోవడం ద్వారా వాస్తవ ప్రపంచ దృశ్యాన్ని తీసుకుందాం.
మనం డేటాబేస్లోని అన్ని చిత్రాల జాబితాను మరియు వాటి సంబంధిత భాషలను తిరిగి పొందాలనుకుంటున్నాము. సినిమాల భాషలు లాంగ్వేజ్ టేబుల్లో స్టోర్ చేయబడతాయి మరియు ఫిల్మ్ పేర్లు ఫిల్మ్ టేబుల్లో నిల్వ చేయబడతాయి.
అయితే, ఫిల్మ్ టేబుల్లో లాంగ్వేజ్ టేబుల్ నుండి “language_id” కాలమ్ అనే ఫారిన్ కీ ఉంది. కాబట్టి, కింది ప్రశ్నలో ప్రదర్శించిన విధంగా రెండు టేబుల్లను కలిపి కలిపేందుకు మనం ఎడమ బాహ్య చేరికతో సబ్క్వెరీ జాయిన్ని ఉపయోగించవచ్చు:
f.title, l.name AS భాషని ఎంచుకోండిచిత్రం నుండి f
ఎడమవైపు చేరండి (
SELECT language_id, పేరు
భాష నుండి
) AS ఎల్
ON f.language_id = l.language_id;
మునుపటి ఉదాహరణ ప్రశ్నలో, మేము ఫిల్మ్ టేబుల్ నుండి టైటిల్ కాలమ్ మరియు భాషా పట్టిక నుండి పేరు కాలమ్ని ఎంచుకుంటాము.
భాషల పట్టిక నుండి language_id మరియు పేరు కాలమ్ని ఎంచుకోవడానికి మేము సబ్క్వెరీని ఉపయోగిస్తాము. ఫిల్మ్ టేబుల్లోని లాంగ్వేజ్_ఐడి లాంగ్వేజ్ టేబుల్లోని లాంగ్వేజ్_ఐడికి సమానం అనే షరతుపై ఫిల్మ్ టేబుల్తో కలపడం తదుపరి దశ.
అన్ని చలనచిత్రాలు ఫలితంలో చేర్చబడ్డాయని నిర్ధారించుకోవడానికి, ఎడమవైపు ఉన్న పట్టిక నుండి అన్ని ఫలితాలను కలిగి ఉండే ఎడమ బాహ్య జాయిన్ని మనం ఉపయోగించాలి, ఈ సందర్భంలో ఫిల్మ్ టేబుల్.
ఉదాహరణ అవుట్పుట్ క్రింది విధంగా ఉంది:
మేము కుడి బాహ్య చేరికతో కూడా అదే చేయవచ్చు. వాక్యనిర్మాణం క్రింది విధంగా ఉంది:
టేబుల్ 1 నుండి
కుడివైపు చేరండి (
నిలువు వరుస 1, నిలువు వరుస 2 ఎంచుకోండి
పట్టిక 2 నుండి
) AS సబ్క్వెరీ
ON table1.column3 = subquery.column1;
ఇది అదే విధంగా ప్రవర్తిస్తుంది కానీ సరిపోలే రికార్డులు లేనప్పటికీ అన్ని రికార్డులను సరైన పట్టికలో చేర్చుతుంది.
తెలుసుకోవలసిన ఉపయోగకరమైన విషయాలు
సబ్క్వెరీ జాయిన్లు చాలా ఉపయోగకరంగా ఉన్నప్పటికీ మరియు మీ వర్క్ఫ్లోను ఆప్టిమైజ్ చేయగలిగినప్పటికీ, వాటిని జాగ్రత్తగా ఉపయోగించాలని అర్థం చేసుకోవడం మంచిది.
ఉదాహరణకు, పెద్ద డేటా సెట్తో సబ్క్వెరీ జాయిన్లను ఉపయోగించకుండా ఉండండి. ఎందుకంటే వారు డేటాబేస్ పనితీరును ప్రభావితం చేసే విస్తృతమైన రికార్డులను తిరిగి ఇవ్వగలరు.
ఏదైనా సబ్క్వెరీ జాయిన్లను అమలు చేయడానికి ముందు ప్రశ్న విశ్లేషణ సాధనాలను ఉపయోగించడాన్ని పరిగణించండి.
ముగింపు
ఈ ట్యుటోరియల్ SQLలో సబ్క్వెరీలు మరియు సబ్క్వెరీ జాయిన్లతో పని చేసే ప్రాథమిక అంశాలను అన్వేషించింది. ఈ ట్యుటోరియల్ చివరలో, సబ్క్వెరీ జాయిన్లతో ఎలా పని చేయాలో, మీరు వాటిని ఎందుకు ఉపయోగించాల్సి రావచ్చు మరియు మీ వర్క్ఫ్లోలో అవి మీకు ఎలా సహాయపడతాయో అనేదానికి ఆచరణాత్మక ఉదాహరణను మీరు ఇప్పుడు అర్థం చేసుకున్నారు.