SQL స్వీయ-చేరండి

Sql Sviya Cerandi



రిలేషనల్ డేటాబేస్‌ల యొక్క అత్యంత ప్రసిద్ధ ఫీచర్లలో ఒకటి చేరడం. రిలేషనల్ డేటాబేస్‌ల యొక్క అత్యంత శక్తివంతమైన మరియు సంక్లిష్టమైన లక్షణాలలో జాయిన్‌లు ఒకటి. అవి విస్తృతమైన మాడ్యులారిటీని మరియు పనితీరుపై రాజీ పడకుండా డేటాబేస్ పట్టికల మధ్య చాలా క్లిష్టమైన సంబంధాలను అనుమతిస్తాయి.

అయినప్పటికీ, SQLలో ఒక రకమైన చేరిక ఉంది, ఇది రాడార్ కిందకు వెళ్లే అవకాశం ఉంది, దీనిని సెల్ఫ్-జాయిన్ అని పిలుస్తారు.

SQLలో, సెల్ఫ్-జాయిన్ అనేది ఒక శక్తివంతమైన టెక్నిక్, ఇది ఒకే టేబుల్‌లోని సంబంధిత కాలమ్ ఆధారంగా ఒకే టేబుల్ నుండి అడ్డు వరుసలను కలపడానికి అనుమతిస్తుంది.







మేము బహుళ పట్టికల నుండి డేటాను తీసుకునే SQLలోని ఇతర రకాల జాయిన్‌ల వలె కాకుండా, ఒకే టేబుల్‌పై స్వీయ-చేరడం పని చేస్తుంది.



మీరు ఆశ్చర్యపోవచ్చు, నేను పట్టిక నుండి డేటాను చూసుకోగలిగినప్పుడు నాకు స్వీయ-చేరడం ఎందుకు అవసరం? అది నిజమే అయినప్పటికీ, మీరు పునరావృత డేటా ప్రశ్నలను నిర్వహించాల్సిన అవసరం వచ్చినప్పుడు లేదా క్రమానుగత డేటాను కనుగొనవలసి వచ్చినప్పుడు స్వీయ-చేరడం పనిలో సహాయపడుతుంది.



ముఖ్యంగా, మీరు ఒకే పట్టికలోని అడ్డు వరుసలను సరిపోల్చాల్సినప్పుడు స్వీయ-చేరడం ప్రాథమిక పాత్ర పోషిస్తుంది.





సెల్ఫ్-జాయిన్‌లు అంటే ఏమిటి, అవి ఎలా పని చేస్తాయి మరియు వాటిని SQL టేబుల్‌లో ఎలా ఉపయోగించవచ్చో మేము అన్వేషిస్తున్నప్పుడు ఈ పోస్ట్‌లో మాతో చేరండి.

గమనిక: మేము డైవ్ చేయడానికి ముందు, మేము ప్రదర్శన ప్రయోజనాల కోసం ప్రాథమిక పట్టికను సెటప్ చేస్తాము. అయితే, మీరు ఏదైనా మద్దతు ఉన్న డేటాసెట్‌ని ఉపయోగించాలని భావిస్తారు.



నమూనా డేటా

కింది ప్రశ్నలు ఉత్పత్తి సమాచారాన్ని కలిగి ఉన్న ప్రాథమిక పట్టికను సృష్టిస్తాయి మరియు నమూనా రికార్డులను పట్టికలోకి చొప్పించాయి. SQLలో సెల్ఫ్-జాయిన్‌లతో ఎలా పని చేయాలో ప్రదర్శించడానికి ఇది మమ్మల్ని అనుమతిస్తుంది.

టేబుల్ ఉత్పత్తులను సృష్టించండి (
product_id INT ప్రైమరీ కీ,
product_name VARCHAR(255) NULL కాదు,
parent_id INT
);

పట్టికలో 10 నమూనా రికార్డులను జోడించండి.

ఉత్పత్తుల్లోకి చొప్పించండి (product_id, product_name, parent_id) VALUES
(1, 'ఎలక్ట్రానిక్స్', NULL),
(2, 'స్మార్ట్‌ఫోన్‌లు', 1),
(3, 'ల్యాప్‌టాప్‌లు', 1),
(4, 'iPhone 13', 2),
(5, 'Samsung Galaxy S21', 2),
(6, 'మ్యాక్‌బుక్ ప్రో', 3),
(7, 'Dell XPS 15', 3),
(8, 'యాక్సెసరీస్', NULL),
(9, 'ఫోన్ కేసులు', 8),
(10, 'ల్యాప్‌టాప్ బ్యాగ్‌లు', 8);

ఫలిత పట్టిక క్రింది విధంగా ఉంది:

ఉదాహరణ 1: ప్రాథమిక స్వీయ-చేరడం

ప్రాథమిక స్వీయ చేరికతో ప్రారంభిద్దాం. ఉదాహరణకు, ఒకే టేబుల్‌లోని తల్లిదండ్రుల-పిల్లల సంబంధాన్ని తిరిగి పొందడానికి మనం సాధారణ స్వీయ-చేరడాన్ని ఉపయోగించవచ్చు.

ఉదాహరణకు, మేము అన్ని ఉత్పత్తులను మరియు వాటికి సంబంధించిన మాతృ ఉత్పత్తులను కనుగొనడానికి దీన్ని ఉపయోగించవచ్చు. మేము ఈ క్రింది విధంగా ప్రశ్నను అమలు చేయవచ్చు:

SELECT c.product_name AS చైల్డ్_ప్రొడక్ట్, p.product_name AS parent_product
ఉత్పత్తుల నుండి సి
LEFT JOIN Products p ON c.parent_id = p.product_id;

ఇచ్చిన ఉదాహరణ ప్రశ్నలో, మేము పిల్లల ఉత్పత్తులను సూచించే ఉత్పత్తి పట్టికకు మారుపేరుగా “c”ని ఉపయోగిస్తాము.

మాతృ ఉత్పత్తులను సూచించడానికి మేము ఉత్పత్తి పట్టిక కోసం “p” అలియాస్‌ను కూడా సృష్టిస్తాము.

తదుపరి దశలో, ఉన్నత స్థాయి ఉత్పత్తులు ఫలితంలో చేర్చబడ్డాయని నిర్ధారించుకోవడానికి మేము ప్రాథమిక SQL LEFT JOINని ఉపయోగిస్తాము.

చివరగా, “parent_id” మరియు “product_id” నిలువు వరుసలను ఉపయోగించి చైల్డ్ మరియు పేరెంట్ రికార్డ్‌ల మధ్య సంబంధాన్ని సృష్టించడానికి మేము ON నిబంధనను ఉపయోగిస్తాము.

ఫలిత పట్టిక క్రింది విధంగా ఉంది:

మూల మూలకాలు అని కూడా పిలువబడే సోపానక్రమంలో ఎగువన ఉన్నందున మాతృ ఉత్పత్తులకు అగ్ర లింక్ లేదని మీరు గమనించవచ్చు.

ఉదాహరణ 2: క్రమానుగత డేటాను పొందండి

స్వీయ చేరిక యొక్క అత్యంత ప్రాథమిక పాత్రలలో ఒకటి క్రమానుగత డేటాను తిరిగి పొందడం. ఉదాహరణకు, ఉత్పత్తి 'యాక్సెసరీస్'కి సమానంగా ఉన్న అన్ని చైల్డ్ ప్రోడక్ట్‌లను తిరిగి పొందాలనుకుంటున్నాము. మేము ఈ క్రింది విధంగా స్వీయ-చేరడాన్ని ఉపయోగించి ప్రశ్నను అమలు చేయవచ్చు:

SELECT c.product_name AS చైల్డ్_ప్రొడక్ట్
ఉత్పత్తుల నుండి సి
ప్రోడక్ట్‌లలో చేరండి p ఆన్ c.parent_id = p.product_id
ఎక్కడ p.product_name = 'యాక్సెసరీలు';

ఈ సందర్భంలో, మేము ఉత్పత్తుల పట్టికను దానితో కలపడానికి JOINని ఉపయోగిస్తాము మరియు మనకు కావలసిన ఫలితాలను ఫిల్టర్ చేయడానికి WHERE నిబంధనను ఉపయోగిస్తాము.

ముగింపు

ఈ ట్యుటోరియల్‌లో, స్వీయ-చేరడం అంటే ఏమిటి, అది ఎలా పని చేస్తుంది మరియు క్రమానుగత డేటాను తిరిగి పొందడానికి లేదా పునరావృత ప్రశ్నలను నిర్వహించడానికి SQL పట్టికలో దాన్ని ఎలా ఉపయోగించవచ్చో మేము అన్వేషించాము.