# SELECT आणि WHERE: हवे ते rows निवडा

Source: https://ravindrabagale.com/mr/cyber/part-05/ch10-mysql-part-1-install-create-insert-and-select/10-5-select-basics-and-where.html
Language: mr (Marathi with English technical terms)

SELECT कोणती माहिती हवी ते सांगतो. WHERE कोणत्या rows घ्यायच्या ते filter करतो.

SELECT * FROM students;                              -- all columns (avoid in apps)
SELECT name, city FROM students;                     -- chosen columns
SELECT name, fees_paid FROM students WHERE city = 'Pune';
SELECT name, age FROM students WHERE age > 25;
SELECT name FROM students WHERE city = 'Nagpur' AND fees_paid >= 10000;
SELECT name FROM students WHERE city = 'Pune' OR city = 'Nashik';
SELECT name FROM students WHERE NOT city = 'Pune';
SELECT name FROM students WHERE city <> 'Pune';      -- same as above

 | Operator
 | Meaning

 | =, <> or !=
 | Equal, not equal

 | >, <, >=, <=
 | Comparisons

 | AND, OR, NOT
 | Combine conditions (use brackets to be clear)

= समान; <>/!= वेगळं; >, <, >=, <= comparisons. AND मध्ये दोन्ही conditions, OR मध्ये किमान एक आणि NOT मध्ये उलटी condition. App मध्ये आवश्यक columns स्पष्ट निवडले तर अनावश्यक data कमी येतो.

Pune rows चं source output

 | name
 | fees_paid

 | Ravindra Bagale
 | 15000.00

 | Shraddha Bagale
 | 15000.00

 | Rani
 | 15000.00

मूळ dataset मध्ये Ravindra, Shraddha आणि Rani यांची fees_paid 15000.00 आहे. तुम्ही मागच्या practice मध्ये data वाढवला असेल तर output वेगळा येऊ शकतो.

Security मध्ये उपयोग

Source मधलं classic ' OR '1'='1 उदाहरण vulnerable string-built query मध्ये always-true condition कशी घुसू शकते हे दाखवतं. Login bypass होईल का हे actual query/context वर ठरतं; payload प्रत्येक system वर चालतो असा नियम नाही. बचावासाठी input SQL code म्हणून जोडू नका—parameterized queries वापरा.

Practice

तीन queries लिहा: Nagpur मधले students; age 24 पेक्षा जास्त आणि fees 15000 असलेले; Pune बाहेरचे students.

रवींद्र बागले यांची tip

AND ला OR पेक्षा precedence जास्त आहे. स्पष्ट grouping साठी WHERE (city='Pune' OR city='Nashik') AND age > 25 असे brackets वापरा.
