మొదటి నుండి మైక్రోసాఫ్ట్ యాక్సెస్ SQL ప్రశ్నలను ఎలా వ్రాయాలి

మొదటి నుండి మైక్రోసాఫ్ట్ యాక్సెస్ SQL ప్రశ్నలను ఎలా వ్రాయాలి

మైక్రోసాఫ్ట్ యాక్సెస్ అనేది మొత్తం మైక్రోసాఫ్ట్ ఆఫీస్ సూట్‌లో అత్యంత శక్తివంతమైన సాధనం, అయితే ఇది ఆఫీస్ పవర్ వినియోగదారులను రహస్యపరుస్తుంది (మరియు కొన్నిసార్లు భయపెడుతుంది). వర్డ్ లేదా ఎక్సెల్ కంటే నిటారుగా ఉన్న లెర్నింగ్ కర్వ్‌తో, ఎవరైనా ఈ టూల్‌ని ఉపయోగించడం ద్వారా తమ తలను ఎలా చుట్టుకోవాలి? ఈ వారం, బ్రూస్ ఎప్పర్ మా పాఠకులలో ఒకరి నుండి ఈ ప్రశ్న ద్వారా ప్రేరేపించబడిన కొన్ని సమస్యలను చూస్తారు.





ఒక రీడర్ అడుగుతుంది:

మైక్రోసాఫ్ట్ యాక్సెస్‌లో ప్రశ్నను వ్రాయడంలో నాకు సమస్య ఉంది. సంఖ్యా ఉత్పత్తి కోడ్ మరియు సంబంధిత ఉత్పత్తి పేరు కలిగిన సాధారణ కాలమ్‌తో కూడిన రెండు ఉత్పత్తి పట్టికలతో ఒక డేటాబేస్ వచ్చింది. టేబుల్ A నుండి ఏ ఉత్పత్తులు దొరుకుతాయో నేను తెలుసుకోవాలనుకుంటున్నాను టేబుల్ B. లో నేను ఫలితాలు అనే కాలమ్‌ను జోడించాలనుకుంటున్నాను, అది ఉన్నట్లయితే టేబుల్ A నుండి ఉత్పత్తి పేరు మరియు టేబుల్ A లోని ఉత్పత్తి పేరు టేబుల్ A. లో లేనప్పుడు మీకు ఏదైనా సలహా ఉందా?





బ్రూస్ ప్రత్యుత్తరం:

మైక్రోసాఫ్ట్ యాక్సెస్ అనేది డేటాబేస్ మేనేజ్‌మెంట్ సిస్టమ్ (DBMS), ఇది విండోస్ మరియు మాక్ మెషీన్‌లలో ఉపయోగం కోసం రూపొందించబడింది. ఇది డేటా ప్రాసెసింగ్ మరియు నిల్వ కోసం మైక్రోసాఫ్ట్ యొక్క జెట్ డేటాబేస్ ఇంజిన్‌ను ఉపయోగిస్తుంది. ఇది స్ట్రక్చర్డ్ క్వెరీ లాంగ్వేజ్ (SQL) ని అర్థం చేసుకోవలసిన అవసరాన్ని దాదాపుగా తొలగించే వినియోగదారులకు గ్రాఫికల్ ఇంటర్‌ఫేస్‌ను కూడా అందిస్తుంది.





SQL అనేది డేటాబేస్‌లో నిల్వ చేయబడిన సమాచారాన్ని జోడించడానికి, తొలగించడానికి, అప్‌డేట్ చేయడానికి మరియు తిరిగి ఇవ్వడానికి అలాగే పట్టికలు లేదా సూచికలను జోడించడం, తొలగించడం లేదా సవరించడం వంటి ప్రధాన డేటాబేస్ భాగాలను సవరించడానికి ఉపయోగించే కమాండ్ లాంగ్వేజ్.

ప్రారంభ స్థానం

మీకు ఇప్పటికే యాక్సెస్ లేదా మరొక RDBMS తో కొంత పరిచయం లేకపోతే, కొనసాగే ముందు ఈ వనరులతో ప్రారంభించాలని నేను సూచిస్తున్నాను:



ఈ ఆర్టికల్స్‌లో అందించిన కాన్సెప్ట్‌ల గురించి ప్రాథమిక అవగాహన కలిగి ఉండటం వలన ఈ క్రింది వాటిని జీర్ణించుకోవడం సులభం అవుతుంది.

డేటాబేస్ సంబంధాలు మరియు సాధారణీకరణ

మీరు ప్రపంచవ్యాప్తంగా 50 రకాల విడ్జెట్లను విక్రయించే కంపెనీని నడుపుతున్నారని ఊహించండి. మీకు 1,250 మంది క్లయింట్ బేస్ ఉంది మరియు సగటు నెలలో ఈ ఖాతాదారులకు 10,000 విడ్జెట్‌లను విక్రయించండి. ఈ అమ్మకాలన్నింటినీ ట్రాక్ చేయడానికి మీరు ప్రస్తుతం ఒకే స్ప్రెడ్‌షీట్‌ను ఉపయోగిస్తున్నారు - సమర్థవంతంగా ఒకే డేటాబేస్ టేబుల్. మరియు ప్రతి సంవత్సరం మీ స్ప్రెడ్‌షీట్‌కు వేలాది అడ్డు వరుసలను జోడిస్తుంది.





పై చిత్రాలు మీరు ఉపయోగిస్తున్న ఆర్డర్ ట్రాకింగ్ స్ప్రెడ్‌షీట్‌లో భాగం. ఇప్పుడు ఈ క్లయింట్లు ఇద్దరూ మీ నుండి సంవత్సరానికి అనేకసార్లు విడ్జెట్‌లను కొనుగోలు చేస్తున్నారని చెప్పండి, కనుక వారిద్దరి కోసం మీకు చాలా ఎక్కువ వరుసలు ఉన్నాయి.





జోన్ స్మిత్ టెడ్ బైన్స్‌ని వివాహం చేసుకుని అతని ఇంటిపేరు తీసుకుంటే, ఆమె పేరు ఉన్న ప్రతి వరుస ఇప్పుడు మార్చబడాలి. మీరు 'జోన్ స్మిత్' పేరుతో ఇద్దరు వేర్వేరు క్లయింట్లను కలిగి ఉంటే సమస్య జటిలం అవుతుంది. చాలా సాధారణ సంఘటన కారణంగా మీ అమ్మకాల డేటాను స్థిరంగా ఉంచడం చాలా కష్టంగా మారింది.

డేటాబేస్‌ని ఉపయోగించడం మరియు డేటాను సాధారణీకరించడం ద్వారా, మేము వస్తువులను ఇన్వెంటరీ, క్లయింట్లు మరియు ఆర్డర్‌లు వంటి బహుళ పట్టికలుగా వేరు చేయవచ్చు.

మా ఉదాహరణలోని క్లయింట్ భాగాన్ని చూస్తూ, మేము క్లయింట్ పేరు మరియు క్లయింట్ చిరునామా కోసం నిలువు వరుసలను తీసివేసి కొత్త పట్టికలో ఉంచుతాము. పై చిత్రంలో, డేటాకు మరింత గ్రాన్యులర్ యాక్సెస్ కోసం నేను విషయాలు బాగా బయటపెట్టాను. కొత్త పట్టికలో ప్రాథమిక కీ (ClientID) కోసం ఒక కాలమ్ కూడా ఉంది - ఈ పట్టికలోని ప్రతి అడ్డు వరుసను యాక్సెస్ చేయడానికి ఉపయోగించే సంఖ్య.

మేము ఈ డేటాను తీసివేసిన అసలైన పట్టికలో, మేము ఫారెన్ కీ (క్లయింట్ఐడి) కోసం ఒక కాలమ్‌ను జోడిస్తాము, ఇది ఈ నిర్దిష్ట క్లయింట్ కోసం సమాచారాన్ని కలిగి ఉన్న సరైన వరుసకు లింక్ చేస్తుంది.

ఇప్పుడు, జోన్ స్మిత్ తన పేరును జోన్ బైన్స్‌గా మార్చినప్పుడు, మార్పు క్లయింట్ పట్టికలో ఒకసారి మాత్రమే చేయాలి. చేరిన టేబుల్స్ నుండి ప్రతి ఇతర రిఫరెన్స్ సరైన క్లయింట్ పేరును లాగుతుంది మరియు గత 5 సంవత్సరాలుగా జోన్ కొనుగోలు చేసిన వాటిని చూస్తున్న రిపోర్ట్ రిపోర్ట్ జనరేట్ ఎలా ఉంటుందో మార్చుకోకుండానే ఆమె కన్యాశుల్కం మరియు వివాహితుల పేర్లు కింద అన్ని ఆర్డర్‌లను పొందుతుంది. .

అదనపు ప్రయోజనంగా, ఇది వినియోగించే నిల్వ మొత్తాన్ని కూడా తగ్గిస్తుంది.

రకాలు చేరండి

SQL ఐదు రకాల చేరికలను నిర్వచిస్తుంది: ఇన్నర్, లెఫ్ట్ అవుటర్, రైట్ అవుటర్, ఫుల్ అవుటర్ మరియు క్రాస్. SQL స్టేట్‌మెంట్‌లో OUTER కీవర్డ్ ఐచ్ఛికం.

మైక్రోసాఫ్ట్ యాక్సెస్ ఇన్నర్ (డిఫాల్ట్), లెఫ్ట్ అవుటర్, రైట్ అవుటర్ మరియు క్రాస్‌లను ఉపయోగించడానికి అనుమతిస్తుంది. పూర్తి అవుటర్‌కు మద్దతు లేదు, కానీ లెఫ్ట్ అవుటర్, యూనియన్ ఆల్, మరియు రైట్ అవుటర్ ఉపయోగించడం ద్వారా, ఎక్కువ CPU సైకిల్స్ మరియు I/O ఆపరేషన్‌ల ఖర్చుతో నకిలీ చేయవచ్చు.

CROSS చేరడం యొక్క అవుట్‌పుట్ కుడి పట్టికలోని ప్రతి వరుసతో జతచేయబడిన ఎడమ పట్టికలోని ప్రతి అడ్డు వరుసను కలిగి ఉంటుంది. CROSS ఉపయోగించడాన్ని నేను చూసిన ఏకైక సమయం డేటాబేస్ సర్వర్‌ల లోడ్ పరీక్ష సమయంలో మాత్రమే.

ప్రాథమిక చేరికలు ఎలా పని చేస్తాయో చూద్దాం, అప్పుడు మన అవసరాలకు తగినట్లుగా వాటిని సవరించుకుంటాం.

కింది డిజైన్ లక్షణాలతో ProdA మరియు ProdB అనే రెండు పట్టికలను సృష్టించడం ద్వారా ప్రారంభిద్దాం.

ఆటో నంబర్ అనేది పట్టికకు జోడించబడినందున ఎంట్రీలకు కేటాయించబడే స్వయంచాలకంగా పెరుగుతున్న పొడవైన పూర్ణాంకం. వచన ఎంపిక సవరించబడలేదు, కనుక ఇది 255 అక్షరాల వరకు ఉన్న టెక్స్ట్ స్ట్రింగ్‌ని అంగీకరిస్తుంది.

ఇప్పుడు, కొంత డేటాతో వాటిని జనసాంద్రత చేయండి.

3 జాయిన్ రకాలు ఎలా పనిచేస్తాయో తేడాలను చూపించడానికి, నేను ప్రోడా నుండి 1, 5 మరియు 8 ఎంట్రీలను తొలగించాను.

తరువాత, కొత్త ప్రశ్నను సృష్టించండి వెళ్ళడం ద్వారా సృష్టించు> ప్రశ్న రూపకల్పన . షో టేబుల్ డైలాగ్ నుండి రెండు పట్టికలను ఎంచుకోండి మరియు జోడించు క్లిక్ చేయండి , అప్పుడు దగ్గరగా .

టేబుల్ ప్రోడాలోని ప్రొడక్ట్ ఐడిపై క్లిక్ చేయండి, టేబుల్ ప్రొడిబిలోని ప్రొడక్ట్ ఐడికి లాగండి మరియు టేబుల్‌ల మధ్య సంబంధాన్ని సృష్టించడానికి మౌస్ బటన్‌ని విడుదల చేయండి.

అంశాల మధ్య సంబంధాన్ని సూచించే పట్టికల మధ్య రేఖపై కుడి క్లిక్ చేయండి మరియు జాయిన్ ప్రాపర్టీస్ ఎంచుకోండి .

డిఫాల్ట్‌గా, జాయిన్ టైప్ 1 (INNER) ఎంపిక చేయబడింది. ఆప్షన్ 2 అనేది లెఫ్ట్ Uటర్ జాయిన్ మరియు 3 రైట్ అవుటర్ జాయిన్.

మేము మొదట INNER చేరడాన్ని చూస్తాము, కాబట్టి డైలాగ్‌ను తీసివేయడానికి సరే క్లిక్ చేయండి.

ప్రశ్న డిజైనర్‌లో, డ్రాప్-డౌన్ జాబితాల నుండి మనం చూడాలనుకుంటున్న ఫీల్డ్‌లను ఎంచుకోండి.

మేము ప్రశ్నను అమలు చేసినప్పుడు (రిబ్బన్‌లోని ఎరుపు ఆశ్చర్యార్థక స్థానం), ఇది మొదటి పట్టికలోని ప్రొడా మరియు రెండవ కాలంలోని ప్రొడ్‌బి విలువతో రెండు పట్టికల నుండి ఉత్పత్తి పేరు ఫీల్డ్‌ని చూపుతుంది.

రెండు పట్టికలలో ProductID సమానంగా ఉన్న విలువలను మాత్రమే ఫలితాలు చూపుతాయని గమనించండి. టేబుల్ ప్రోడ్‌బిలో ప్రొడక్ట్ ఐడి = 1 కోసం ఎంట్రీ ఉన్నప్పటికీ, ప్రొడక్ట్‌ఐడి = 1 టేబుల్ ప్రోడాలో లేనందున ఇది ఫలితాల్లో కనిపించదు. ప్రొడక్ట్‌ఐడి = 11. కి కూడా ఇది వర్తిస్తుంది, ఇది టేబుల్ ప్రోడాలో ఉంది కానీ టేబుల్ ప్రోడ్‌బిలో కాదు

రిబ్బన్‌లోని వ్యూ బటన్‌ని ఉపయోగించడం మరియు SQL వ్యూకు మారడం ద్వారా, ఈ ఫలితాలను పొందడానికి ఉపయోగించే డిజైనర్ ద్వారా రూపొందించబడిన SQL ప్రశ్నను మీరు చూడవచ్చు.

SELECT ProdA.ProductName, ProdB.ProductName FROM ProdA INNER JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

డిజైన్ వ్యూకు తిరిగి వెళితే, జాయిన్ టైప్‌ను 2 (లెఫ్ట్ అవుటర్) కి మార్చండి. ఫలితాలను చూడటానికి ప్రశ్నను అమలు చేయండి.

మీరు చూడగలిగినట్లుగా, ప్రోడాలోని ప్రతి ఎంట్రీ ఫలితాలలో ప్రాతినిధ్యం వహిస్తుంది, అయితే ప్రోడ్‌బిలో ఉన్న వాటికి మాత్రమే సరిపోయే ప్రోడక్ట్ ఐడి ఎంట్రీని కలిగి ఉంటుంది.

ProdB.ProductName కాలమ్‌లోని ఖాళీ స్థలం ప్రత్యేక విలువ (NULL) ఎందుకంటే పట్టిక ProdB లో సరిపోలే విలువ లేదు. ఇది తర్వాత ముఖ్యమైనదని రుజువు అవుతుంది.

SELECT ProdA.ProductName, ProdB.ProductName FROM ProdA LEFT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

మూడవ రకం జాయిన్ (రైట్ అవుటర్) తో కూడా అదే ప్రయత్నించండి.

ఫలితాలు ప్రోడ్‌బి పట్టిక నుండి ప్రతిదీ చూపుతాయి, అయితే అది ఖాళీ (NULL అని పిలుస్తారు) విలువలను చూపుతుంది, ఇక్కడ ప్రోడా పట్టికకు సరిపోలే విలువ ఉండదు. ఇప్పటివరకు, ఇది మా రీడర్ ప్రశ్నలో కావలసిన ఫలితాలకు దగ్గరగా ఉంటుంది.

SELECT ProdA.ProductName, ProdB.ProductName FROM ProdA RIGHT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

ఒక ప్రశ్నలో విధులను ఉపయోగించడం

ఫంక్షన్ యొక్క ఫలితాలు కూడా ఒక ప్రశ్నలో భాగంగా తిరిగి ఇవ్వబడవచ్చు. మా ఫలితాల సెట్‌లో 'ఫలితాలు' అనే కొత్త కాలమ్ కనిపించాలని మేము కోరుకుంటున్నాము. ప్రోడాకు విలువ ఉంటే (అది శూన్యమైనది కాదు) దాని విలువ పట్టిక ప్రోడా యొక్క ప్రొడక్ట్ నేమ్ కాలమ్‌లోని కంటెంట్ అవుతుంది, లేకుంటే అది టేబుల్ ప్రొడ్‌బి నుండి తీసుకోవాలి.

ఈ ఫలితాన్ని రూపొందించడానికి తక్షణ IF (IIF) ఫంక్షన్ ఉపయోగించవచ్చు. ఫంక్షన్ మూడు పారామితులను తీసుకుంటుంది. మొదటిది నిజమైన లేదా తప్పుడు విలువకు మూల్యాంకనం చేయాల్సిన పరిస్థితి. రెండవ పరామితి షరతు నిజమైతే తిరిగి ఇవ్వాల్సిన విలువ, మరియు మూడవ పరామితి షరతు తప్పు అయితే తిరిగి ఇచ్చే విలువ.

మా పరిస్థితి కోసం పూర్తి ఫంక్షన్ నిర్మాణం ఇలా కనిపిస్తుంది:

IIF(ProdA.ProductID Is Null, ProdB.ProductName,ProdA.ProductName)

కండిషన్ పరామితి సమానత్వం కోసం తనిఖీ చేయదని గమనించండి. డేటాబేస్‌లోని శూన్య విలువ మరొక శూన్యంతో సహా ఏ ఇతర విలువతో పోల్చదగిన విలువను కలిగి ఉండదు. మరో మాటలో చెప్పాలంటే, శూన్యత శూన్యానికి సమానం కాదు. ఎప్పుడూ. దీనిని అధిగమించడానికి, బదులుగా 'Is' కీవర్డ్‌ని ఉపయోగించి విలువను తనిఖీ చేస్తాము.

అదే ఫలితాన్ని పొందడానికి మేము 'ఈజ్ నాట్ నల్' కూడా ఉపయోగించాము మరియు ట్రూ మరియు ఫాల్స్ పారామితుల క్రమాన్ని మార్చవచ్చు.

దీనిని క్వెరీ డిజైనర్‌లో ఉంచినప్పుడు, మీరు మొత్తం ఫంక్షన్‌ను ఫీల్డ్: ఎంట్రీలో టైప్ చేయాలి. కాలమ్ 'ఫలితాలు' సృష్టించడానికి దాన్ని పొందడానికి, మీరు మారుపేరును ఉపయోగించాలి. దీన్ని చేయడానికి, కింది స్క్రీన్‌షాట్‌లో కనిపించే విధంగా ఫంక్షన్‌ను 'ఫలితాలు:' తో ముందుగానే చెప్పండి.

దీన్ని చేయడానికి సమానమైన SQL కోడ్:

SELECT ProdA.ProductName, ProdB.ProductName, IIF(ProdA.ProductID Is Null,ProdB.ProductName,ProdA.ProductName) AS Results FROM ProdA RIGHT JOIN ProdB ON ProdA.ProductID = ProdB.ProductID;

ఇప్పుడు, మేము ఈ ప్రశ్నను అమలు చేసినప్పుడు, అది ఈ ఫలితాలను ఉత్పత్తి చేస్తుంది.

నేను ఏ PC భాగాన్ని అప్‌గ్రేడ్ చేయాలి

ఇక్కడ మేము ప్రతి ఎంట్రీ కోసం చూస్తాము, ఇక్కడ ప్రోడాకు విలువ ఉంటుంది, ఆ విలువ ఫలితాల కాలమ్‌లో ప్రతిబింబిస్తుంది. ProdA పట్టికలో ఎంట్రీ లేకపోతే, ProdB నుండి ఎంట్రీ ఫలితాలలో కనిపిస్తుంది, ఇది మా రీడర్ అడిగినది.

మైక్రోసాఫ్ట్ యాక్సెస్ నేర్చుకోవడానికి మరిన్ని వనరుల కోసం, జోయెల్ లీ మైక్రోసాఫ్ట్ యాక్సెస్ నేర్చుకోవడం ఎలాగో చూడండి: 5 ఉచిత ఆన్‌లైన్ వనరులు.

షేర్ చేయండి షేర్ చేయండి ట్వీట్ ఇమెయిల్ ఇది విండోస్ 11 కి అప్‌గ్రేడ్ చేయడం విలువైనదేనా?

Windows పునesరూపకల్పన చేయబడింది. విండోస్ 10 నుండి విండోస్ 11 కి మారడానికి మిమ్మల్ని ఒప్పించడానికి ఇది సరిపోతుందా?

తదుపరి చదవండి
సంబంధిత అంశాలు
  • ఉత్పాదకత
  • నిపుణులను అడగండి
రచయిత గురుంచి బ్రూస్ ఎప్పర్(13 కథనాలు ప్రచురించబడ్డాయి)

బ్రూస్ 70 ల నుండి ఎలక్ట్రానిక్స్‌తో ఆడుతున్నాడు, 80 ల ప్రారంభం నుండి కంప్యూటర్‌లు మరియు అతను మొత్తం సమయం ఉపయోగించని లేదా చూడని టెక్నాలజీ గురించిన ప్రశ్నలకు కచ్చితంగా సమాధానం ఇస్తున్నాడు. అతను గిటార్ వాయించడానికి ప్రయత్నించడం ద్వారా తనను తాను చికాకు పెట్టాడు.

బ్రూస్ ఎప్పర్ నుండి మరిన్ని

మా వార్తాలేఖకు సభ్యత్వాన్ని పొందండి

టెక్ చిట్కాలు, సమీక్షలు, ఉచిత ఈబుక్‌లు మరియు ప్రత్యేకమైన డీల్స్ కోసం మా వార్తాలేఖలో చేరండి!

సభ్యత్వం పొందడానికి ఇక్కడ క్లిక్ చేయండి