Menu

SQL Formatter

לייפות שאילתות SQL עם הזחה שמבינה את התחביר.

מאת Nethanel Bar, Co-founder & CEO

עודכן לאחרונה

מוכנים ללמוד תכנות באמת?

ב-Coddy לומדים דרך כתיבת קוד אמיתי בדפדפן: שיעורים אינטראקטיביים, משוב מיידי ועזרה מ-AI כשנתקעים.

מה זה SQL formatter?

SQL formatter לוקח SQL צפוף, כתוב בשורה אחת או שנוצר אוטומטית, וכותב אותו מחדש עם הזחה וירידות שורה עקביות. מפתחים ואנליסטים משתמשים בו כשהם בודקים joins, מדבגים סינונים, מנקים פלט של ORM, משתפים שאילתות בטיקטים או בתיעוד ועוברים על תוכניות ביצוע.

עיצוב לא משנה את מה שהשאילתה *עושה*, הוא משנה כמה קל לאדם לקרוא אותה. ברגע שהפריסה עקבית, הרבה יותר קל לבחון את הקשר בין SELECT, FROM, JOIN, WHERE, GROUP BY, HAVING ו-ORDER BY, במיוחד בשאילתות שמשלבות תתי שאילתות ו-CTEs.

ל-SQL יש הרבה *דיאלקטים*: PostgreSQL, MySQL, SQLite, T-SQL (Microsoft SQL Server), Oracle ו-BigQuery מרחיבים כולם את התקן בתחביר משלהם. Formatter טוב מבין את הדיאלקט שבחרתם כדי לא לשבור תחביר שייחודי למנוע מסוים.

מה תלמדו תוך כדי עיצוב SQL

  • לכל פסוקית SQL יש תפקיד מוגדר: SELECT בוחרת עמודות, FROM בוחרת טבלאות, WHERE מסננת שורות, GROUP BY מקבצת ו-ORDER BY ממיינת.
  • הזחה קריאה חושפת שאילתות מקוננות, joins ותנאים שאחרת נעלמים בתוך שאילתה של שורה אחת.
  • הדיאלקט חשוב: RETURNING, LIMIT, TOP ומזהים בסוגריים מרובעים ([col] לעומת "col") לא עוברים כמו שהם בין מסדי נתונים.
  • ב-formatters שנכתבו היטב הערות שורדות את העיצוב, כך שאפשר להסביר *למה* סינון קיים ממש לידו.

איך מעצבים שאילתת SQL, שלב אחר שלב

  1. הדביקו את השאילתה

    שימו את ה-SQL בתיבת הקלט. זה עובד עם SQL בשורה אחת, SQL שנוצר על ידי ORM או SQL שמעוצב רק בחלקו.

  2. בחרו את הדיאלקט

    בחרו PostgreSQL, MySQL, SQLite או T-SQL כדי שה-formatter יכבד מילות מפתח ייחודיות כמו LIMIT, TOP או RETURNING.

  3. הגדירו את הסגנון

    בחרו את רישיות מילות המפתח (אותיות גדולות הן הסטנדרט) ואת רוחב ההזחה (2 או 4 רווחים). רוב הצוותים בוחרים מילות מפתח באותיות גדולות והזחה של 2 רווחים.

  4. קראו את הפלט המעוצב

    כל פסוקית יושבת בשורה משלה, ה-joins מיושרים ותתי השאילתות מוזחות. ההערות נשמרות.

  5. העתיקו בחזרה לפרויקט

    הדביקו את השאילתה המעוצבת ב-migration, בשאילתה גולמית של ה-ORM או בכלי ה-BI שלכם. הכול נשאר בדפדפן שלכם.

מדריך מהיר לפסוקיות SQL

הפסוקיות שתראו ב-95% משאילתות ה-SELECT, לפי הסדר שבו הן מעובדות מבחינה רעיונית. תיעוד רשמי: PostgreSQL SELECT, MySQL SELECT.

פסוקיתתפקידדוגמה
SELECTבחירת העמודות או הביטויים שיוחזרוSELECT id, name
FROMבחירת טבלת המקור (או הטבלאות)FROM users
JOIN ... ONשילוב שורות מטבלה אחרתJOIN orders ON orders.user_id = users.id
WHEREסינון שורות לפני הקיבוץWHERE active = true
GROUP BYקיבוץ שורות שחולקות ערכיםGROUP BY country
HAVINGסינון קבוצות אחרי הצבירהHAVING COUNT(*) > 10
ORDER BYמיון התוצאותORDER BY created_at DESC
LIMIT / OFFSETחלוקת התוצאות לעמודיםLIMIT 20 OFFSET 40
WITH ... ASCommon Table Expression (CTE): מתן שם לתת שאילתהWITH active AS (...)

דוגמאות SQL לנסות

עיצוב שאילתה פשוטה

קלט
select id,name from users where active=true order by created_at desc limit 10
מעוצב
SELECT  id,  nameFROM usersWHERE active = trueORDER BY created_at DESCLIMIT 10;

כל פסוקית נמצאת עכשיו בשורה משלה ורשימת העמודות מוזחת. לבדוק את השאילתה הזאת ב-code review נהיה קל פי 10.

בחינה של join

קלט
select u.name,o.total from users u join orders o on o.user_id=u.id where o.total>100
מעוצב
SELECT  u.name,  o.totalFROM users uJOIN orders o ON o.user_id = u.idWHERE o.total > 100;

כינויים לטבלאות (users u, orders o) שומרים על רשימת עמודות קצרה. השורה JOIN ... ON מבהירה את הקשר בין הטבלאות.

קריאה של תת שאילתה מקוננת

קלט
select * from users where id in (select user_id from enrollments where course_id=5)
מעוצב
SELECT *FROM usersWHERE id IN (  SELECT user_id  FROM enrollments  WHERE course_id = 5);

הזחת השאילתה הפנימית מראה את התלות בבירור. אפשר לכתוב מחדש הרבה תתי שאילתות כ-JOINs או כ-CTEs ברגע שהמבנה גלוי.

סידור פלט ORM דחוס

קלט
SELECT "posts"."id", "posts"."title", "users"."name" FROM "posts" INNER JOIN "users" ON "users"."id" = "posts"."author_id" WHERE "posts"."published" = true AND "posts"."created_at" > '2026-01-01' ORDER BY "posts"."created_at" DESC LIMIT 25
מסודר
SELECT  "posts"."id",  "posts"."title",  "users"."name"FROM "posts"INNER JOIN "users" ON "users"."id" = "posts"."author_id"WHERE "posts"."published" = true  AND "posts"."created_at" > '2026-01-01'ORDER BY "posts"."created_at" DESCLIMIT 25;

ORMs כמו Prisma, Django ו-ActiveRecord רושמים SQL ללוג כשורה ארוכה אחת. הכלי מפרק אותה לפסוקיות ומזיח את תנאי ה-WHERE המשורשרים, כך שאפשר באמת לקרוא מה השאילתה עושה לפני שמדביקים אותה בטיקט.

טעויות נפוצות בעיצוב SQL

  • להניח ש-SQL מעוצב הוא SQL *נכון*. עיצוב משנה פריסה, לא משמעות: שאילתה שנראית נקייה עדיין יכולה להחזיר תשובה שגויה.
  • לערוך שאילתה תוך כדי עיצוב ולשכוח לבדוק שוב את התוצאה.
  • להתעלם מהדיאלקט: LIMIT 10 ב-PostgreSQL, TOP 10 ב-T-SQL ו-FETCH FIRST 10 ROWS ONLY ב-SQL התקני עושים כולם אותו דבר.
  • לערבב רישיות של מילות מפתח (Select, SELECT, select) באותו פרויקט. בחרו סגנון אחד והיו עקביים: רוב הצוותים משתמשים במילות מפתח באותיות גדולות.

שאלות נפוצות על SQL formatter

האם עיצוב SQL משנה את תוצאת השאילתה?
לא. עיצוב משנה רק רווחים ורישיות. מסד הנתונים מפענח את שתי הגרסאות לאותה תוכנית ביצוע, ולכן השורות שמוחזרות זהות.
למה לעצב SQL?
SQL קריא קל יותר לדבג, לבדוק ב-code review, ללמד ולתחזק, במיוחד כשבשאילתה יש כמה joins, תתי שאילתות, CTEs או window functions.
מה זה דיאלקט של SQL?
דיאלקט SQL הוא הרחבה של SQL התקני שייחודית למסד נתונים מסוים. ל-PostgreSQL, MySQL, SQLite, T-SQL (SQL Server), Oracle ו-BigQuery יש לכל אחד תחביר ייחודי מעבר לתקן.
האם SQL formatter יכול לתקן שאילתות שבורות?
Formatter יכול לחשוף בעיות תחביר כשהוא מוציא את השאילתה מחדש בצורה מובנית, אבל הוא לא מבין את הסכמה שלכם ולא יכול להבטיח שהשאילתה נכונה מבחינה לוגית.
האם לכתוב מילות מפתח של SQL באותיות גדולות?
רוב מדריכי הסגנון ממליצים על מילות מפתח באותיות גדולות (SELECT, FROM, WHERE) ועל מזהים באותיות קטנות, כי הניגוד הוויזואלי מבליט את מבנה השאילתה. בחרו סגנון אחד והיו עקביים.
מה ההבדל בין SQL formatter ל-SQL beautifier?
אלה שני שמות לאותו דבר. "Beautify" ו-"format" פירושם לכתוב שאילתה מחדש עם הזחה, ירידות שורה ורישיות עקביות של מילות מפתח כדי שיהיה קל יותר לקרוא אותה. בין אם תחפשו SQL beautifier, SQL pretty printer או SQL formatter, הכלי הזה עושה את העבודה: הדביקו את השאילתה, בחרו דיאלקט והעתיקו את הגרסה הנקייה.
איך מעצבים שאילתת SQL אונליין בחינם?
הדביקו את השאילתה בתיבת הקלט, בחרו דיאלקט (PostgreSQL, MySQL, SQLite או T-SQL), וה-formatter יזיח אותה מחדש מיד, עם כל פסוקית בשורה משלה. זה חינמי לגמרי ובלי הרשמה, והכול רץ בדפדפן: ה-SQL שלכם לא מועלה לשום מקום, ולכן זה בטוח גם לשאילתות קנייניות או של production.

למידע נוסף

כלי פיתוח נוספים

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל