PracticU

בחירת רשומות ב-SQL

בלי כתוביותעם כתוביות
PracticU › קורס DBA אפליקטיבי - שפת SQL למתחילים › בחירת רשומות ב-SQL
מילון מושגים:
רשומה - שורה בטבלת מסד נתונים שמרכזת את כל השדות של פריט אחד, למשל כל הפרטים של לקוח יחיד.
טבלה - מבנה במסד נתונים שמאחסן נתונים בשורות ועמודות. כל שורה היא רשומה וכל עמודה היא שדה.
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.
עמודה - שדה בטבלת מסד נתונים שמחזיק ערך מסוג מסוים עבור כל שורה, למשל שם או תאריך.
שאילתה - בקשה למסד נתונים לשלוף, להוסיף, לעדכן או למחוק נתונים, לרוב בשפת SQL.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.
מחרוזת - סוג נתונים שמייצג רצף של תווים, כלומר טקסט, ומשמש לאחסון מילים, משפטים או כל רצף סימנים.
SQL Server - מערכת ניהול מסדי נתונים יחסיים של מיקרוסופט, הנשלטת בשפת T-SQL.

בחירת רשומות ב-SQL
פקודת SELECT היא הדרך הבסיסית להביא מידע מטבלה. ההרצאה עוברת על הווריאציות שלה על מסד הנתונים Northwind: כל העמודות, עמודות נבחרות, כינויים, עמודות חישוביות, שרשור, כפילויות והגבלת מספר הרשומות.
איך בוחרים נתונים
1. כל המידע מטבלה: Select * From Products מחזיר את כל העמודות ואת כל הרשומות. מסמנים רק את השורה שרוצים להריץ, כי אחרת רצות כמה שאילתות ומתקבלות כמה תוצאות.
2. עמודות ספציפיות: כותבים רשימת עמודות מופרדת בפסיקים, למשל ProductName, UnitPrice, UnitsInStock. התוצאה כוללת גם את שמות העמודות, וזה מה שיחזור לאפליקציה ששלחה את השאילתה.
3. כינויים עם as: אפשר להחזיר שם אחר לעמודה, למשל Name, Price, Stock. סיבות אפשריות: אבטחה (לא לחשוף את השם האמיתי), שם עמודה באות קטנה כמו שמקובל ב-JSON, או סתם שם פשוט יותר. השם במסד עצמו לא משתנה, רק בטבלת התוצאה.
4. עמודה חישובית: עמודה שלא קיימת במסד ומחושבת תוך כדי השאילתה, כדי לא לשמור מידע כפול. למשל UnitPrice * 1.17 למחיר כולל מע"מ, וכאן כדאי לתת כינוי כמו VatPrice.
5. שרשור: מחברים עמודות עם +, למשל שם פרטי ושם משפחה לעמודה אחת של שם מלא. צריך להוסיף רווח כמחרוזת וכינוי כמו full name.
6. ערכים ייחודיים עם Distinct: Select Distinct City From Employees מחזיר כל עיר פעם אחת, גם אם כמה עובדים גרים בלונדון.
7. חלק מהרשומות עם Top: Select Top 10 * From Products מחזיר את 10 הרשומות הראשונות. כדי לקבל למשל את היקרות ביותר צריך סינון ומיון, שיוסברו בהמשך.
פרטים חשובים
- name מסומנת כמילה שמורה, ולכן אפשר לעטוף אותה בסוגריים מרובעים [Name].
- שם כינוי עם שתי מילים ורווח אפשרי, אבל לא מומלץ.
- מחרוזת ב-SQL Server נכתבת בגרש בודד, וגרשיים כפולים ברוב המקרים נותנים שגיאה.
אחרי ההרצאה אפשר לבחור עמודות, לתת להן שמות חדשים ולחשב ערכים בתוך השאילתה.
השיעור הבא בקורס: מיון התוצאות ב-SQL

פרקי ההרצאה: בחירת רשומות ב-SQL

  1. 00:00

    שליפת כל הרשומות עם SELECT

  2. 01:18

    בחירת עמודות ספציפיות

  3. 03:05

    מתן כינוי לעמודה עם AS

  4. 04:39

    עמודה חישובית בשאילתה

  5. 05:19

    חישוב מחיר כולל מע"מ

תמלול ההרצאה: בחירת רשומות ב-SQL

הטקסט המלא של הדקות הראשונות בהרצאה «בחירת רשומות ב-SQL» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:02

    אז אנחנו הולכים לעבוד על מסד הנתונים Northwind כי פשוט יש בו יותר מידע ויותר קל לראות עליו את השאילתות השונות. לכן הגדרנו פה use Northwind והדבר הראשון שאנחנו הולכים לראות זה איך אנחנו בוחרים מידע.

  2. 00:14

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

  3. 00:29

    זה יהיה כוכבית Select כוכבית זה בעצם Select All ואני אומר לו From Products וזהו אם אני אריץ עכשיו הכל אז הוא יריץ גם את זה וגם את זה אבל רגע אז אני כבר לא צריך להריץ מפני שהוא כבר בחר את מסד הנתונים כאן לכן אנחנו יכולים לסמן רק את מה שאנחנו רוצים להריץ ולהריץ את זה. פה למטה אנחנו רואים את חלונית התוצאות את ה-Results יש פה Message כמה שורות התבצעו מתי זה קרה אנחנו

  4. 00:57

    יכולים לראות שהוא בחר לנו את כל העמודות ואת כל הרשומות של טבלת המוצרים במסד הנתונים Northwind. זאת בעצם וריאציה ראשונה, תביא לי הכל כולל הכל.

  5. 01:13

    יכול להיות שאנחנו אומרים, רגע, אני לא צריך להחזיר את כלל העמודות, יש עמודות ספציפיות שאני רוצה. זה יהיה Select ואני נותן לו פה את רשימת העמודות עם פסיקים.

  6. 01:24

    לדוגמה, product name, unit price, units in stock, בצורה כזאת, from products, או פעם הפוך כתבתי, from products, בצורה כזאת. אם אני אריץ עכשיו את הכל execute, אז אנחנו נראה שתי תוצאות.

  7. 01:40

    אתם יכולים לראות כאן שיש לנו תוצאה ראשונה ותוצאה פה שנייה, זה לא מה שאנחנו רוצים, כי בעצם הרצתי שתי שאילתות שונות, הרצתי את זאת ואת זאת, אז אנחנו תמיד נסמן מה אנחנו רוצים להריץ, אקסקיוט ונקבל רק את התוצאה שסימנו הנה פרודקט ניים יוניט פרייס יוניטס אין סטוק זה בעצם בוחר לנו את הנתונים ומחזיר תשובות למי שבעצם ביצע את

  8. 02:06

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

  9. 02:26

    יכול להיות משתי סיבות. סיבה אחת, אני רוצה לשנות את השמות בשביל security. לא רוצה שיידעו בדיוק איזה שם היה בתוך הדאטאבייס, אני רוצה להחזיר קצת שם אחר.

  10. 02:36

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

  11. 02:53

    גם זה יכול להיות. אם נתקלתם אולי בפורמט שנקרא ג'ייסון, אז מקובל שבפורמט הזה המידע יתחיל באות קטנה ולא באות גדולה, אבל יש כל מיני פורמטים שונים.

  12. 03:08

    יכול להיות שזה המצב, ויכול להיות שסתם אני רוצה להחזיר שם פשוט יותר. זה נקרא כינוי, ואנחנו יכולים פשוט להגדיר as.

  13. 03:15

    ובואו נניח שאני רוצה להחזיר product name בצורה כזאת. בואו רגע נריץ את זה ונראה שהעמודה הראשונה זה השם של ה-Product Name מפי קטנה וזה מה שיחזור לצד של ה-Front End.

  14. 03:29

    בואו אבל נעשה אפילו קיצורים יותר, נגיד שזה Name וזה as Price, אם לא תהיו טענות, וזה as Stock ואני אריץ כרגע את השאילתה הזאת בלבד.

  15. 03:44

    והנה השמות Name, Price, Stock. עכשיו השמות האלה לא שונו בתוך ה-Database, זה לא מה שקרה אם אני אכנס עכשיו לטבלה האמיתית בדאטאבייס אני אראה את השמות המקוריים זה כמובן אף אחד לא שינה את השמות האלה בתוך הדאטאבייס זה פשוט המידע שהוחזר נמצא בטבלה שספציפית רק הטבלה הזאת שחזרה זה השמות של העמודות

  16. 03:50

    שלה זה מה שיגיע לאפליקציה שקוראת את המידע הזה ששלחה את השאילתה הזאת והיא יכולה להתעסק עם השמות האלה ולא עם השמות המקוריים שהיו במסעד הנתונים זה נקרא כינויים הסיבה שזה צבוע לי פה זה בגלל ש name זה מילה שמורה, אם אני רוצה להיות ודאי לגבי זה שאין איתה שום בעיה אז אני פשוט יכול לתפות אותה בסוגריים מרובעים.

  17. 04:30

    גם אם יש לי שתי שמות לא מומלץ שיהיה שתי שמות לדוגמה product name בצורה כזאת. אם נריץ את זה נקבל product name בשתי שמות עם רווח, לא מומלץ בכלל, אני לא ממליץ לעשות דבר כזה אבל אני אשיב את זה ככה כי אני לא רואה עם זה שום בעיה.

  18. 04:49

    מה קורה אם אנחנו רוצים להחזיר עמודה חישובית? עמודה חישובית זאת עמודה שלא קיימת בדאטאבייס והיא לא אמורה להיות קיימת בדאטאבייס, כי אפשר לחשב אותה תוך כדי, אנחנו לא רוצים לשמור בדאטאבייס מידע משוכפל.

  19. 05:03

    בואו ניקח את השאילתא האחרונה, האמת אני לא כזה צריך את הכינויים כרגע, זה היה רק לצורך הבנה של מה זה כינויים, נישאר בלי הכינויים רק לצורך פשטות, והאמת אני צריך רק שם מוצר ומחיר, אבל אני רוצה גם מחיר כולל מע"מ.

  20. 05:22

    אז אפשר להגיד תביא לי עוד עמודה שזה unit price ופשוט לעשות חישוב כפול 1.17 זה כרגע המע"מ והנה יש לנו כאן עמודה נוספת שלא הייתה קיימת בדאטאבייס וחישבנו אותה תוך כדי השאילתא.

  21. 05:38

    אנחנו רואים את זה הכל בסדר אבל אין לנו כאן שם של העמודה זה באמת מצב שבו אנחנו כן רוצים לתת כינוי ובואו ניתן כינוי של וואט פרייס נניח, כאילו המחיר כולל מע"מ.

  22. 05:53

    בואו נריץ, והנה יש לנו פה וואט פרייס, נגדיר את זה האמת בצורה כזאת כי הכל מתחיל באותיות גדולות אז זה בסדר. הנה יש לנו כאן עמודה חישובית שחישבנו תוך

לקורס המלא: קורס SQL ו‑DBA אפליקטיבי

ההרצאה הקודמת: יצירת קובץ סקריפט SQL

ההרצאה הבאה: מיון התוצאות ב-SQL

הרצאות קשורות מקורסים אחרים

  • בחירת רשומות ונתונים - מ-Database עם #C
  • בחירת branch ב-git
  • רשומות DNS
  • רשומות מסוג PTR

קורסים נוספים במסלול

  • קורס NoSQL - MongoDB
  • קורס SSIS
  • קורס BI - ניתוח מסדי נתונים - Qlik Sense
  • קורס Power BI