SQL வடிவமைப்பாளர் & சரிபார்ப்பாளர் - SQL வினவல்களை இலவசமாக ஆன்லைனில் வடிவமைக்கவும்
இலவச SQL வடிவமைப்பாளர் மற்றும் சரிபார்ப்பாளர். தானாகவே SQL ஐ சரியான இடைவெளி மற்றும் பெரிய எழுத்துக்களுடன் வடிவமைக்கவும். தொடர்பு பிழைகளை உடனடியாக சரிபார்க்கவும். MySQL, PostgreSQL, SQL சேவையாளர், Oracle உடன் வேலை செய்கிறது.
SQL வடிவமைப்பாளர் & சரிபார்ப்பாளர்
தானியங்கு இடைவெளி, கீச்சொற்கள் பெரிய எழுத்தில் மாற்றம் மற்றும் தொடரியல் பிழை கண்டறிதல் ஆகியவற்றுடன் SQL வினவல்களை வடிவமைக்கவும் சரிபார்க்கவும்.
ஆவணம்
SQL வடிவமைப்பு ஏன் முக்கியம்
ஒரு தரவுத்தள திட்டத்தை வாரிசாக பெற்ற நிலையில் SQL கோடு கண்மூடித்தனமாக தட்டச்சு செய்யப்பட்ட மாதிரி தெரிகிறதா? நீங்கள் தனிமையில் இல்லை. மோசமாக வடிவமைக்கப்பட்ட SQL தரவுத்தள மேம்பாட்டில் பிழைகள் மற்றும் வீணாகும் நேரத்தின் மிகப்பொதுவான மூலங்களில் ஒன்றாகும்.
இந்த SQL வடிவமைப்பாளர் மற்றும் சரிபார்ப்பாளர் உங்கள் கேள்விகளை தானாகவே சுத்தப்படுத்த உதவுகிறது. உங்கள் SQL ஐ ஒட்டவும், இது உடனடியாக சரியான இடைவெளி, முக்கிய சொற்களை பெரிய எழுத்துக்களில் மாற்றுகிறது மற்றும் சாக்கு பிழைகளை சரிபார்க்கிறது - அனைத்தும் உங்கள் உலாவியில் எந்த சர்வருக்கும் தரவை அனுப்பாமல். பொதுவாக 10-15 நிமிடங்கள் கைமுறையாக வடிவமைப்பதற்கு பதிலாக இது சில நொடிகளில் நிறைவேற்றுகிறது.
தரவுத்தள அணிகளுடன் பணிபுரிந்த அனுபவத்தில், வடிவமைப்பு மட்டுமல்ல - உற்பத்தி நிலைக்கு வருவதற்கு முன்பே பிழைகளைக் கண்டறிவதே மிகப்பெரிய நேரம் சேமிப்பாகும். தவறாக வைக்கப்பட்ட அடைப்புக்குறி அல்லது மூடப்படாத மேற்கோள் பல மணி நேரம் பிழை நீக்கத்தில் வீணாகும். இந்த கருவி அந்த பிரச்சினைகளை உடனடியாக கண்டறிகிறது, உங்கள் தரவுத்தளத்தில் எதையும் நிறைவேற்றுவதற்கு முன்பே.
SQL வடிவமைப்பாளரைப் பயன்படுத்தும் வழி
இடைமுகம் நிச்சயமாக குறைந்தபட்சமாக இருக்கிறது—வெறுமனே ஒட்டி செல்லுங்கள்:
- SQL-ஐ ஒட்டுங்கள் உள்ளீட்டு பெட்டகத்தில் (அல்லது நேரடியாக தட்டச்சு செய்யுங்கள் நீங்கள் சுருக்கமாக எழுதுகிறீர்கள் என்றால்)
- தானாகவே வடிவமைக்கப்பட்டதைப் பார்க்கவும் நீங்கள் தட்டச்சு செய்யும்போது—கிளிக் செய்ய பொத்தான்கள் இல்லை, அமைப்பு வடிவமைக்க எதுவும் இல்லை
- சரிபார்ப்பு பிழைகளைப் பார்க்கவும் வடிவமைக்கப்பட்ட வெளியீட்டிற்கு கீழே தோன்றினால்
- வடிவமைக்கப்பட்ட SQL-ஐ நகலெடுக்கவும் ஒரு கிளிக்கில் IDE, ஆவணப்படுத்தல் அல்லது தரவுத்தள கருவியில் பயன்படுத்த
ஏதாவது உலாவியுடன் சாதனத்தில் வேலை செய்கிறது. வடிவமைப்பு முற்றிலும் வாடிக்கையாளர் பக்கத்தில் நடக்கிறது, எனவே உங்கள் வினவல்கள் ஒருபோதும் உங்கள் கணினியை விட்டு வெளியேறாது—தயாரிப்பு தரவுத்தள அமைப்புகள் அல்லது நுண்ணிய திட்டங்களுடன் வேலை செய்யும்போது முக்கியமானது.
SQL வடிவமைப்பாளர் என்ன செய்கிறது
சொல்வாக்கியங்கள் தலைப்பெழுத்தில்
அனைத்து SQL சொல்வாக்கியங்கள் தானாகவே தலைப்பெழுத்தில் மாற்றப்படுகின்றன—SELECT, FROM, WHERE, JOIN மற்றும் பிற. இது பெரும்பாலான தரவுத்தள குழுக்கள் பயன்படுத்தும் மரபுக்கேற்ப, மேலும் சொல்வாக்கியங்களை உங்கள் அட்டவணை மற்றும் தூண் பெயர்களிலிருந்து தெளிவாக வேறுபடுத்துகிறது. நீங்கள் சிக்கலான வினவலைப் பார்க்கும்போது, இந்த தெளிவான பிரிப்பு வினவல் அமைப்பை ஒரு பார்வையில் அடையாளம் கண்டுகொள்ள உதவுகிறது.
சுமார் இடைவெளி
வடிவமைப்பாளர் SQL ஐ தற்செயலான வரிகளைச் சேர்ப்பதற்குப் பதிலாக தர்க்கரீதியான தொடர்பின் அடிப்படையில் அமைக்கிறது. SELECT மற்றும் FROM போன்ற முக்கிய சொற்றொடர்கள் இடது விளிம்பில் தொடங்குகின்றன. JOIN சொற்றொடர்கள் FROM இன் கீழ் இடைவெளி கொடுக்கப்பட்டு, அவை அட்டவணை தேர்வின் பகுதி என்பதைக் காட்டுகின்றன. துணை வினவல்கள் கூடுதல் இடைவெளி மட்டங்கள் பெறுகின்றன, நெரங்கிய தர்க்கத்தை தெளிவாக்குகின்றன.
நடைமுறையில் நடக்கும் நிலை: பல இணைப்புகள் மற்றும் துணை வினவல்கள் கொண்ட வினவலில், சரியான இடைவெளி வினவல் அமைப்பை ஒவ்வொரு வார்த்தையையும் படிக்காமல் பார்க்க உதவுகிறது. நீங்கள் ஒரு இணைப்பு எங்கு முடிகிறது மற்றும் மற்றொன்று எங்கு தொடங்குகிறது, அல்லது SELECT பட்டியலில் துணை வினவல் எங்கு பயன்படுத்தப்பட்டுள்ளது என்பதை உடனடியாகக் கண்டுகொள்ளலாம்.
தர்க்கரீதியான வரிகள்
வரிகள் எல்லா இடங்களிலும் அல்ல, மாறாக வாசிப்பிற்கு உதவும் இடங்களில் மட்டுமே தோன்றுகின்றன. ஒவ்வொரு முக்கிய சொற்றொடரும் தனது சொந்த வரியைப் பெறுகிறது. கமா பிரிக்கப்பட்ட பட்டியல்களில் (SELECT இல் தூண் பெயர்கள் போன்ற) ஒவ்வொரு பொருளும் சரியான இடைவெளியுடன் தனது சொந்த வரியைப் பெறுகிறது. துணை வினவல்கள் தெளிவாகப் பிரிக்கப்பட்டுள்ளன. CASE கூற்றுகள் தெளிவுக்காக WHEN, THEN, மற்றும் ELSE இல் பிரிக்கப்பட்டுள்ளன.
இடைவெளி தொழிற்துறையில் பயன்படுத்தப்படும் SQL பாணி வழிகாட்டி மரபுகளைப் பின்பற்றுகிறது, இதன் பொருள் உங்கள் வடிவமைக்கப்பட்ட SQL பிற மேம்பாட்டாளர்களுக்கு பரிசுத்தமாகத் தெரியும் என்பதாகும்.
SQL சரிபார்ப்பு: என்ன சரிபார்க்கப்படுகிறது
வேகமாக SQL எழுதும்போது பொதுவாக தவறிப்போகும் பிழைகளை சரிபார்ப்பாளர் பிடிக்கிறது. இது உங்கள் தரவுத்தள வினவல் பகுப்பாய்வாளரை மாற்ற மாட்டாது, ஆனால் வினவலை இயக்குவதற்கு முன்பே பொதுவான தவறுகளைப் பிடிக்கிறது.
கட்டமைப்பு பிழைகள்
சமநிலையற்ற அடைப்புக்குறிகள் சிக்கலான வினவல்களில் மிகவும் பொதுவாக நிகழ்கின்றன. சரிபார்ப்பாளர் பொருந்தாத அடைப்புக்குறிகளை உடனடியாகக் குறிக்க திறந்த மற்றும் மூடிய அடைப்புக்குறிகளை எண்ணுகிறது. 200 வரிகள் கொண்ட வினவலில் ஒரு அடைப்புக்குறி தவறிப்போனதால் உற்பத்தி சம்பவங்கள் ஏற்பட்டுள்ளன—இது அவற்றை சீக்கிரம் பிடிக்கிறது.
மூடப்படாத சரம் இலக்கிகள் சரம் மதிப்பில் மூடும் மேற்கோளை மறந்தால் நிகழ்கின்றன. உங்கள் தரவுத்தளம் இவற்றை உடனடியாக நிராகரிக்கும், ஆனால் இங்கு அவற்றைப் பிடிப்பது ஒரு சுற்று பயணத்தைச் சேமிக்கிறது.
சுருக்கக் கட்டளை வரிசை பிழைகள் கட்டளைகள் வரிசைக்கு மாறாக தோன்றும்போது சுட்டிக்காட்டப்படுகின்றன. எடுத்துக்காட்டாக, HAVING-ஐ GROUP BY-க்கு முன்பாகவோ, WHERE-ஐ GROUP BY-க்கு பிறகாகவோ வைத்தால், சரிபார்ப்பாளர் உங்களுக்கு எச்சரிக்கை விடுகிறது. இது ISO/IEC 9075 SQL தரநிலையில் வரையறுக்கப்பட்ட SQL தரநிலை தொடர் விதிகளைப் பின்பற்றுகிறது.
தர்க்க பிழைகள்
ON நிபந்தனைகள் இல்லாத JOIN கட்டளைகள் தற்செயலாக குறுக்கு இணைப்புகளை உருவாக்கி, நோக்கிய அளவைவிட மிகப் பெரிய வரிசைகளை வழங்குகின்றன. பொதுவான காட்சி: நீங்கள் மூன்றாவது அல்லது நான்காவது அட்டவணையைக் கூட்டும்போது ON கட்டளையை மறந்துவிடுகிறீர்கள். இந்தச் சரிபார்ப்பு இல்லாமல், உங்கள் முடிவுகளில் பல மடங்கு நகல் வரிசைகளைப் பார்க்கும் வரை நீங்கள் கவனிக்காமல் இருக்கலாம்.
GROUP BY இல்லாத HAVING பெரும்பாலான தரவுத்தளங்களில் தொழில்நுட்ப ரீதியாக தவறான SQL ஆகும். HAVING கட்டளை குழுவாக்கப்பட்ட முடிவுகளை வடிகட்டுகிறது, எனவே இது வேலை செய்ய GROUP BY தேவைப்படுகிறது. சரிபார்ப்பாளர் இந்த தர்க்க பொருந்தாமலை பிடிக்கிறது.
முழுமையற்ற WHERE நிபந்தனைகள் நீங்கள் ஒரு நிபந்தனையைத் தொடங்கி முடிக்காமல் இருக்கும்போது நிகழ்கின்றன—WHERE status = போல் எந்த மதிப்பும் இல்லாமல். வினவல்களை திருத்தும்போது இவை கவனிக்க எளிதாக இருக்கின்றன.
அது பிடிக்காது
இந்தச் சரிபார்ப்பாளர் தொடர்பு மற்றும் கட்டமைப்பில் கவனம் செலுத்துகிறது, தரவுத்தள திட்ட வடிவத்தில் அல்ல. அது அறிய மாட்டாது:
- உங்கள் அட்டவணை அல்லது தூண் பெயர்கள் உங்கள் தரவுத்தளத்தில் உள்ளனவா
- நீங்கள் ஒத்த தரவு வகைகளில் இணைக்கிறீர்களா
- உங்கள் வினவல் நன்கு செயல்படுமா அல்லது மேம்பாட்டுப் பிரச்சனைகள் உள்ளனவா
- நீங்கள் வினவிய அட்டவணைகளை அணுக அனுமதி உள்ளதா
இதை உங்கள் உண்மையான தரவுத்தளத்திற்கு வினவலை அனுப்புவதற்கு முன்பான முதல் சரிபார்ப்பாக நினைத்துக் கொள்ளுங்கள்.
வடிவமைப்பு விதிகள் இந்தக் கருவி பயன்படுத்துகிறது
இந்தக் கருவி SQL பாணி வழிகாட்டுதல் மரபுகளின் அடிப்படையில் நிலையான விதிகளைப் பயன்படுத்துகிறது.
கீற்சொற்கள் பெரிய எழுத்துக்களில் வரும்
ஒவ்வொரு SQL கீற்சொல்லும் பெரிய எழுத்துக்களில் வரும்: SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP. இதில் சொற்றொடர்கள் (FROM, WHERE, GROUP BY, HAVING, ORDER BY), இணைப்பு வகைகள் (JOIN, INNER JOIN, LEFT JOIN), செயல்பாட்டாளர்கள் (AND, OR, NOT, IN, BETWEEN, LIKE), மற்றும் பொதுவான செயல்பாடுகள் (COUNT, SUM, AVG, CASE, WHEN) அடங்கும்.
ஏன் பெரிய எழுத்துக்கள்? இது SQL இன் மொழி உறுப்புகளுக்கும் உங்கள் தரவுத்தள குறிப்பிட்ட பெயர்களுக்கும் (அட்டவணைகள், நிரல்கள், மாற்றுப் பெயர்கள்) தெளிவான வேறுபாட்டை உருவாக்குகிறது. ஒரு வினவலைப் பார்க்கும்போது, உங்கள் கண் உடனடியாக அமைப்பைப் பிடிக்கிறது.
ஒவ்வொரு நிலைக்கும் இரண்டு இடைவெளி
முக்கிய சொற்றொடர்கள் போன்ற SELECT மற்றும் FROM இடது விளிம்பில் தொடங்கும். JOIN சொற்றொடர்கள் FROM இன் கீழ் இரண்டு இடைவெளிகளில் இடம் பெறும் அட்டவணை தேர்வைக் காட்ட. மேலும் மேலும் இரண்டு இடைவெளிகள் ஒவ்வொரு மறைமுக வினவலுக்கும் தேவைப்படும். இது தர்க்கரீதியான அமைப்பைப் பொருத்த ஒரு தோற்ற வரிசைமுறையை உருவாக்குகிறது.
கமா பிரிக்கப்பட்ட பட்டியல்கள் (எ.கா. SELECT இல் நிரல் பெயர்கள்) தங்கள் சொந்த வரிகளில் நிலையான இடைவெளியுடன் வரும். உங்கள் SELECT பட்டியலில் 15 நிரல்கள் இருக்கும்போது, இது குறிப்பிட்ட நிரல்களைக் கண்டுபிடிக்க எளிதாக்குகிறது.
WHERE சொற்றொடர்களில் நிபந்தனைகள் செங்குத்தாக சீரமைக்கப்படும். பல AND அல்லது OR நிபந்தனைகள் இருக்கும்போது, சீரமைப்பு தர்க்க அமைப்பை உடனடியாக தெளிவாக்குகிறது.
முன்பும் பின்பும்: வேறுபாட்டைக் காண்க
முன் வடிவமைப்பு:
1select u.id, u.name, o.order_date from users u join orders o on u.id = o.user_id where o.status = "completed" group by u.id order by u.name;
2பின் வடிவமைப்பு:
1SELECT
2 u.id,
3 u.name,
4 o.order_date
5FROM users u
6 JOIN orders o ON u.id = o.user_id
7WHERE
8 o.status = "completed"
9GROUP BY
10 u.id
11ORDER BY
12 u.name;
13சரிபார்ப்பு விதிகள்: எது கவனிக்கப்படுகிறது
சரிபார்ப்பி கட்டமைப்பு நேர்மையையும் அடிப்படை தர்க்க நிலைப்பாட்டையும் சரிபார்க்கிறது. இங்கே அது பார்ப்பது இதுதான்:
கட்டமைப்பு சரிபார்ப்புகள்
சமப்பட்ட அடைப்புக்குறிகள்: திறக்கும் மற்றும் மூடும் அடைப்புக்குறிகள் பொருந்தியிருக்க வேண்டும். மறைந்த உட்கேள்வி அடிக்கடி பல மட்டங்கள் அடைப்புக்குறிகளைக் கொண்டிருக்கும், அவற்றை தவறாக எண்ணுவது SQL பிழைகளில் மிகப் பொதுவானதாகும். சரிபார்ப்பி அவற்றை உங்களுக்காக எண்ணும்.
சரியாக மூடப்பட்ட சரங்கள்: ஒவ்வொரு திறக்கும் மேற்கோள் (ஒற்றை அல்லது இரட்டை) ஒரு மூடும் மேற்கோளைக் கொண்டிருக்க வேண்டும். தெளிவாகத் தெரிகிறது, ஆனால் நீங்கள் பல சரம் தரங்கள் கொண்ட சிக்கலான கேள்வியை எழுதும்போது, ஒன்றைத் தவறவிட்டுவிடுவது எளிது.
சரியான சொற்றொடர் வரிசை: SQL இல் குறிப்பிட்ட வரிசை தேவைப்படுகிறது. SELECT FROM வருவதற்கு முன் வரும், WHERE FROM வருவதற்கு பிறகு வரும், GROUP BY WHERE வருவதற்கு பிறகு வரும், HAVING GROUP BY வருவதற்கு பிறகு வரும், ORDER BY HAVING வருவதற்கு பிறகு வரும். அவற்றை வரிசையில் வைக்காமல் இருந்தால் உடனடி தொடரமைப்பு பிழைகள் ஏற்படும். SQL தரத்தின் அடிப்படையில் சரிபார்ப்பி இந்த வரிசையைச் சரிபார்க்கிறது.
தர்க்க நிலைப்பாடு சரிபார்ப்புகள்
ON நிபந்தனையுடன் JOIN: ஒவ்வொரு JOIN இலும் அட்டவணைகள் எவ்வாறு தொடர்பு கொள்கின்றன என்பதைக் குறிப்பிட ON அல்லது USING சொற்றொடர் தேவைப்படுகிறது. இல்லாவிட்டால், நீங்கள் குறுக்கு இணைப்பைப் பெறுவீர்கள்—ஒரு அட்டவணையிலிருந்து ஒவ்வொரு வரி மற்றொரு அட்டவணையிலிருந்து ஒவ்வொரு வரிக்கும் பொருத்தப்படும். அது அரிதாகவே நீங்கள் விரும்பும் ஒன்றாகும் மற்றும் பொதுவாக விடப்பட்ட ON சொற்றொடரைக் குறிக்கிறது.
முழுமையான WHERE நிபந்தனைகள்: WHERE சொற்றொடருக்கு முழுமையான தர்க்கங்கள் தேவைப்படுகின்றன. மதிப்பின்றி WHERE நிலை = அசம்பூரணமாகவும் தவறாகவும் இருக்கும். சரிபார்ப்பி இந்த பகுதி நிபந்தனைகளைக் குறிக்கிறது.
HAVING க்கு GROUP BY தேவை: HAVING சொற்றொடர் குழுவாக்கப்பட்ட முடிவுகளைத் தரிக்கிறது, எனவே அது GROUP BY இருக்கும்போது மட்டுமே பொருள் கொள்ளும். GROUP BY இல்லாமல் HAVING பயன்படுத்துவது ஒரு தர்க்க பிழையாகும் மற்றும் பெரும்பாலான தரவுத்தளங்கள் அதை நிராகரிக்கும்.
GROUP BY கூட்டுத் தொகுப்பு விதிகள்: COUNT() அல்லது SUM() போன்ற கூட்டுத் தொகுப்பு செயல்பாடுகளைப் பயன்படுத்தும்போது, SELECT பட்டியலில் எந்தவொரு கூட்டுத் தொகுப்பு இல்லாத கொலம்கள் GROUP BY இல் தோன்ற வேண்டும். இது ஒரு அடிப்படை SQL தேவை யாகும் மற்றும் சரிபார்ப்பி இதைச் சரிபார்க்கிறது.
பொதுவான பிழைகள் பிடிக்கப்பட்ட உதாரணம்
இங்கே பல பிரச்சனைகள் கொண்ட SQL உள்ளது, சரிபார்ப்பி அதைக் குறிக்கும்:
1SELECT user_id, COUNT(*) FROM orders
2JOIN users
3WHERE status =
4GROUP BY
5HAVING count > 10;
6கண்டறியப்பட்ட பிரச்சனைகள்:
JOIN usersஇல்ONநிபந்தனை இல்லை (குறுக்கு இணைப்பை உருவாக்கும்)WHERE status =அசம்பூரணம் (ஒப்பீட்டு மதிப்பு இல்லை)- வெற்று
GROUP BYசொற்றொடர் (எந்தக் கொலம்கள் குறிப்பிடப்படவில்லை) HAVING count > 10வரையறுக்கப்படாத கொலத்தைக் குறிக்கிறது
SQL வடிவமைப்பாளரைப் பயன்படுத்த வேண்டிய நேரம்
கோட் மதிப்பாய்வின் போது
ஒரே வரியில் எழுதப்பட்ட 50 வரி SQL வினவலைப் பார்த்திருக்கிறீர்களா? இது கடினம். கோட் மதிப்பாய்வுக்கு வினவல்களைச் சமர்ப்பிக்கும் முன்பு, அவற்றை வடிவமைப்பாளரில் இயக்கவும். உங்கள் மதிப்பாய்வாளர்கள் உங்களுக்கு நன்றி சொல்வார்கள், மேலும் அவர்கள் அமைப்பைப் புரிந்துகொள்வதற்குப் பதிலாக தர்க்கத்தில் கவனம் செலுத்த முடியும்.
இரண்டாய்வு கோரிக்கைகளில் தரவுத்தள மாற்றங்கள் இருக்கும்போது, பங்களிப்பாளர்களிடம் அவர்களின் SQL ஐ முதலில் வடிவமைக்கச் சொல்லுங்கள். அமைப்பு தொடர்ச்சியாக இருக்கும்போது தர்க்க பிழைகளைக் கண்டறிவது மிகவும் எளிதாகிறது.
தயாரிப்பு சிக்கல்களைப் பிழைத்திருத்தம் செய்தல்
தயாரிப்பில் தோல்வியடைந்த வினவலைத் தீர்க்கும்போது, அதை சரியாக வடிவமைப்பது அதன் அமைப்பை தெளிவாகப் பார்க்க உதவுகிறது. பல வினவல்களைப் பிழைத்திருத்தம் செய்திருக்கிறேன் - அங்கு வடிவமைப்பு பிறகு பிழை தெளிவாகியது - தவறிய இணைப்பு நிபந்தனை, தவறான WHERE சொற்றொடர் குழுமம் அல்லது தவறான இடத்தில் உள்ள உட்வினவல்.
பதிவுகளிலிருந்து வினவலை நகலெடுத்து இங்கு ஒட்டுங்கள், உடனே அதன் கட்டமைப்பில் சிக்கல்கள் இருக்கிறதா என்பதைப் பார்க்கலாம்.
உருவாக்கப்பட்ட SQL வுடன் வேலை செய்தல்
ORM (பொருள்-உறவுமுறை மேப்பர்) போன்ற Hibernate, Entity Framework அல்லது SQLAlchemy தானாகவே SQL உருவாக்குகின்றன. சில சமயங்களில் அவை உண்மையில் எந்த வினவலை உருவாக்குகின்றன என்பதைப் பார்க்க வேண்டும். உருவாக்கப்பட்ட SQL பொதுவாக ஒரு நீண்ட வரியாகவும் வடிவமைப்பில்லாமலும் இருக்கும். இந்தக் கருவி ORM-உருவாக்கிய வினவல்களைப் படிக்கக்கூடிய வகையில் மாற்றுகிறது, அதனால் நீங்கள் அவற்றைப் புரிந்துகொண்டு மேம்படுத்தலாம்.
SQL ஐக் கற்றல் மற்றும் கற்பித்தல்
நீங்கள் SQL ஐக் கற்கிறீர்கள் அல்லது கற்பிக்கிறீர்கள் என்றால், இந்த வடிவமைப்பாளர் சரியான வினவல் கட்டமைப்பைப் புரிந்துகொள்ள உதவுகிறது. ஒரு வேலை செய்யும் வினவலை ஒட்டி அதன் வடிவமைப்பைப் பார்க்கும்போது, நீங்கள் மரபுகளைக் கற்கிறீர்கள். ஒரு உடைந்த வினவலை ஒட்டி சரிபார்ப்பு பிழைகளைப் பார்க்கும்போது, அது ஏன் வேலை செய்யவில்லை என்பதைப் புரிந்துகொள்கிறீர்கள்.
தரவுத்தள அமைப்புகளுக்கிடையே இடம்பெயர்தல்
வெவ்வேறு தரவுத்தளங்கள் (PostgreSQL, MySQL, SQL Server) சற்று வேறுபட்ட SQL வழக்குகளைக் கொண்டுள்ளன. அமைப்புகளுக்கிடையே வினவல்களை இடம்பெயர்க்கும்போது, சரியான வடிவமைப்பு வழக்கு-குறிப்பிட்ட தொடரமைப்பைக் கண்டறிய உதவுகிறது. வடிவமைப்பாளர் பெரும்பாலான தரவுத்தளங்களில் வேலை செய்யும் standard SQL மரபுகளைப் பின்பற்றுகிறது.
SQL வடிவமைப்பாளருக்கான மாற்று வழிகள்
தரவுத்தள-குறிப்பிட்ட IDE கள்
DataGrip, SQL Server Management Studio அல்லது MySQL Workbench போன்ற கருவிகளில் உள்பட்ட வடிவமைப்பாளர்கள் உள்ளன. அவை சக்திவாய்ந்தவை மற்றும் நேரடியாக உங்கள் தரவுத்தள இணைப்புகளுடன் ஒருங்கிணைக்கப்பட்டுள்ளன.
மாற்றீடு: அவை நிறுவல் மற்றும் அமைப்பை தேவைப்படுத்துகின்றன. DataGrip தனிப்பட்ட பயனர்களுக்கு $199/ஆண்டு செலவாகும். SSMS இலவசம் ஆனால் Windows-மட்டுமே. நிறுவாமல் விரைவான வடிவமைப்பு தேவைப்பட்டால் அல்லது பல்வேறு தரவுத்தள அமைப்புகளில் வேலை செய்கிறீர்கள் என்றால், browser-ல் அடிப்பட்ட கருவி மிகவும் நடைமுறைக்கேற்றது.
எடிட்டர் நீட்சிகள்
VS Code அல்லது Sublime Text-ல் SQL எழுதும்போது, SQL Beautify அல்லது SqlBeautifier போன்ற நீட்சிகள் உங்கள் எடிட்டரில் வடிவமைப்பை கொண்டுவருகின்றன. இது நீங்கள் வினாக்கள் எழுதும்போது உடனடி வடிவமைப்பு பெற உதவுகிறது.
வரம்பு: நீட்சிகளுக்கு கட்டமைப்பு தேவை, மேலும் அவை குறிப்பிட்ட எடிட்டருடன் இணைக்கப்பட்டுள்ளன. SQL-ஐ சகாக்களுடன் பகிரும்போது அல்லது ஆவணங்களில் வினாக்கள் இடும்போது, ஒரு நிலையான வலை வடிவமைப்பாளர் அனைவருக்கும் ஒரே வடிவமைப்பை உறுதி செய்கிறது.
கட்டளை-வரி வடிவமைப்பாளர்கள்
sqlformat (Python) அல்லது sql-formatter-cli (Node.js) போன்ற கருவிகள் CI/CD பைப்லைன்களில் ஒருங்கிணைக்கப்பட்டு தானாக வடிவமைப்பு மற்றும் பதிப்பு கட்டுப்பாட்டில் SQL-ஐ வடிவமைக்க முடியும். இது குழுவில் ஒருமைப்பாட்டை உறுதி செய்கிறது.
தானியங்கி வேலைப்பாடுகளுக்கு மிகவும் பயனுள்ளது. சில வினாக்களை சுத்தம் செய்வதற்கோ அல்லது SQL கற்பதற்கோ கட்டளை-வரி கருவிகள் அதிக சிக்கலைக் கொண்டுவருகின்றன.
SQL வடிவமைப்பு எவ்வாறு நிலைமை நடைமுறையாகியது
SQL 1970 ஆம் ஆண்டில் IBM இல் உருவாக்கப்பட்டது, ஆனால் வடிவமைப்பு மரபுகள் பல்கால் கழித்து தோன்றின. ஆரம்ப SQL செயல்பாட்டுக்குரியதாக இருந்தாலும் நிலைமையற்றதாக இருந்தது - ஒவ்வொரு மேம்பாட்டாளரும் வினவல்களை வெவ்வேறு வகையில் வடிவமைத்தனர்.
1990 ஆம் ஆண்டுகளில் மாற்றம் ஏற்பட்டது, தரவுத்தளங்கள் ஒற்றை மேம்பாட்டாளர் திட்டங்களிலிருந்து குழு-அடிப்படையிலான மேம்பாட்டிற்கு மாறின. அமைப்புகள் உள்ளக SQL பாணி வழிகாட்டிகளை உருவாக்கத் தொடங்கின. ஐந்து மேம்பாட்டாளர்கள் ஒரே தரவுத்தளத்தில் பணிபுரிந்தபோது, வாசிக்கக்கூடிய SQL கூட்டுப்பணிக்கு அத்தியாவசியமாகியது.
2000 ஆம் ஆண்டுகளில் ORMs தானாகவே SQL ஐ உருவாக்கின. இந்தக் கருவிகள் வேலை செய்யும் ஆனால் அழகற்ற SQL ஐ உருவாக்கின - அனைத்தும் ஒரு வரியில், எந்தத் தடிப்பும் இல்லாமல். இது தானியங்கி வடிவமைப்பாளர்கள் மனிதனால் வாசிக்கக்கூடிய SQL ஐ உருவாக்குவதற்கான கோரிக்கையை உருவாக்கியது.
2010 ஆம் ஆண்டுகளில் இணைய மேம்பாடு முதிர்ச்சி அடைந்ததும் SQL வடிவமைப்பாளர்கள் தோன்றின. கருவிகளை நிறுவுவதற்கோ IDE plugin கள் அமைப்பதற்கோ பதிலாக, மேம்பாட்டாளர்கள் வலைத்தளத்தில் SQL ஐ வடிவமைக்க முடிந்தது. இது SQL ஐ கற்கும் துவக்கநிலை மேம்பாட்டாளர்கள் முதல் அனுபவமிக்க மேம்பாட்டாளர்கள் வரை அனைவருக்கும் சரியான வடிவமைப்பிற்கான அணுகலை மக்கள்மயமாக்கியது.
இன்று, SQL வடிவமைப்பு ஒரு அடிப்படை நடைமுறையாகக் கருதப்படுகிறது, மற்ற நscheduling மொழிகளின் கோட் வடிவமைப்பைப் போல. Simon Holywell இன் SQL Style Guide பரவலாகப் பின்பற்றப்படும் மரபுகளை வழங்குகிறது, மேலும் இந்தக் கருவிகள் அந்த நிலைமைகளை தானாகவே செயல்படுத்துகின்றன.
கோட் எடுத்துக்காட்டுகள்
எடுத்துக்காட்டு 1: அடிப்படை SELECT வினவல்
வடிவமற்ற:
1select id, first_name, last_name, email from customers where status = 'active' order by last_name, first_name;
2வடிவமைக்கப்பட்ட:
1SELECT
2 id,
3 first_name,
4 last_name,
5 email
6FROM
7 customers
8WHERE
9 status = 'active'
10ORDER BY
11 last_name,
12 first_name;
13எடுத்துக்காட்டு 2: JOIN வினவல்
வடிவமற்ற:
1select c.id, c.name, o.order_date, o.total_amount from customers c left join orders o on c.id = o.customer_id where o.order_date >= '2023-01-01' and o.status != 'cancelled' order by o.order_date desc;
2வடிவமைக்கப்பட்ட:
1SELECT
2 c.id,
3 c.name,
4 o.order_date,
5 o.total_amount
6FROM
7 customers c
8 LEFT JOIN orders o ON c.id = o.customer_id
9WHERE
10 o.order_date >= '2023-01-01'
11 AND o.status != 'cancelled'
12ORDER BY
13 o.order_date DESC;
14எடுத்துக்காட்டு 3: சிக்கலான வினவல் துணை வினவலுடன்
வடிவமற்ற:
1select d.department_name, (select count(*) from employees e where e.department_id = d.id) as employee_count, (select avg(salary) from employees e where e.department_id = d.id) as avg_salary from departments d where d.active = true having employee_count > 0 order by avg_salary desc;
2வடிவமைக்கப்பட்ட:
1SELECT
2 d.department_name,
3 (
4 SELECT
5 COUNT(*)
6 FROM
7 employees e
8 WHERE
9 e.department_id = d.id
10 ) AS employee_count,
11 (
12 SELECT
13 AVG(salary)
14 FROM
15 employees e
16 WHERE
17 e.department_id = d.id
18 ) AS avg_salary
19FROM
20 departments d
21WHERE
22 d.active = TRUE
23HAVING
24 employee_count > 0
25ORDER BY
26 avg_salary DESC;
27நிரல் SQL வடிவமைப்பு
SQL வடிவமைப்பை பல்வேறு நிரல் மொழிகளில் செயல்படுத்துவதற்கான எடுத்துக்காட்டுகள் இங்கே உள்ளன:
1// JavaScript SQL வடிவமைப்பு எடுத்துக்காட்டு sql-formatter நூலகத்தைப் பயன்படுத்தி
2const sqlFormatter = require('sql-formatter');
3
4function formatSQL(sql) {
5 return sqlFormatter.format(sql, {
6 language: 'sql',
7 uppercase: true,
8 linesBetweenQueries: 2,
9 indentStyle: 'standard'
10 });
11}
12
13const rawSQL = "select id, name from users where status='active'";
14const formattedSQL = formatSQL(rawSQL);
15console.log(formattedSQL);
161# Python SQL வடிவமைப்பு எடுத்துக்காட்டு sqlparse பயன்படுத்தி
2import sqlparse
3
4def format_sql(sql):
5 return sqlparse.format(
6 sql,
7 reindent=True,
8 keyword_case='upper',
9 identifier_case='lower',
10 indent_width=2
11 )
12
13raw_sql = "select id, name from users where status='active'"
14formatted_sql = format_sql(raw_sql)
15print(formatted_sql)
161// Java SQL வடிவமைப்பு எடுத்துக்காட்டு JSqlParser பயன்படுத்தி
2import net.sf.jsqlparser.parser.CCJSqlParserUtil;
3import net.sf.jsqlparser.statement.Statement;
4
5public class SQLFormatter {
6 public static String formatSQL(String sql) throws Exception {
7 Statement statement = CCJSqlParserUtil.parse(sql);
8 return statement.toString()
9 .replaceAll("(?i)SELECT", "\nSELECT")
10 .replaceAll("(?i)FROM", "\nFROM")
11 .replaceAll("(?i)WHERE", "\nWHERE")
12 .replaceAll("(?i)ORDER BY", "\nORDER BY");
13 }
14
15 public static void main(String[] args) throws Exception {
16 String rawSQL = "select id, name from users where status='active'";
17 String formattedSQL = formatSQL(rawSQL);
18 System.out.println(formattedSQL);
19 }
20}
211<?php
2// PHP SQL வடிவமைப்பு எடுத்துக்காட்டு
3function formatSQL($sql) {
4 // கீச்சொற்களை பெரிய எழுத்துக்களாக மாற்று
5 $keywords = ['SELECT', 'FROM', 'WHERE', 'JOIN', 'LEFT JOIN', 'RIGHT JOIN',
6 'INNER JOIN', 'GROUP BY', 'ORDER BY', 'HAVING', 'LIMIT'];
7
8 $formattedSQL = $sql;
9 foreach ($keywords as $keyword) {
10 $formattedSQL = preg_replace('/\b' . preg_quote($keyword, '/') . '\b/i', "\n$keyword", $formattedSQL);
11 }
12
13 // இடைவெளி சேர்
14 $lines = explode("\n", $formattedSQL);
15 $result = '';
16 $indentLevel = 0;
17
18 foreach ($lines as $line) {
19 $trimmedLine = trim($line);
20 if (!empty($trimmedLine)) {
21 $result .= str_repeat(" ", $indentLevel) . $trimmedLine . "\n";
22 }
23 }
24
25 return $result;
26}
27
28$rawSQL = "select id, name from users where status='active'";
29$formattedSQL = formatSQL($rawSQL);
30echo $formattedSQL;
31?>
32அடிக்கடி கேட்கப்படும் கேள்விகள்
இந்த SQL வடிவமைப்பாளர் PostgreSQL, MySQL மற்றும் SQL Server உடன் வேலை செய்கிறதா?
ஆம், இது பெரும்பாலான தரவுத்தளங்கள்—PostgreSQL, MySQL, SQL Server (T-SQL), Oracle, SQLite மற்றும் MariaDB—வில் பொதுவான தரப்படுத்தப்பட்ட SQL தொடரியல் கையாளுகிறது. வடிவமைப்பாளர் எல்லா இடங்களிலும் வேலை செய்யும் கருத்தாக்கப்பட்ட SQL மீது கவனம் செலுத்துகிறது: SELECT, JOIN, WHERE, GROUP BY மற்றும் பிற.
தரவுத்தள குறிப்பிட்ட அம்சங்கள் சரியாக வடிவமைக்கப்பட மாட்டாது. எடுத்துக்காட்டாக, PostgreSQL இன் அணி தொடரியல் அல்லது SQL Server இன் சொந்த செயல்பாடுகள் சிறப்பு வடிவமைப்பு பெற மாட்டாது, ஆனால் அவை வடிவமைப்பாளரை உடைக்கவும் மாட்டாது. வினவல் இன்னும் முன்பைவிட வாசிக்கக்கூடிய இருக்கும்.
என் SQL குறியீடு சர்வருக்கு அனுப்பப்படுகிறதா?
இல்லை. அனைத்தும் உங்கள் உலாவியில் நடக்கிறது. SQL ஐ ஒட்டுவதன் மூலம் அது உள்ளமைவாக வடிவமைக்கப்படுகிறது மற்றும் எந்த நெட்வொர்க் கோரிக்கைகளும் இல்லை. உங்கள் வினவல்கள் உங்கள் கணினியை விட்டு வெளியேறவில்லை.
இது தயாரிப்பு தரவுத்தள திட்டங்கள் அல்லது தனிச்சொந்த வணிக தர்க்கத்துடன் வேலை செய்யும்போது முக்கியமானது. தகவல் பதிவு அல்லது வேறு யாரின் சர்வரிலும் சேமிக்கப்பட்ட அபாயம் இல்லை.
மvalidator அனைத்து SQL பிழைகளையும் கண்டறிய முடியுமா?
அப்படி இல்லை. இது கட்டமைப்பு மற்றும் தொடரியல் சிக்கல்களைக் கண்டறிகிறது—இல்லாத பிரிப்புக்குறிகள், மூடப்படாத மேற்கோள்கள், தவறான வரிசையில் சொற்றொடர்கள். அவ்வளவுதான்.
அது உங்கள் அட்டவணை பெயர்கள் தவறா, தரவு வகைகள் பொருந்தவில்லையா, அல்லது உங்கள் வினவல் 10 நிமிடங்கள் ஓடுமா என்பதை அறிய மாட்டாது. அதற்கு உங்கள் உண்மையான தரவுத்தளம் தேவை. இந்த validator ஐ SQL க்கான எழுத்துப்பிழை சரிபார்ப்பாக நினைத்துக் கொள்ளுங்கள், முழு வினவல் பகுப்பாய்வாளராக அல்ல.
(மற்ற பகுதிகளும் இதேபோல் மொழிபெயர்க்கப்பட வேண்டும்)
மேற்கோள்கள் மற்றும் மேலும் வாசிக்க
- சைமன் ஹோலிவெல் வழங்கிய SQL பாணி வழிகாட்டி - மேம்பாட்டுக் குழுக்கள் பயன்படுத்தும் SQL வடிவமைப்பு மரபுகளுக்கான தரப்படுத்தப்பட்ட தரநிலை
- ISO/IEC 9075 SQL தரநிலை - அதிகாரப்பூர்வ சர்வதேச SQL தரநிலை சிறப்பியல்பு
- PostgreSQL SQL தொடர்பாட்டு ஆவணம் - PostgreSQL இன் முழுமையான SQL தொடர்பாட்டு மேற்கோள்
- மைக்ரோசாஃப்ட் T-SQL மேற்கோள் - SQL சர்வரின் T-SQL வகைக்கான அதிகாரப்பூர்வ ஆவணம்
- MySQL மேற்கோள் கையேடு - MySQL இன் முழுமையான SQL கூற்று மேற்கோள்
SQL ஐ வடிவமைக்கத் தொடங்குங்கள்
வாசிக்கக்கூடிய SQL டீபக்கிங்கை வேகமாக்கும், கோட் மதிப்பாய்வுகளை எளிதாக்கும் மற்றும் கூட்டு வேலைகளை மேம்படுத்தும். மேல்நிலை வழக்கமான வடிவமைப்பின்படி அதை வடிவமைக்க மேலே உங்கள் வினவலை ஒட்டுங்கள் - எந்தவொரு நிறுவலும் இல்லை, எந்தவொரு கட்டமைப்பும் இல்லை, உங்கள் உலாவியிலிருந்து எந்தவொரு தரவும் வெளியேறாது.