4.1 పరిమితి

మీ SQL ప్రశ్న చాలా ఎక్కువ డేటాను అందించాలని మీరు ఆశించినట్లయితే, మీరు గరిష్ట సంఖ్యను ముందుగానే పరిమితం చేయవచ్చు. అన్నింటికంటే, పట్టికలు వేల లేదా మిలియన్ల వరుసలను కలిగి ఉండవచ్చు.

SQL ఉపయోగించి ప్రశ్న ఫలితంలో అడ్డు వరుసల సంఖ్యను పరిమితం చేయడం చాలా సులభం చేస్తుంది LIMIT. ఈ కీవర్డ్ SQL ప్రశ్న చివరిలో ఉపయోగించబడుతుంది మరియు ఇలా కనిపిస్తుంది:

LIMIT quantity

మా స్టోర్ ఉత్పత్తుల జాబితాను కలిగి ఉన్న ఉత్పత్తి పట్టికకు వ్యతిరేకంగా ఒక ప్రశ్నను వ్రాస్దాం. కానీ మాకు చాలా విజయవంతమైన స్టోర్ ఉంది మరియు మేము చాలా ఉత్పత్తులను విక్రయిస్తున్నందున, మేము సమాధానం యొక్క మొదటి 10 లైన్లను మాత్రమే పొందాలనుకుంటున్నాము. ఆ అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT * FROM product
LIMIT 10

మరియు మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

id పేరు బ్రాండ్ ధర లెక్కించండి
1 పట్టిక IKEA 20.00 15
2 కుర్చీ IKEA 5.00 45
3 సోఫా IKEA 80.00 10
4 మం చం IKEA 75.00 10
5 క్లోసెట్ బాష్ 125.00 15
6 షెల్ఫ్ షెల్ఫ్ 25.00 114
7 టీవీ LG 350.00 4
8 దీపం LG 15.00 100
9 డ్రస్సర్ IKEA 99.00 10
10 ప్లేట్ బాష్ 199.00 10

ఇప్పుడు మేము మొదటి 5 వరుసలను మాత్రమే అభ్యర్థిస్తాము. ఆ అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT * FROM product
LIMIT 5

మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

id పేరు బ్రాండ్ ధర లెక్కించండి
1 పట్టిక IKEA 20.00 15
2 కుర్చీ IKEA 5.00 45
3 సోఫా IKEA 80.00 10
4 మం చం IKEA 75.00 10
5 క్లోసెట్ బాష్ 125.00 15

4.2 ఆఫ్‌సెట్

చివరిసారి మేము సర్వర్ ప్రతిస్పందనలో లైన్ల సంఖ్యను ఎలా పరిమితం చేయాలో నేర్చుకున్నాము. మరియు ఇప్పుడు, ఉత్పత్తి పట్టిక నుండి వేలాది వరుసలకు బదులుగా, మేము మొదటి 10 వరుసలను పొందవచ్చు మరియు వాటిని వినియోగదారుకు ప్రదర్శిస్తాము. ఇది సంపూర్ణంగా ఉంది. కానీ మనం రెండవ 10 వరుసలను ఎలా ప్రదర్శిస్తాము? మరియు మూడవది?

మనం వ్రాస్తే LIMIT 20, లేదా LIMIT 30, సర్వర్ వరుసగా 20 మరియు 30 వరుసలను తిరిగి ఇవ్వలేదా?

ఈ సందర్భంలోనే SQL ప్రత్యేక కీవర్డ్‌ని కలిగి ఉంది, OFFSETదానితో మీరు దాని ప్రతిస్పందనలో N లైన్‌లను దాటవేయమని సర్వర్‌ని అడగవచ్చు. ఈ కీవర్డ్ SQL ప్రశ్న (తర్వాత) చివరిలో ఉపయోగించబడుతుంది LIMITమరియు ఇలా కనిపిస్తుంది:

OFFSET quantity

ఉత్పత్తి పట్టికలో ఒక ప్రశ్నను వ్రాసి , 11 నుండి 15 వరకు రికార్డ్‌లను పొందడానికి ప్రయత్నిద్దాం. మరో మాటలో చెప్పాలంటే, మేము సర్వర్‌ని మాకు 5 అడ్డు వరుసలను తిరిగి ఇవ్వమని అడుగుతున్నాము, అయితే ప్రతిస్పందనలో మొదటి 10 వరుసలను దాటవేయండి. ఆ అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT * FROM product
LIMIT 5
OFFSET 10

మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

id పేరు బ్రాండ్ ధర లెక్కించండి
పదకొండు చేతులకుర్చీ బాష్ 44.00 8
12 పూల కుండి స్మార్ట్‌ఫ్లవర్ 99.00 9
13 నిలబడు IKEA 100.00 10

సర్వర్ కేవలం 3 అడ్డు వరుసలను మాత్రమే అందించింది, అంటే మా పట్టికలో మొత్తం 13 వరుసలు ఉన్నాయి. సర్వర్ మొదటి 10ని దాటవేసి, తదుపరి 5ని అందించింది.

4.3 విభిన్నతను ఎంచుకోండి

మరొక ఉపయోగకరమైన కీవర్డ్ DISTINCT. పట్టికలో డూప్లికేట్ రికార్డులు ఉన్నప్పుడు మరియు మేము నకిలీలను తీసివేయాలనుకున్నప్పుడు ఇది ఉపయోగించబడుతుంది.

మా పట్టికలో నకిలీలు ఎక్కడ నుండి వస్తాయి? పట్టికలో నకిలీలు ఉండకపోవచ్చు, కానీ ప్రశ్న ఫలితంగా, ఇది సులభం. మేము విక్రయించే అన్ని ఉత్పత్తుల బ్రాండ్‌లను తిరిగి ఇచ్చే ప్రశ్నను వ్రాస్దాం. ఆ అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT brand FROM product

మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

బ్రాండ్
IKEA
IKEA
IKEA
IKEA
బాష్
బాష్
LG
LG
IKEA
బాష్
బాష్
స్మార్ట్‌ఫ్లవర్
IKEA

ఈ పట్టికలో డూప్లికేట్ అడ్డు వరుసలు ఉన్నాయని చూడటం సులభం. నకిలీలు లేవని నిర్ధారించుకోవడానికి మరియు మీరు కీవర్డ్‌ని ఉపయోగించాల్సి ఉంటుంది DISTINCT. సరిదిద్దబడిన అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT DISTINCT brand
FROM product

మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

బ్రాండ్
IKEA
బాష్
LG
స్మార్ట్‌ఫ్లవర్

చాలా బాగుంది. అది కాదా? ;)

4.4 ద్వారా ఆర్డర్

చివరకు మేము క్రమబద్ధీకరణకు వచ్చాము . ప్రశ్న ఫలితాలను క్రమబద్ధీకరించడానికి, మీరు కీవర్డ్‌ని ఉపయోగించాలి ORDER BY. సాంకేతికంగా, ఇవి రెండు పదాలు, కానీ సారాంశం ముఖ్యమైనది కాదు. రెండు పదాలు, ఒక ఆపరేటర్.

ఇది తప్పనిసరిగా కీవర్డ్ తర్వాత వ్రాయబడాలి WHERE, కానీ ముందు LIMITమరియు OFFSET. ORDER BYమీరు తర్వాత వ్రాస్తే LIMIT, SQL సర్వర్ మీకు లోపాన్ని అందిస్తుంది.

సాధారణంగా, ఈ ఆపరేటర్ ఇలా కనిపిస్తుంది:

ORDER BY column order

ఇక్కడ నిలువు వరుస అనేది పట్టికలోని నిలువు వరుస పేరు / క్రమబద్ధీకరణ ఫలితం. మరియు ఆర్డర్ అనేది క్రమబద్ధమైన క్రమం.

క్రమబద్ధీకరణ మూడు రకాలుగా ఉంటుంది:

  • ASC(ఆరోహణ నుండి) - ఆరోహణ;
  • DESC(అవరోహణ నుండి) - అవరోహణ;
  • పేర్కొనబడలేదు - ఉపయోగించబడుతుందిASC

ఆరోహణ క్రమంలో ధర ఆధారంగా క్రమబద్ధీకరించబడిన ఉత్పత్తుల జాబితాను తిరిగి ఇచ్చే ప్రశ్నను వ్రాద్దాం. ఆ అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT * FROM product
ORDER BY price ASC
LIMIT 10

మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

id పేరు బ్రాండ్ ధర లెక్కించండి
2 కుర్చీ IKEA 5.00 45
8 దీపం LG 15.00 100
1 పట్టిక IKEA 20.00 15
6 షెల్ఫ్ బాష్ 25.00 114
పదకొండు చేతులకుర్చీ బాష్ 44.00 8
4 మం చం IKEA 75.00 10
3 సోఫా IKEA 80.00 10
12 పూల కుండి స్మార్ట్‌ఫ్లవర్ 99.00 9
9 డ్రస్సర్ IKEA 99.00 10
13 నిలబడు IKEA 100.00 10

మేము క్రమబద్ధీకరణ క్రమాన్ని పేర్కొనకపోతే అదే ఫలితాన్ని పొందుతాము - మేము పదాన్ని దాటవేస్తాము ASC.

4.5 బహుళ నిలువు వరుసల ద్వారా ఆర్డర్ చేయండి

ORDER BYఅనేక నిలువు వరుసల ద్వారా ఫలితాన్ని క్రమబద్ధీకరించడానికి ఆపరేటర్ మిమ్మల్ని అనుమతిస్తుంది. మొదటి నిలువు వరుసలో చాలా నకిలీ అంశాలు ఉన్నప్పుడు ఇది చాలా ఉపయోగకరంగా ఉంటుంది. ఈ ఆపరేటర్ యొక్క సాధారణ రూపం క్రింది విధంగా ఉంది:

ORDER BY column 1 order 1, column 2 order 2, column 3 order 3

మరో మాటలో చెప్పాలంటే, మొదటి నిలువు వరుస ద్వారా క్రమబద్ధీకరించిన తర్వాత మీకు సమీపంలో అనేక సారూప్య విలువలు ఉంటే, అవి రెండవ నిలువు వరుస ద్వారా క్రమబద్ధీకరించబడతాయి మరియు మొదలైనవి.

మన ఉత్పత్తులను బ్రాండ్ వారీగా మరియు అదే బ్రాండ్‌తో ఉన్న ఉత్పత్తుల కోసం - వాటి సంఖ్య యొక్క అవరోహణ క్రమంలో క్రమబద్ధీకరించే ప్రశ్నను వ్రాద్దాం. ఆ అభ్యర్థన ఎలా ఉంటుందో ఇక్కడ ఉంది:

SELECT * FROM product
ORDER BY brand ASC, count
DESC

మేము ఈ క్రింది ప్రశ్న ఫలితాన్ని పొందుతాము:

id పేరు బ్రాండ్ ధర లెక్కించండి
6 షెల్ఫ్ బాష్ 25.00 114
5 క్లోసెట్ బాష్ 125.00 15
10 ప్లేట్ బాష్ 199.00 10
పదకొండు చేతులకుర్చీ బాష్ 44.00 8
2 కుర్చీ IKEA 5.00 45
1 పట్టిక IKEA 20.00 15
9 డ్రస్సర్ IKEA 99.00 10
13 నిలబడు IKEA 100.00 10
4 మం చం IKEA 75.00 10
3 సోఫా IKEA 80.00 10
8 దీపం LG 15.00 100
7 టీవీ LG 350.00 4
12 పూల కుండి స్మార్ట్‌ఫ్లవర్ 99.00 9

పట్టికను దగ్గరగా చూడండి - దాని అడ్డు వరుసలు బ్రాండ్ పేరు (అక్షరమాల క్రమం) ద్వారా క్రమబద్ధీకరించబడతాయి మరియు అదే బ్రాండ్ పేరుతో ఉన్న అడ్డు వరుసలు అవరోహణ క్రమంలో (చివరి నిలువు వరుస) ఉత్పత్తి సంఖ్య ద్వారా క్రమబద్ధీకరించబడతాయి.