דרכים חכמות לשימוש במחרוזת שרשור של SQL

דרכים חכמות לשימוש במחרוזת שרשור של SQL

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





ישנם הרבה ניבים SQL שונים. עבור כל הדוגמאות האלה, אני משתמש ב- PostgreSQL גִרְסָה אַחֶרֶת.





להעלות סרטון HD לפייסבוק אנדרואיד

מהו חיבור?

צירוף פירושו לחבר שני דברים יחד. יכול להיות שהשתמשת בו בשפת תכנות כדי לחבר שני מחרוזות יחד. אולי יש לך שם פרטי ומשתני משפחה שהצטרפת אליהם כמשתנה של שם מלא.





שרשור הוא דרך שימושית מאוד לשלב שני מחרוזות לאחד. PHP משתמש בנקודה מלאה כדי לחבר מחרוזות יחד, ואילו JavaScript ו- jQuery השתמש בסימן פלוס.

שרשור ב- SQL עובד בדיוק אותו דבר. אתה משתמש במפעיל מיוחד כדי לחבר שני דברים לאחד. הנה דוגמה ב פסאודוקוד :



first_name = Joe
last_name = Coburn
whole_name = first_name + last_name

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

אמנם משתנים ב- SQL פחות שכיחים (אך עדיין נמצאים בשימוש), אך עדיין יש צורך בשילוב כדי להחזיר תוצאות משולבות או לתפעל נתונים.





כיצד לחבר

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

אם נחזור לדוגמא השם שלנו, הנה דוגמא בסיסית בחר שאילתא:





SELECT first_name, last_name, email FROM users_table

אין כאן שום דבר מורכב, אז נוסיף בשילוב:

SELECT first_name || last_name AS full_name, email FROM users_table

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

למרבה המזל, קל לתקן: פשוט הרכיב רווח בין השניים:

SELECT first_name || ' ' || last_name AS full_name, email FROM users_table

אלו הן דוגמאות בסיסיות, אך כדאי שתראה כיצד פועל החיבור - זה כל כך קל! מפעיל הצינור ( | ) משמש פעמיים בין סעיפים. מנוע ה- SQL שלך יודע כי יש לחבר כל חלק לפני ואחרי סמל זה ולהתייחס אליו כאחד. עם זאת, היזהר, אם אתה משתמש במפעיל הקונסאט אך אינך מחבר דבר, תקבל שגיאה.

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

הולך עמוק יותר

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

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

SELECT first_name || ' ' || last_name || ARRAY[123, 456] AS full_name, email FROM users_table

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

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

שרשור עובד טוב מאוד עבור איפה גם הצהרות:

SELECT first_name, last_name, email FROM users_table WHERE date_of_birth = ('DAY' || '/' || 'MONTH' || '/' || 'YEAR')::date

קורים כאן כמה דברים. בדוגמה זו, יְוֹם , חוֹדֶשׁ , ו שָׁנָה הם פרמטרים שהועברו מסקריפט. אולי אלה נוצרו על ידי קוד, או שהוזנו על ידי משתמש. אלה משולבים יחד, ולאחר מכן יוצקים לסוג תאריך (באמצעות תחביר PostgreSQL עד היום ::תַאֲרִיך ).

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

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

SELECT first_name || ' ' || NULL AS full_name, email FROM users_table

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

אם אתה חושב שהנתונים שהשאילתה שלך מחזירה עשויים להיות בטלים, יהיה עליך להשתמש ב- לְהִתְמַזֵג . ניתן להתייחס בערך להתלכדות כ'אם זה בטל, החלף אותו במחרוזת או בעמודה אחרת ':

SELECT first_name || ' ' || COALESCE(NULL, 'ERROR NULL DATA') AS full_name, email FROM users_table

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

מה שתעשה, הודע לנו בתגובות למטה!

כיצד למחוק הודעות בפייסבוק
לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 6 חלופות קוליות: אפליקציות ספרי האודיו הטובות ביותר בחינם או הזולות

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

קרא הבא
נושאים קשורים
  • תִכנוּת
  • תִכנוּת
  • SQL
על הסופר ג'ו קוברן(136 מאמרים פורסמו)

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

עוד מאת ג'ו קוברן

הירשם לניוזלטר שלנו

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

לחצו כאן להרשמה