4.1 வரம்பு

உங்கள் SQL வினவல் அதிக தரவை வழங்கும் என நீங்கள் எதிர்பார்த்தால், அதிகபட்ச எண்ணிக்கையை முன்கூட்டியே வரம்பிடலாம். எல்லாவற்றிற்கும் மேலாக, அட்டவணைகள் ஆயிரக்கணக்கான அல்லது மில்லியன் கணக்கான வரிசைகளைக் கொண்டிருக்கலாம்.

SQL ஐப் பயன்படுத்தி வினவலின் முடிவில் உள்ள வரிசைகளின் எண்ணிக்கையை மிக எளிதாக்குகிறது LIMIT. இந்த முக்கிய சொல் SQL வினவலின் முடிவில் பயன்படுத்தப்படுகிறது மற்றும் இது போல் தெரிகிறது:

LIMIT quantity

எங்கள் கடையின் தயாரிப்புகளின் பட்டியலைக் கொண்ட தயாரிப்பு அட்டவணைக்கு எதிராக வினவலை எழுதுவோம். ஆனால் எங்களிடம் ஒரு வெற்றிகரமான கடை இருப்பதால், நாங்கள் நிறைய பொருட்களை விற்பனை செய்கிறோம், பதிலின் முதல் 10 வரிகளை மட்டுமே பெற விரும்புகிறோம். அந்த கோரிக்கை எப்படி இருக்கும் என்பது இங்கே:

SELECT * FROM product
LIMIT 10

மேலும் பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

ஐடி பெயர் பிராண்ட் விலை எண்ணிக்கை
1 மேசை ஐ.கே.இ.ஏ 20.00 15
2 நாற்காலி ஐ.கே.இ.ஏ 5.00 45
3 சோபா ஐ.கே.இ.ஏ 80.00 10
4 படுக்கை ஐ.கே.இ.ஏ 75.00 10
5 மறைவை போஷ் 125.00 15
6 அலமாரி அலமாரி 25.00 114
7 டி.வி எல்ஜி 350.00 4
8 விளக்கு எல்ஜி 15.00 100
9 டிரஸ்ஸர் ஐ.கே.இ.ஏ 99.00 10
10 தட்டு போஷ் 199.00 10

இப்போது நாம் முதல் 5 வரிசைகளை மட்டுமே கோருவோம். அந்த கோரிக்கை எப்படி இருக்கும் என்பது இங்கே:

SELECT * FROM product
LIMIT 5

பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

ஐடி பெயர் பிராண்ட் விலை எண்ணிக்கை
1 மேசை ஐ.கே.இ.ஏ 20.00 15
2 நாற்காலி ஐ.கே.இ.ஏ 5.00 45
3 சோபா ஐ.கே.இ.ஏ 80.00 10
4 படுக்கை ஐ.கே.இ.ஏ 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

பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

ஐடி பெயர் பிராண்ட் விலை எண்ணிக்கை
பதினொரு நாற்காலி போஷ் 44.00 8
12 பூந்தொட்டி ஸ்மார்ட்ஃப்ளவர் 99.00 9
13 நிற்க ஐ.கே.இ.ஏ 100.00 10

சேவையகம் 3 வரிசைகளை மட்டுமே வழங்கியது, அதாவது எங்கள் அட்டவணையில் மொத்தம் 13 வரிசைகள் இருந்தன. சேவையகம் முதல் 10ஐத் தவிர்த்துவிட்டு அடுத்த 5ஐத் திருப்பியளித்தது.

4.3 வேறுபட்டதைத் தேர்ந்தெடுக்கவும்

மற்றொரு பயனுள்ள முக்கிய சொல் DISTINCT. டேபிளில் டூப்ளிகேட் ரெக்கார்டுகள் இருக்கும் போது இது பயன்படுத்தப்படும், மேலும் நகல்களை அகற்ற வேண்டும்.

எங்கள் அட்டவணையில் நகல் எங்கிருந்து வருகிறது? அட்டவணையில் நகல்கள் இல்லாமல் இருக்கலாம், ஆனால் வினவலின் விளைவாக, அது எளிதானது. நாங்கள் விற்கும் அனைத்து தயாரிப்புகளின் பிராண்டுகளையும் திருப்பித் தரும் வினவலை எழுதுவோம். அந்த கோரிக்கை எப்படி இருக்கும் என்பது இங்கே:

SELECT brand FROM product

பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

பிராண்ட்
ஐ.கே.இ.ஏ
ஐ.கே.இ.ஏ
ஐ.கே.இ.ஏ
ஐ.கே.இ.ஏ
போஷ்
போஷ்
எல்ஜி
எல்ஜி
ஐ.கே.இ.ஏ
போஷ்
போஷ்
ஸ்மார்ட்ஃப்ளவர்
ஐ.கே.இ.ஏ

இந்த அட்டவணையில் நகல் வரிசைகள் இருப்பதைப் பார்ப்பது எளிது. நகல்கள் எதுவும் இல்லை என்பதை உறுதிசெய்யவும், நீங்கள் முக்கிய சொல்லைப் பயன்படுத்த வேண்டும் DISTINCT. திருத்தப்பட்ட கோரிக்கை எப்படி இருக்கும் என்பது இங்கே:

SELECT DISTINCT brand
FROM product

பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

பிராண்ட்
ஐ.கே.இ.ஏ
போஷ்
எல்ஜி
ஸ்மார்ட்ஃப்ளவர்

மிகவும் சிறப்பாக. ஆமாம் தானே? ;)

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

பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

ஐடி பெயர் பிராண்ட் விலை எண்ணிக்கை
2 நாற்காலி ஐ.கே.இ.ஏ 5.00 45
8 விளக்கு எல்ஜி 15.00 100
1 மேசை ஐ.கே.இ.ஏ 20.00 15
6 அலமாரி போஷ் 25.00 114
பதினொரு நாற்காலி போஷ் 44.00 8
4 படுக்கை ஐ.கே.இ.ஏ 75.00 10
3 சோபா ஐ.கே.இ.ஏ 80.00 10
12 பூந்தொட்டி ஸ்மார்ட்ஃப்ளவர் 99.00 9
9 டிரஸ்ஸர் ஐ.கே.இ.ஏ 99.00 10
13 நிற்க ஐ.கே.இ.ஏ 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

பின்வரும் வினவல் முடிவைப் பெறுகிறோம்:

ஐடி பெயர் பிராண்ட் விலை எண்ணிக்கை
6 அலமாரி போஷ் 25.00 114
5 மறைவை போஷ் 125.00 15
10 தட்டு போஷ் 199.00 10
பதினொரு நாற்காலி போஷ் 44.00 8
2 நாற்காலி ஐ.கே.இ.ஏ 5.00 45
1 மேசை ஐ.கே.இ.ஏ 20.00 15
9 டிரஸ்ஸர் ஐ.கே.இ.ஏ 99.00 10
13 நிற்க ஐ.கே.இ.ஏ 100.00 10
4 படுக்கை ஐ.கே.இ.ஏ 75.00 10
3 சோபா ஐ.கே.இ.ஏ 80.00 10
8 விளக்கு எல்ஜி 15.00 100
7 டி.வி எல்ஜி 350.00 4
12 பூந்தொட்டி ஸ்மார்ட்ஃப்ளவர் 99.00 9

அட்டவணையை உன்னிப்பாகப் பாருங்கள் - அதன் வரிசைகள் பிராண்ட் பெயரால் (அகரவரிசைப்படி) வரிசைப்படுத்தப்படுகின்றன, அதே பிராண்ட் பெயரைக் கொண்ட வரிசைகள் தயாரிப்பு எண்ணின்படி இறங்கு வரிசையில் (கடைசி நெடுவரிசை) வரிசைப்படுத்தப்படுகின்றன.