אינטרנט ישראל
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
  • ראשי
  • אודות רן בר-זיק ואינטרנט ישראל
  • ערוץ טלגרם
  • מסטודון
  • התחברו אלי בטוויטר
  • התחברו אלי בלינקדאין
  • ספר ג'אווהסקריפט
ראשי » מדריכים » לימוד MySQL » Views ו-STORED PROCEDURES ב-MySQL

Views ו-STORED PROCEDURES ב-MySQL

רן בר-זיק ספטמבר 27, 2009 8:50 pm אין תגובות

כיצד יוצרים VIEWS ו-STORED PROCEDURES פשוטים לשימוש עתידי.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.

במאמר הקודם למדנו על MySQL subqueries. באופן תיאורטי יש לנו את כל היכולת לכתוב איזו שאילתא חדשה. במאמר הזה נלמד על VIEW – דרך נוחה לשמירת שאילתות מורכבות כטבלה משלהן.

VIEW

בדוגמאות הקודמות יצרנו שאילתא מסובכת למדי שנראית כך:


SELECT my_purchase.costumer_id, purchase_item, costumer_name,costumer_age FROM my_purchase INNER JOIN my_costumer ON my_purchase.costumer_id=my_costumer.costumer_id;

נניח שמדובר בשאילתא שרצה לא מעט פעמים, מדוע לא ליצור סוג של 'שאילתא קבועה'? זה בדיוק מה שה-view יוצר – טבלה חדשה, ממש כמו כל טבלה אחרת אך היא מכילה את נתוני השאילתא שקבענו. הסינטק של VIEW הוא מאד פשוט כמו כל דבר ב-MySQL. ראשית נכתוב CREATE VIEW ואז את שם מסד הנתונים שלנו, נקודה ואז את שם ה-VIEW. אחרי כן רושמים AS ואת ה-SELECT שלנו.

בלי דוגמא שמבהירה הכל אי אפשר:


CREATE VIEW internet_database.my_view AS 
SELECT my_purchase.costumer_id,purchase_item, costumer_name,costumer_age FROM my_purchase INNER JOIN my_costumer ON my_purchase.costumer_id=my_costumer.costumer_id;

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

שינוי VIEW נעשה עם ALTER בדיוק כמו כל טבלה, גם מחיקה נעשית עם DROP בדומה לטבלה.

STORED PROCEDURE

STORED PROCEDURE הוא החלק המורכב ביותר שיש ב-MySQL. עם יד על הלב, אני לא מכיר הרבה מפתחי ווב שמשתמשים בזה, אך חשוב להכיר את הנושא הזה. מדובר בעצם בשפת התכנות של MySQL שבאמצעותה אנו יכולים להריץ פונקציות יותר מורכבות לביצוע פעולות שונות.

יצירת STORED PROCEDURE

בתחילה אנו נתמקד ב-STORED PROCEDURE פשוט יחסית. אחד שיעשה פעולת SELECT פשוטה על my_costumer. לא משהו שאנו לא מכירים. ראשית, כיוון שאנו הולכים לכתוב פונקציה שיש בה את הסימן ";" שבמקרה הוא גם הסימן שלנו להראות ל-MySQL שהפקודה שלנו הסתיימה, אנו צריכים להגדיר לו סימן אחר. הסימן הזה נקרא DELIMITER. אחרי שאנו מגדירים לו DELIMITER של '//', אנו צריכים לכתוב את הפונקציה ואז להגדיר חזרה את ה-DELIMITER ל: ';'.


DELIMITER //

כאן יש STORED PROCEDURE

DELIMITER ;

בין ה-DELIMITERים, אנו יכולים ליצור את ה-STORED PROCEDURE שלנו. ראשית אנו נפצח ב-CREATE PROCEDURE ואז את שם הפונקציה שלנו עם (). אחרי כן BEGIN ואחרי כן מה הפונקציה עושה. במקרה שלנו SELECT פשוט. ואז END. נשמע פשוט? זה באמת פשוט:


DELIMITER //
mysql> CREATE PROCEDURE myClients()
    -> BEGIN
    -> SELECT * FROM my_costumer
    -> ;
    -> END //

DELIMITER ;

והנה סרט הדרכה למי שרוצה לראות איך אני יוצר את זה ממש 'חי'.

קריאה ל-STORED PROCEDURE

הקריאה ל-STORED PROCEDURE היא פשוטה מאד והולכת כך:


CALL myClients();

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

מחיקת STORED PROCEDURE

מחיקה של STORED PROCEDURE נעשית עם DROP PROCEDURE ואז שם הפונקציה.


DROP PROCEDURE myClients;

צפייה בכל ה-STORED PROCEDURES

על מנת לראות את כל ה-STORED PROCEDURES שיש לנו על מסד הנתונים, כל מה שצריך לעשות זה להריץ את הפקודה הבאה:


SHOW PROCEDURE STATUS;

אפשר להשתמש בפילטר LIKE (שעליו למדנו במאמר קודם) כדי לסנן תוצאות.

לצפות ב-STORED PROCEDURE ספציפי

אם אנו רוצים לראות STORED PROCEDURE ספציפי, כל מה שעלינו לעשות זה להריץ SHOW CREATE PROCEDURE ואז את שם ה-STORED PROCEDURE. למשל:



SHOW CREATE PROCEDURE myClients;

⚠️המדריכים כאן הם טעימה בלבד! יש ספר מקיף המלמד MySQL מרמת בסיס ועד רמה מתקדמת. הספר הדיגיטלי, שרלוונטי גם לכל מסדי הנתונים שעובדים עם SQL – זמין כאן כחלק מהפרויקט "ללמוד ג'אווהסקריפט בעברית" – זו הדרך הטובה ביותר ללמוד באופן מקיף MySQL.

במאמר הבא אנו נמשיך לדון ב-STORED PROCEDURE והפעם נכתוב פונקציות יותר מורכבות מ-SELECT פשוט.

כדאי תמיד להשאר מעודכנים! אם יש לכם טלגרם, בדקו את ערוץ הטלגרם של האתר שבו אני מעדכן על פוסטים חדשים 🙂 אם אתם רוצים ללמוד תכנות באופן מקיף ומסודר, הצטרפו לאלפי הלומדים בפרויקט "ללמוד ג'אווהסקריפט בעברית" שמלמד לתכנת בג'אווהסקריפט, ב-Node.js ובריאקט וגם מלמד על תרומה לקוד פתוח. גם ספרים דיגיטליים וגם ספרים מודפסים. בשיתוף הקריה האקדמית אונו ובתמיכת חברות מובילות כגון Wix, Outbrain, Elementor, Iron Source, Chegg, Really Good ועוד.
למדריך ה-MySQL הקודםSubqueries ב-MySQL
למדריך ה-MySQL הבאStored Procedure עם משתנים ב-MySQL
לתפריט המדריכים ל-MySQL
MySQL
ללמוד ג'אווהסקריפט בעברית

ללמוד לתכנת ג'אווהסקריפט בעברית שגייס יותר משלוש מאות אלף שקל ולמעלה מ-2000 תומכים - בואו ללמוד עכשיו איך לתכנת.

רשימת הנושאים
  • מדריכים
    • ריאקט
    • טייפסקריפט
    • ECMAScript 6
    • ES20XX
    • Node.js
    • Express
    • רספברי פיי
    • Babel
    • docker
    • MongoDB
    • Git
    • לימוד MySQL
    • SASS
    • jQuery
    • CSS3
    • HTML 5
    • SVN
    • LESS
  • פיתוח אינטרנט
    • פתרונות ומאמרים על פיתוח אינטרנט
    • jQuery Scripts
    • jQuery למתקדמים
    • יסודות בתכנות
    • נגישות אינטרנט
  • חדשות אינטרנט
  • מידע כללי על אינטרנט
    • רשת האינטרנט
    • בניית אתרי אינטרנט
  • rss logo

    לכל המאמרים

    לכל המאמרים שפורסמו באינטרנט ישראל משנת 2008 ועד עכשיו.
  • rss logo

    RSS Feed

    משתמשים בקורא RSS? אם כן, עקבו אחרי אינטרנט ישראל באמצעות פיד ה-RSS!
    מה זה RSS?
  • Twitter logo

    עקבו אחרי בטוויטר

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

    ערוץ הטלגרם של אינטרנט ישראל

    בערוץ הטלגרם של אינטרנט ישראל אני מפרסם את הפוסטים של באתר וכן עדכונים טכנולוגיים נוספים.
    מה זה טלגרם?
  • github logo

    הפרויקטים שלי בגיטהאב

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

כל הזכויות שמורות לרן בר-זיק ולאינטרנט ישראל | מדיניות הפרטיות של אתר אינטרנט ישראל | אתר אינטרנט ישראל נגיש לפי תקן WCAG 2.0 AA | הצהרת הנגישות של האתר | אבטחת מידע ודיווח על בעיית אבטחת מידע

גלילה לראש העמוד