SQL ఫార్మాటర్ & వ్యాలిడేటర్ - ఆన్లైన్ ఉచిత SQL క్వేరీలను ఫార్మాట్ చేయండి
ఉచిత SQL ఫార్మాటర్ మరియు వ్యాలిడేటర్. స్వయంచాలకంగా సరైన ఇండెంటేషన్ మరియు అక్షర సంచయంతో SQL ఫార్మాట్ చేయండి. తక్షణంగా సింటాక్స్ లోపాలను తనిఖీ చేయండి. MySQL, PostgreSQL, SQL సర్వర్, Oracle తో పని చేస్తుంది.
SQL ఫార్మాటర్ & వాలిడేటర్
స్వయంచాలకంగా ఇండెంటేషన్, కీవర్డ్ అక్షరాల పెద్దతనం మరియు సింటాక్స్ లోపాల కనుగొనుటతో SQL క్వేరీలను ఫార్మాట్ చేయండి మరియు చెక్ చేయండి.
దస్త్రపరిశోధన
SQL ఫార్మాటర్ మరియు వాలిడేటర్ అంటే ఏమిటి?
SQL ఫార్మాటర్ అనేది SQL క్వెరీలో ఖాళీలు, పంక్తి విరామాలు, పెద్ద అక్షరాల్లోని కీవర్డ్లను ఏకరీతిగా మార్చే సాధనం. అందువల్ల దాన్ని చదవడం సులభంగా ఉంటుంది. SQL వాలిడేటర్ అదే క్వెరీలో మూసివేయని ఉద్ధరణ గుర్తు లేదా లేని కుండలీకరణం వంటి నిర్మాణపరమైన తప్పులను డేటాబేస్కు కనెక్ట్ కాకుండానే తనిఖీ చేస్తుంది. ఈ సాధనం ఈ రెండింటినీ చేస్తుంది. ఇది పూర్తిగా బ్రౌజర్లోనే నడుస్తుంది కాబట్టి, క్వెరీ పాఠ్యం సర్వర్కు ఎప్పుడూ పంపబడదు.
SQL క్వెరీని ఎలా ఫార్మాట్ చేయాలి
- ఇన్పుట్ బాక్స్లో SQL క్వెరీని పేస్ట్ చేయండి లేదా టైప్ చేయండి.
- ఫార్మాట్ చేసిన సంస్కరణ కుడివైపు స్వయంచాలకంగా కనిపిస్తుంది; నొక్కాల్సిన బటన్ ఏదీ లేదు.
- ఏవైనా వాలిడేషన్ లోపాలు అవుట్పుట్కి దిగువన జాబితాలో కనిపిస్తాయి.
- కాపీ బటన్ ఫార్మాట్ చేసిన క్వెరీని క్లిప్బోర్డ్కు పంపుతుంది.
SQL ఫార్మాటింగ్ నియమాలు
కీవర్డ్లను పెద్ద అక్షరాల్లోకి మార్చడం
స్ట్రింగ్ లేదా ఉద్ధరించిన ఐడెంటిఫైయర్ వెలుపల కనిపించే చోట్ల, ఫార్మాటర్ SQL కీవర్డ్లలోని నిర్దిష్ట జాబితాను పెద్ద అక్షరాల్లోకి మారుస్తుంది. ఈ జాబితాలో ప్రధాన క్లాజ్లు (SELECT, FROM, WHERE, GROUP BY, ORDER BY, HAVING, LIMIT, OFFSET), జాయిన్ పదాలు (JOIN, LEFT, RIGHT, INNER, OUTER, FULL, CROSS, NATURAL, ON, USING), సెట్ ఆపరేటర్లు (UNION, INTERSECT, EXCEPT), స్టేట్మెంట్ రకాలు (INSERT, UPDATE, DELETE, CREATE, ALTER, DROP), అలాగే సాధారణ ఆపరేటర్లు మరియు అనుసంధాయకాలు (AND, OR, NOT, IN, BETWEEN, LIKE, AS, CASE, WHEN, THEN, ELSE, END, ALL, DISTINCT, VALUES, SET, ఇంకా మరికొన్ని) ఉన్నాయి.
కీవర్డ్లలా కనిపించే కొన్ని పదాలను టైప్ చేసినట్టుగానే వదిలేస్తుంది. COUNT, SUM, AVG వంటి సమగ్ర ఫంక్షన్లు జాబితాలో లేవు. కాబట్టి count(*) చిన్న అక్షరాల్లో టైప్ చేసి ఉంటే అలాగే ఉంటుంది. క్రమబద్ధీకరణ దిశను సూచించే ASC, DESC పదాలు, అలాగే స్వతంత్రంగా ఉన్న TRUE, FALSE, NULL లిటరల్స్ కూడా మార్చబడవు. స్ట్రింగ్ లిటరల్ ('...'), ఉద్ధరించిన ఐడెంటిఫైయర్ ("...", `...`, లేదా [...]), లేదా వ్యాఖ్యలోని పాఠ్యం అందులో ఏదున్నా ఎప్పుడూ మార్చబడదు.
పంక్తి విరామాలు మరియు ఇండెంటేషన్
ప్రతి ప్రధాన క్లాజ్ ఎడమ మార్జిన్ వద్ద కొత్త పంక్తిలో ప్రారంభమవుతుంది: SELECT, FROM, WHERE, GROUP BY, ORDER BY, HAVING, LIMIT, మరియు OFFSET. జాయిన్ మొత్తం ఒక యూనిట్గా కొత్త పంక్తిలో ప్రారంభమవుతుంది. అందువల్ల LEFT JOIN, FULL OUTER JOIN, CROSS JOIN రెండు పంక్తులుగా విడిపోవు. కలిపే క్వెరీలను వేరు చేయడానికి UNION మరియు UNION ALL ముందు, తర్వాత ఖాళీ పంక్తి ఉంటుంది. CASE మరియు END కొత్త పంక్తిలో ప్రారంభమవుతాయి; WHEN, THEN, ELSE ఇండెంట్ చేసిన పంక్తిలో ప్రారంభమవుతాయి. ప్రతి కామా కూడా కొత్త పంక్తిని ప్రారంభిస్తుంది. కాబట్టి SELECT లేదా GROUP BYలోని కాలమ్ జాబితా ఒక్కో పంక్తికి ఒక్కో కాలమ్గా ఉంటుంది.
కుండలీకరణాల లోపల మాత్రమే ఇండెంటేషన్ కనిపిస్తుంది. సబ్క్వెరీ లేదా సమూహీకరించిన ఎక్స్ప్రెషన్లోని విషయం ప్రతి నెస్టింగ్ స్థాయికి రెండు ఖాళీల చొప్పున ఇండెంట్ అవుతుంది. రోజువారీగా ఉపయోగించే చాలా క్వెరీలకు కుండలీకరణాలు ఉండవు; అవి అన్ని క్లాజ్లను ఎడమ మార్జిన్కు సమంగా, ఎలాంటి ఇండెంటేషన్ లేకుండా చూపిస్తాయి.
ఉదాహరణ: ఫార్మాటింగ్కు ముందు మరియు తర్వాత
ముందు:
1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2తర్వాత:
1SELECT id,
2first_name,
3last_name,
4email
5FROM customers
6WHERE status = 'active'
7ORDER BY last_name,
8first_name;
9ప్రతి కీవర్డ్ పెద్ద అక్షరాల్లో ఉంటుంది; ప్రతి క్లాజ్ మరియు కాలమ్ తన సొంత పంక్తిలో ఉంటుంది. క్వెరీలో కుండలీకరణాలు లేవు కాబట్టి ఏ పంక్తీ ఇండెంట్ కాలేదు.
కుండలీకరణాలు ఉంటే అది మారుతుంది. పెద్ద క్వెరీలో భాగంగా ఉన్న (select count(*) from employees e where e.department_id = d.id)ను ఫార్మాట్ చేసినప్పుడు, లోపలి SELECT, FROM, WHERE రెండు ఖాళీలతో ఇండెంట్ అవుతాయి. count ఫంక్షన్ పేరు, జాబితాలోని కీవర్డ్ కాదు కాబట్టి చిన్న అక్షరాల్లోనే ఉంటుంది.
SQL వాలిడేటర్ తనిఖీ చేసేవి
డేటాబేస్కు కనెక్ట్ కాకుండానే వాలిడేటర్ ఈ నిర్మాణపరమైన సమస్యలను వెతుకుతుంది:
- మూసివేయని ఉద్ధరణ గుర్తులు, బ్రాకెట్లు మరియు వ్యాఖ్యలు. తెరిచి ఎప్పుడూ మూసివేయని సింగిల్ కోట్ (
'), డబుల్ కోట్ ("), బ్యాక్టిక్ (`), స్క్వేర్ బ్రాకెట్ ([), లేదా బ్లాక్ కామెంట్ (/*). - సమతుల్యం లేని కుండలీకరణాలు. స్ట్రింగ్లు మరియు వ్యాఖ్యల వెలుపల ఉన్న
(,)ల సంఖ్యలు సమానంగా ఉండాలి. - కుండలీకరణాలు లేని సబ్క్వెరీలు. ఏ కుండలీకరణాల వెలుపల ఉన్న రెండవ
SELECT, ఉదాహరణకుSELECT * FROM SELECT id FROM t. సెట్ ఆపరేటర్తో (UNION,UNION ALL,INTERSECT,EXCEPT) కలిపిన రెండు క్వెరీలకు కుండలీకరణాలు అవసరం లేదు కాబట్టి అవి లోపంగా గుర్తించబడవు. సెమీకోలన్తో వేరు చేసిన రెండు స్టేట్మెంట్లకూ ఇదే వర్తిస్తుంది. WHERE,ANDలేదాORతో ప్రారంభం కావడం. దాని ముందు ఏదీ లేకుండా ప్రారంభమయ్యే అనుసంధాయకం.- సరిపోలే కండిషన్ లేని
JOIN.JOINకుONలేదాUSINGక్లాజ్ అవసరం.CROSS JOIN,NATURAL JOINలకు అలాంటి క్లాజ్ అవసరం లేదు కాబట్టి అవి మినహాయింపు. - ఖాళీ
GROUP BYలేదాORDER BY. క్వెరీ చివరలో దాని తర్వాత కాలమ్లు లేకుండా క్లాజ్ కీవర్డ్ ఉండటం. - అసంపూర్ణమైన
WHEREకండిషన్. విలువ లేకుండా ముగిసేWHERE status =వంటి పోలిక, లేదా చివరలో దాని తర్వాత ఏమీ లేనిWHERE. FROMలేనిSELECT. సెలెక్ట్ జాబితాలో సాధారణ కాలమ్ పేర్లు మాత్రమే ఉన్నప్పుడు ఇది గుర్తించబడుతుంది. ఎక్స్ప్రెషన్, ఫంక్షన్ కాల్, లిటరల్, లేదాCURRENT_DATEవంటి కుండలీకరణాలు లేకుండా రాసిన విలువ ఫంక్షన్ స్వతంత్రంగా చెల్లుతుంది. కాబట్టిSELECT 1 + 1,SELECT CURRENT_DATEలోపాలుగా గుర్తించబడవు.- క్లాజ్ల క్రమం. రెండు నిర్దిష్ట తనిఖీలు ఉన్నాయి:
GROUP BY,WHEREకు ముందు రాకూడదు;ORDER BY,GROUP BYకు ముందు రాకూడదు. సబ్క్వెరీలోని భాగాలను పట్టించుకోకుండా, క్వెరీ పైస్థాయిలోనే ఇవి తనిఖీ చేయబడతాయి.
ఇది తనిఖీ చేయనివి
టేబుళ్లు లేదా కాలమ్లు నిజంగా ఉన్నాయా, జాయిన్ చేసిన కాలమ్ల రకాలు అనుకూలంగా ఉన్నాయా, లేదా క్వెరీ ఎలా పనిచేస్తుందో వాలిడేటర్కు తెలియదు. నిజమైన డేటాబేస్ అమలు చేసే ప్రతి నియమాన్నీ ఇది గుర్తించదు. ఉదాహరణకు, GROUP BY లేకుండా ఉపయోగించిన HAVINGను ఇది అంగీకరిస్తుంది. మొత్తం ఫలితాన్ని ఒక అంతర్గత సమూహంగా సమూహీకరించడం చెల్లుబాటు అయ్యే SQL కాబట్టి, వాలిడేటర్ దానికి లోపం చూపదు. అలాగే SELECT జాబితాలోని ప్రతి సమగ్రంకాని కాలమ్ GROUP BYలో కూడా ఉందో లేదో ఇది తనిఖీ చేయదు. ఆ నియమం చాలా డేటాబేస్లలో ఉంటుంది, కానీ ఈ సాధనం దాన్ని పరీక్షించదు. చివరలో సెమీకోలన్ లేకపోయినా లోపంగా గుర్తించదు; సెమీకోలన్ ఒక స్టేట్మెంట్ విభాజకం, ఒకే క్వెరీలో భాగం కాదు.
వాలిడేటర్ గుర్తించే లోపాల ఉదాహరణ
1SELECT id FROM orders
2JOIN users
3WHERE status =
4ఈ క్వెరీ రెండు లోపాలను ఉత్పత్తి చేస్తుంది:
- “ఒకటి లేదా అంతకంటే ఎక్కువ JOIN స్టేట్మెంట్లలో ON కండిషన్ లేదు.” —
JOIN usersకుONలేదాUSINGక్లాజ్ లేదు. - “WHERE కండిషన్ అసంపూర్ణంగా ఉంది.” — సమాన గుర్తు తర్వాత
status =కు విలువ లేదు.
తరచుగా అడిగే ప్రశ్నలు
ఈ సాధనం MySQL, PostgreSQL, SQL Server మరియు Oracleతో పనిచేస్తుందా?
ఆ డేటాబేస్లలో ఉమ్మడిగా ఉన్న ప్రధాన SQL సింటాక్స్ను ఇది నిర్వహిస్తుంది: SELECT, JOIN, WHERE, GROUP BY మరియు ఇలాంటి క్లాజ్లు. PostgreSQL అర్రే లిటరల్స్ లేదా T-SQL ప్రొసీజరల్ బ్లాక్ల వంటి డేటాబేస్-నిర్దిష్ట సింటాక్స్ ఫార్మాటర్ను ఆపదు, కానీ వాటికి ప్రత్యేక నిర్వహణ లేకపోవచ్చు.
SQL క్వెరీ సర్వర్కు పంపబడుతుందా?
లేదు. ఫార్మాటింగ్ మరియు వాలిడేషన్ రెండూ బ్రౌజర్లోనే నడుస్తాయి. క్వెరీ పాఠ్యం ఎక్కడికీ పంపబడదు.
COUNT, SUM మరియు AVG వంటి ఫంక్షన్ పేర్లను ఇది పెద్ద అక్షరాల్లోకి మారుస్తుందా?
లేదు. క్లాజ్ కీవర్డ్లు, జాయిన్ పదాలు, అలాగే నిర్దిష్ట ఆపరేటర్ల జాబితా మాత్రమే పెద్ద అక్షరాల్లోకి మార్చబడతాయి. count, sum, avg వంటి ఫంక్షన్ పేర్లు, అలాగే asc, desc, true, false, null పదాలు టైప్ చేసినట్టుగానే ఉంచబడతాయి.
GROUP BY లేకుండా ఉపయోగించిన HAVINGను వాలిడేటర్ గుర్తిస్తుందా?
లేదు. GROUP BY లేకుండా ఉన్న HAVING క్లాజ్ మొత్తం ఫలితాన్ని ఒకే సమూహంగా సమూహీకరిస్తుంది. ఇది ISO/IEC 9075 ప్రమాణం ప్రకారం చెల్లుబాటు అయ్యే SQL, కాబట్టి వాలిడేటర్ దాన్ని లోపంగా పరిగణించదు.
ప్రతి SQL తప్పును వాలిడేటర్ గుర్తించగలదా?
లేదు. ఇది కుండలీకరణాలు, ఉద్ధరణ గుర్తులు, కొన్ని క్లాజ్-క్రమ నియమాలు, అలాగే కండిషన్ లేని JOIN వంటి కొన్ని సాధారణ తార్కిక లోపాలను తనిఖీ చేస్తుంది. టేబుల్ లేదా కాలమ్ పేర్లు, డేటా రకాలు, క్వెరీ పనితీరును ఇది తనిఖీ చేయదు. క్వెరీ సరిగ్గా నడుస్తుందో నిర్ధారించడానికి నిజమైన డేటాబేస్ కనెక్షన్ ఇంకా అవసరం.
ఫార్మాటింగ్ క్వెరీ ఎలా నడుస్తుందో మార్చుతుందా?
లేదు. ఫార్మాటింగ్ ఖాళీ ప్రదేశాలను, ఉద్ధరించని కీవర్డ్ల అక్షర పరిమాణాన్ని మాత్రమే మార్చుతుంది. స్ట్రింగ్, ఉద్ధరించిన ఐడెంటిఫైయర్ లేదా వ్యాఖ్యలోని ఏదైనా పాఠ్యం మార్పు లేకుండా కాపీ చేయబడుతుంది; కాబట్టి క్వెరీ అర్థం ముందున్నట్టుగానే ఉంటుంది.