§

SQL ಪ್ರಶ್ನೆಗಳನ್ನು ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ

ಡಯಲೆಕ್ಟ್
ಇಂಡೆಂಟ್
ಕೀವರ್ಡ್ ಕೇಸ್
ಕ್ಲಾಸ್ ಮೊದಲು ಸಾಲು ಮುರಿತ
§

SQL ಅಂಟಿಸಿ

§

ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ SQL

ಭಾರತದ ಡೇಟಾ ಇಂಜಿನಿಯರಿಂಗ್ ತಂಡಗಳು — ವಿಶೇಷವಾಗಿ Bengaluru ಮತ್ತು Hyderabad ದ ಕ್ಯಾಪ್ಟಿವ್ ಟೆಕ್ ಕೇಂದ್ರಗಳಲ್ಲಿ — SQL ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಅನ್ನು ಕೋಡ್ ಗುಣಮಟ್ಟ ಗೇಟ್ ಆಗಿ ಬಳಸುತ್ತವೆ. BigQuery ಅಥವಾ Snowflake ವೇರ್‌ಹೌಸ್ ವಿರುದ್ಧ GitHub PR ಡಿಫ್‌ಗಳು ಒಬ್ಬ ಇಂಜಿನಿಯರ್ 200-ಸಾಲಿನ CTE ಅನ್ನು ಒಂದು ಸಾಲಿನಲ್ಲಿ ಅಂಟಿಸಿದಾಗ ಅಸ್ಪಷ್ಟವಾಗುತ್ತವೆ. dbt ಯೋಜನೆಗಳಲ್ಲಿ ಕಮಿಟ್ ಮೊದಲು ಸ್ಥಿರ ಫಾರ್ಮ್ಯಾಟರ್ ಮೂಲಕ ಪ್ರಶ್ನೆ ಚಲಾಯಿಸುವುದು ಮರ್ಯಾದಾ ವಿವಾದವನ್ನು ತೆಗೆದುಹಾಕಿ ನಿಜವಾದ ತರ್ಕ ಬದಲಾವಣೆ ಪರಿಶೀಲಕನಿಗೆ ಅದರದೇ ಸಾಲಿನಲ್ಲಿ ಕಾಣಿಸುತ್ತದೆ.

SQL ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಹೇಗೆ ಕಾರ್ಯ ನಿರ್ವಹಿಸುತ್ತದೆ

SQL ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಲೆಕ್ಸರ್-ಚಾಲಿತ ಮರುಬರೆಹ ಆಗಿದ್ದು, ಪ್ರಶ್ನೆಯ ಪ್ರತಿ ಟೋಕನ್ ಮೇಲೆ ನಡೆದು ಆಯ್ದ ಡಯಲೆಕ್ಟ್‌ನ ನಿಯಮಗಳ ಆಧಾರದ ಮೇಲೆ ಅದರ ಸುತ್ತ ವೈಟ್‌ಸ್ಪೇಸ್ ಮರು-ಹೊರಡಿಸುತ್ತದೆ. ಪ್ರಶ್ನೆ ಅರ್ಥಶಾಸ್ತ್ರ ಎಂದೂ ಬದಲಾಗುವುದಿಲ್ಲ, ಕೇವಲ ವಿನ್ಯಾಸ.

  1. ಡಯಲೆಕ್ಟ್ ಆಯ್ಕೆ ಮಾಡಿ. MySQL ಬ್ಯಾಕ್‌ಟಿಕ್‌ಗಳು, PostgreSQL :: ಕಾಸ್ಟ್‌ಗಳು, BigQuery ಡಾಟೆಡ್ ಟೇಬಲ್ ಪಾಥ್‌ಗಳು, ಮತ್ತು T-SQL ಸ್ಕ್ವೇರ್-ಬ್ರ್ಯಾಕೆಟ್ ಗುರುತಿಕೆಗಳಿಗೆ ತಮ್ಮ ಬಗ್ಗೆ ತಿಳಿದಿರುವ ಟೋಕನೈಜರ್ ಅಗತ್ಯ. ಡಯಲೆಕ್ಟ್ ಸೆಲೆಕ್ಟರ್ ಯಾವ ಗ್ರಾಮರ್ ಅನ್ವಯಿಸಬೇಕೆಂದು ಆಯ್ಕೆ ಮಾಡುತ್ತದೆ.
  2. ಇನ್‌ಪುಟ್ ಟೋಕನೈಜ್ ಮಾಡಿ. ಫಾರ್ಮ್ಯಾಟರ್ ಪ್ರಶ್ನೆಯನ್ನು ಟೋಕನ್ ಸ್ಟ್ರೀಮ್‌ಗೆ ವಿಭಜಿಸುತ್ತದೆ: ಕೀವರ್ಡ್‌ಗಳು (SELECT, JOIN), ಗುರುತಿಕೆಗಳು, ಲಿಟರಲ್‌ಗಳು, ಆಪರೇಟರ್‌ಗಳು, ಪ್ಯಾರೆಂಥೆಸೀಸ್ ಮತ್ತು ಕಾಮೆಂಟ್‌ಗಳು. ಸ್ಟ್ರಿಂಗ್ ಲಿಟರಲ್‌ಗಳು ಮತ್ತು ಉದ್ಧೃತ ಗುರುತಿಕೆಗಳು ಅಸ್ಪೃಷ್ಟವಾಗಿ ಹಾದು ಹೋಗುತ್ತವೆ.
  3. ವಿನ್ಯಾಸ ನಿಯಮಗಳನ್ನು ಅನ್ವಯಿಸಿ. ಉನ್ನತ-ಮಟ್ಟದ ಕ್ಲಾಸ್‌ಗಳು (SELECT, FROM, WHERE, GROUP BY, ORDER BY) ತಮ್ಮ ಸ್ವಂತ ಸಾಲಿನಲ್ಲಿ ಪ್ರಾರಂಭವಾಗುತ್ತವೆ. ಸೆಲೆಕ್ಟ್ ಲಿಸ್ಟ್ ಮತ್ತು ಕಾಲಮ್ ಲಿಸ್ಟ್‌ಗಳಲ್ಲಿ ಅಲ್ಪವಿರಾಮ-ಬೇರ್ಪಟ್ಟ ಅಭಿವ್ಯಕ್ತಿಗಳು ಆಯ್ದ ಇಂಡೆಂಟ್ ಘಟಕದಿಂದ ಇಂಡೆಂಟ್ ಮಾಡಿದ ಸಾಲು ಪಡೆಯುತ್ತವೆ.
  4. ಕೀವರ್ಡ್ ಕೇಸ್ ಅನ್ವಯಿಸಿ. ಕೀವರ್ಡ್-ಕೇಸ್ ಟಾಗಲ್ ಗುರುತಿಸಿದ SQL ಕೀವರ್ಡ್‌ಗಳನ್ನು ಅಪ್ಪರ್‌ಕೇಸ್, ಲೋವರ್‌ಕೇಸ್ ಅಥವಾ ಇನ್‌ಪುಟ್ ಕೇಸಿಂಗ್ ಹಾಗೆ ಮರುಬರೆಯುತ್ತದೆ. ಗುರುತಿಕೆಗಳನ್ನು ಎಂದಿಗೂ ಸ್ಪರ್ಶಿಸಲ್ಪಡುವುದಿಲ್ಲ — ಕಾಲಮ್ ಮತ್ತು ಟೇಬಲ್ ಹೆಸರುಗಳು ಯಾವಾಗಲೂ ಬರೆದಂತೆ ಬರುತ್ತವೆ.
  5. ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ ಸ್ಟ್ರಿಂಗ್ ಹೊರಡಿಸಿ. ಟೋಕನ್ ಸ್ಟ್ರೀಮ್ ಅನ್ನು ಇಂಡೆಂಟ್ ಅಕ್ಷರ (2 ಸ್ಪೇಸ್‌ಗಳು, 4 ಸ್ಪೇಸ್‌ಗಳು ಅಥವಾ ಟ್ಯಾಬ್) ಮತ್ತು ಕಾನ್ಫಿಗರ್ ಮಾಡಿದ ಸಾಲು ಮುರಿತ ನಿಯಮದೊಂದಿಗೆ ಒಂದು ಸ್ಟ್ರಿಂಗ್‌ಗೆ ಮತ್ತೆ ಸೇರಿಸಲಾಗುತ್ತದೆ. ಲೈವ್ ಮೋಡ್ ನೀವು ಟೈಪ್ ಮಾಡುತ್ತಿದ್ದಂತೆ 200 ms ಡೀಬೌನ್ಸ್‌ನಲ್ಲಿ ಸಂಪೂರ್ಣ ಪೈಪ್‌ಲೈನ್ ಮರು-ಚಲಾಯಿಸುತ್ತದೆ.

SQL ಸುಂದರವಾಗಿ ಮುದ್ರಿಸುವ ಏಕೆ

  • ಪುಲ್-ರಿಕ್ವೆಸ್ಟ್ ಡಿಫ್ ಓದಬಹುದಾದ ಸ್ವರೂಪ. 200-ಸಾಲಿನ CTE ಒಂದು ಸಾಲಾಗಿ ಮರುಬರೆದರೆ ಕೋಡ್ ರಿವ್ಯೂ ಊಹಾಟದ ಆಟವಾಗುತ್ತದೆ. ಸ್ಥಿರ ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ಡಿಫ್ ಅನ್ನು ನೀವು ನಿಜವಾಗಿ ಮಾಡಿದ ಬದಲಾವಣೆಗೆ ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ.
  • ಸುಲಭ ಡೀಬಗ್ಗಿಂಗ್. ಪ್ರಶ್ನೆ ತಪ್ಪು ಸಾಲು ಸಂಖ್ಯೆ ಹಿಂದಿರುಗಿಸಿದಾಗ, ನೀವು ಅದನ್ನು ಸಾಲು ಸಾಲಾಗಿ ಓದುತ್ತೀರಿ. ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ SQL ಪ್ರತಿ JOIN ಅನ್ನು ತನ್ನ ಸಾಲಿನಲ್ಲಿ ಇಟ್ಟು WHERE ಷರತ್ತುಗಳನ್ನು ಜೋಡಿಸುತ್ತದೆ.
  • ಸ್ಥಿರ ತಂಡ ಶೈಲಿ. ಹೆಚ್ಚಿನ ತಂಡಗಳು SQL ಶೈಲಿ ಮಾರ್ಗದರ್ಶಿ ಅನುಸರಿಸುತ್ತವೆ ಮತ್ತು ಪ್ರತಿ ಕಮಿಟ್ ಮಾಡಿದ ಪ್ರಶ್ನೆ ಅದನ್ನು ಅನುಸರಿಸಬೇಕೆಂದು ಬಯಸುತ್ತವೆ. ಕಮಿಟ್ ಮೊದಲು ಫಾರ್ಮ್ಯಾಟರ್ ರನ್ ಮಾಡುವುದು ರಿವ್ಯೂದಿಂದ ಶೈಲಿ ವಿವಾದ ತೆಗೆದುಹಾಕಿ ಕೇವಲ ತರ್ಕ ಚರ್ಚಿಸಲು ಬಿಡುತ್ತದೆ.
  • ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಲ್ಲಿ SQL ಹಂಚಿಕೊಳ್ಳುವುದು. ರನ್‌ಬುಕ್‌ಗಳು, ಘಟನೆ ಅವಲೋಕನಗಳು ಮತ್ತು ದಸ್ತಾವೇಜ್‌ಗಳಲ್ಲಿ ಮೇಲಿನಿಂದ ಕೆಳಗೆ ಓದುವ SQL ಪ್ರಯೋಜನಕಾರಿ. ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿದ SQL ಫ಼ೆನ್ಸ್ಡ್ ಕೋಡ್ ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಸ್ವಚ್ಛವಾಗಿ ಅಂಟುತ್ತದೆ.

ಸಾಮಾನ್ಯ ಅನ್ವಯಗಳು

SQL ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ವಿಶ್ಲೇಷಣೆ ಇಂಜಿನಿಯರಿಂಗ್, ಬ್ಯಾಕ್‌ಎಂಡ್ ಅಭಿವೃದ್ಧಿ ಮತ್ತು ಕಾರ್ಯಾಚರಣೆ ಕೆಲಸದಲ್ಲಿ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತದೆ.

  • ವಿಶ್ಲೇಷಣೆ ಇಂಜಿನಿಯರಿಂಗ್: dbt ಯೋಜನೆಯಲ್ಲಿ ಪ್ರಿ-ಕಮಿಟ್ ಹುಕ್ ಪ್ರತಿ ಮಾದರಿ ಫೈಲ್ ಮರು-ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ PR ಡಿಫ್‌ಗಳನ್ನು ತರ್ಕ ಬದಲಾವಣೆಗಳಿಗೆ ಸೀಮಿತಗೊಳಿಸುತ್ತದೆ.
  • ಡೇಟಾಬೇಸ್ ಆಡಳಿತ: ಒಂದು-ಸಾಲಿನ ನಿಧಾನ-ಪ್ರಶ್ನೆ ಲಾಗ್ ನಮೂದು ಅಂಟಿಸಿ, ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ, ಮತ್ತು ಘಟನೆ ಅವಲೋಕನ ಬರೆಯುತ್ತಿರುವಾಗ ಜಾಯಿನ್ ಆರ್ಡರ್ ಮೂಲಕ ನಡೆಯಿರಿ.
  • ದಸ್ತಾವೇಜ್: Looker ಅಥವಾ Tableau ವರ್ಕ್‌ಬುಕ್‌ನಿಂದ ಪ್ರಶ್ನೆ ತೆಗೆದು, ರನ್‌ಬುಕ್‌ಗಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಿ, ಆನ್-ಕಾಲ್ ರೊಟೇಶನ್‌ಗಾಗಿ ಕಾಪಿ-ಪೇಸ್ಟ್ ಮಾಡಬಹುದಾದ ಉದಾಹರಣೆಯಾಗಿ ಅಳವಡಿಸಿ.

ಕೆಲಸ ಮಾಡಿದ ಉದಾಹರಣೆ

ಡಯಲೆಕ್ಟ್ PostgreSQL, ಇಂಡೆಂಟ್ 2 ಸ್ಪೇಸ್‌ಗಳು ಮತ್ತು ಕೀವರ್ಡ್ ಕೇಸ್ UPPER ಹೊಂದಿಸಿ ಇನ್‌ಪುಟ್ ಪೇನ್‌ಗೆ SELECT u.id,u.email,COUNT(o.id) FROM users u LEFT JOIN orders o ON o.user_id=u.id WHERE u.created_at > '2024-01-01' GROUP BY u.id,u.email ORDER BY u.id; ಅಂಟಿಸಿ. ಔಟ್‌ಪುಟ್ SELECT, FROM, LEFT JOIN, WHERE, GROUP BY ಮತ್ತು ORDER BY ಅನ್ನು ತಮ್ಮ ಸ್ವಂತ ಸಾಲುಗಳಲ್ಲಿ ಇಡುತ್ತದೆ. BigQuery ಡಯಲೆಕ್ಟ್ ಈ ಸಂದರ್ಭದಲ್ಲಿ ಒಂದೇ ಔಟ್‌ಪುಟ್ ಉತ್ಪಾದಿಸುತ್ತದೆ ಆದರೆ ಬ್ಯಾಕ್‌ಟಿಕ್-ಉದ್ಧೃತ ಗುರುತಿಕೆಗಳು ಇದ್ದರೆ ಅವನ್ನು ಉಳಿಸಿಕೊಳ್ಳುತ್ತದೆ.

FAQ

ಯಾವ SQL ಡಯಲೆಕ್ಟ್‌ಗಳು ಬೆಂಬಲಿಸಲ್ಪಡುತ್ತವೆ?

ಡಯಲೆಕ್ಟ್ ಡ್ರಾಪ್‌ಡೌನ್ ಮಾನಕ SQL, MySQL, PostgreSQL, SQLite, MariaDB, Transact-SQL (SQL Server / Azure SQL), BigQuery, Snowflake ಮತ್ತು Redshift ಒಳಗೊಂಡಿದೆ. ಆಧಾರ sql-formatter ಲೈಬ್ರರಿ DuckDB, Spark SQL, Hive, Trino, Db2, N1QL, PL/SQL, ClickHouse, TiDB ಮತ್ತು SingleStoreDB ಕೂಡ ಗುರುತಿಸುತ್ತದೆ. ಗುರುತಿಕೆಗಳು, ಸ್ಟ್ರಿಂಗ್ ಲಿಟರಲ್‌ಗಳು ಮತ್ತು ಡಯಲೆಕ್ಟ್-ನಿರ್ದಿಷ್ಟ ಆಪರೇಟರ್‌ಗಳು ಯಥಾವತ್ ಸಂರಕ್ಷಿಸಲ್ಪಡುತ್ತವೆ.

ಇದು ನನ್ನ SQL ಮೌಲ್ಯೀಕರಿಸುತ್ತದೆಯೇ?

ಇಲ್ಲ. ಫಾರ್ಮ್ಯಾಟರ್ ಲೆಕ್ಸಿಕಲ್ ಮರುಬರೆಹ ಆಗಿದ್ದು, ಪಾರ್ಸರ್ ಅಲ್ಲ. ಇನ್‌ಪುಟ್ ಟೋಕನೈಜ್ ಮಾಡಿ, ವಿನ್ಯಾಸ ನಿಯಮಗಳನ್ನು ಅನ್ವಯಿಸಿ, ಫಲಿತಾಂಶ ಹೊರಡಿಸುತ್ತದೆ; ಪ್ರಶ್ನೆ ಅರ್ಥಪ್ರದವಾಗಿ ಮಾನ್ಯವೇ, ಉಲ್ಲೇಖಿತ ಟೇಬಲ್‌ಗಳು ಅಸ್ತಿತ್ವದಲ್ಲಿವೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುವುದಿಲ್ಲ. ನಿಜವಾದ ಸರಿಯಾದ ಪರಿಶೀಲನೆಗಾಗಿ ನಿಜವಾದ ಡೇಟಾಬೇಸ್ ಅಥವಾ SQLFluff ಮೊದಲಾದ SQL ಲಿಂಟರ್ ಮೂಲಕ ಚಲಾಯಿಸಿ.

ನನ್ನ ಕೀವರ್ಡ್‌ಗಳು ಅಪ್ಪರ್‌ಕೇಸ್ ಆಗುತ್ತಿರುವುದೇಕೆ?

ಕೀವರ್ಡ್ ಕೇಸ್ ಡ್ರಾಪ್‌ಡೌನ್ UPPER ಗೆ ಡೀಫಾಲ್ಟ್ ಆಗುತ್ತದೆ, ಇದು ಹೆಚ್ಚಿನ ಪ್ರಕಟಿತ SQL ಶೈಲಿ ಮಾರ್ಗದರ್ಶಿಗಳ ಸಂಪ್ರದಾಯ. ನಿಮ್ಮ ತಂಡ ಲೋವರ್‌ಕೇಸ್ ಬರೆದರೆ lower ಗೆ ಬದಲಿಸಿ, ಅಥವಾ ಔಟ್‌ಪುಟ್ ನೀವು ಟೈಪ್ ಮಾಡಿದ ಕೇಸಿಂಗ್ ಉಳಿಸಿಕೊಳ್ಳಬೇಕಿದ್ದರೆ Preserve ಬಳಸಿ.

ನನ್ನ ಪ್ರಶ್ನೆ ಎಲ್ಲಿಯಾದರೂ ಅಪ್‌ಲೋಡ್ ಆಗುತ್ತದೆಯೇ?

ಇಲ್ಲ. ವೆಂಡ್ ಮಾಡಿದ sql-formatter ಲೈಬ್ರರಿ ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಚಲಾಯಿಸುತ್ತದೆ, ಫಾರ್ಮ್ಯಾಟಿಂಗ್ ನಿಮ್ಮ ಯಂತ್ರದಲ್ಲಿ ಸ್ಥಳೀಯವಾಗಿ ಆಗುತ್ತದೆ, ಮತ್ತು ಪ್ರಶ್ನೆ ಪಠ್ಯ ಎಂದಿಗೂ ನೆಟ್‌ವರ್ಕ್ ದಾಟುವುದಿಲ್ಲ. SQL ಪಠ್ಯ ಎಲ್ಲಿಯೂ ಭಾಗವಾಗಿಲ್ಲ.

ಫಾರ್ಮ್ಯಾಟರ್ ನಿಭಾಯಿಸಿದ ನಂತರ ಸುಂದರ-ಮುದ್ರಿಸಿದ SQL ಶೈಲಿ ವಿವಾದ ನಿಲ್ಲಿಸುತ್ತದೆ. ಸಾಧನ ಸಂಪೂರ್ಣ ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ ಚಲಾಯಿಸುತ್ತದೆ, ಪ್ರಶ್ನೆ ಪುಟ ಬಿಡುವುದಿಲ್ಲ, ಮತ್ತು sql-formatter npm ಪ್ಯಾಕೇಜ್ ಚಾಲಿತ ಅದೇ ಡಯಲೆಕ್ಟ್-ಅರಿತ ಟೋಕನೈಜರ್ ಮರುಬರೆಹ ಮಾಡುತ್ತದೆ.