תחביר וצורת כתיבה
כללי תחביר בסיסיים
1. מילות מפתח (Keywords)
מילות מפתח ב-SQL הן לא רגישות לאותיות (case-insensitive):
-- All אלה עובדים:
SELECT * FROM users;
select * from users;
Select * From Users;
-- ✅ מומלץ: מילות מפתח באותיות גדולות
SELECT * FROM users;
2. סיום פקודה
כל פקודה מסתיימת בנקודה-פסיק (;):
SELECT * FROM users;
SELECT * FROM orders;
3. רווחים ושורות חדשות
SQL מתעלם מרווחים ושורות חדשות:
-- All אלה זהים:
SELECT name, age FROM users WHERE age > 18;
SELECT name, age
FROM users
WHERE age > 18;
SELECT
name,
age
FROM
users
WHERE
age > 18;
סגנון כתיבה מומלץ
מבנה בסיסי של שאילתה
SELECT
column1,
column2,
column3
FROM
table_name
WHERE
condition
ORDER BY
column1;
דוגמה מעשית
-- ❌ Not recommended - קשה לקריאה
SELECT id,name,email,age FROM users WHERE age>18 AND status='active' ORDER BY name;
-- ✅ מומלץ - קריא וברור
SELECT
id,
name,
email,
age
FROM
users
WHERE
age > 18
AND status = 'active'
ORDER BY
name;
הערות בקוד
הערת שורה בודדת
-- This הערה
SELECT * FROM users; -- הערה בסוף שורה
הערת בלוק (מרובת שורות)
/*
this
זוהי הערה
שמשתרעת על
מספר שורות
*/
SELECT * FROM users;
דוגמה מעשית
-- ============================================
-- Query: משתמשים פעילים מעל גיל 18
-- מחבר: צוות פיתוח
-- תאריך: 2024-01-01
-- ============================================
SELECT
id,
name,
email
FROM
users
WHERE
age >= 18 -- רק בגירים
AND status = 'active' -- רק פעילים
ORDER BY
created_at DESC; -- מהחדש לישן
מחרוזות וערכים
מחרוזות (Strings)
מחרוזות מוקפות בגרשיים בודדות:
-- ✅ Right
SELECT * FROM users WHERE name = 'יוסי';
-- ❌ לא בכל מסדי נתונים
SELECT * FROM users WHERE name = "יוסי";
מספרים
מספרים ללא גרשיים:
SELECT * FROM users WHERE age = 25;
SELECT * FROM products WHERE price = 99.99;
ערכי NULL
NULL מייצג ערך חסר (לא אפס, לא ריק):
-- NULL check
SELECT * FROM users WHERE phone IS NULL;
SELECT * FROM users WHERE phone IS NOT NULL;
-- ❌ לא עובד!
SELECT * FROM users WHERE phone = NULL;
שמות ומזהים
כללי שמות טבלאות ועמודות
-- ✅ Recommended: snake_case
user_profiles
order_items
created_at
-- ✅ גם טוב: camelCase
userProfiles
orderItems
createdAt
-- ❌ נמנעים: רווחים ותווים מיוחדים
"user profiles" -- דורש גרשיים
user-profiles -- בעייתי
שימוש בגרשיים לשמות מיוחדים
-- MySQL: backticks
SELECT `order` FROM `users`;
-- PostgreSQL/SQL Server: מרכאות כפולות
SELECT "order" FROM "users";
-- SQL Server: סוגריים מרובעים
SELECT [order] FROM [users];
כינויים (Aliases)
כינוי לעמודה
SELECT
name AS שם,
age AS גיל,
email AS "כתובת מייל" -- עם רווחים צריך גרשיים
FROM
users;
כינוי לטבלה
SELECT
u.name,
o.total
FROM
users AS u
JOIN orders AS o ON u.id = o.user_id;
-- AS אופציונלי:
SELECT
u.name,
o.total
FROM
users u
JOIN orders o ON u.id = o.user_id;
סדר הפקודות בשאילתה
שאילתת SELECT חייבת לעמוד בסדר הבא:
SELECT -- 1. מה לבחור (עמודות)
FROM -- 2. מאיפה (טבלאות)
JOIN -- 3. חיבור טבלאות (אופציונלי)
WHERE -- 4. תנאים לסינון שורות
GROUP BY -- 5. קיבוץ (אופציונלי)
HAVING -- 6. תנאים על קבוצות (אופציונלי)
ORDER BY -- 7. מיון (אופציונלי)
LIMIT -- 8. הגבלת תוצאות (אופציונלי)
דוגמה מלאה
SELECT
category,
COUNT(*) AS count,
AVG(price) AS avg_price
FROM
products
JOIN
categories ON products.category_id = categories.id
WHERE
price > 0
GROUP BY
category
HAVING
COUNT(*) >= 5
ORDER BY
avg_price DESC
LIMIT 10;
טיפים לכתיבה נקייה
- עקביות - בחרו סגנון ושמרו עליו
- הזחה - השתמשו ב-4 רווחים או TAB
- שורות - פקודה חדשה = שורה חדשה
- הערות - הסבירו את הלוגיקה, לא את הקוד
- שמות משמעותיים -
user_idעדיף עלuid
← יסודות | המשך לסוגי נתונים →
בדקו את עצמכם
נסו לענות לבד לפני שאתם פותחים את התשובה.
-
האם SQL רגישה לאותיות גדולות במילות מפתח?
הצגת התשובה
תשובה ד. האותיות הגדולות משפרות קריאות.
-
איך כותבים מחרוזת ב-SQL?
הצגת התשובה
תשובה ד. גרשיים בודדים הם התקן לערכי טקסט.