העתק טבלה ב-SQL

H Tq Tblh B Sql



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

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







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



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



שיטה 1: גלובלי (באמצעות הצהרת CREATE TABLE)

השיטה הנפוצה והפשטנית ביותר להעתקת טבלה היא שימוש במשפט CREATE TABLE.





בניגוד למשפט CREATE TABLE רגיל, אנו מעבירים משפט SELECT שמכיל את המבנה והנתונים של טבלת המקור.

התחביר הוא כדלקמן:



CREATE TABLE new_table AS
בחר * FROM source_table;

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

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

אנו יכולים להשתמש בטכניקה הקודמת כפי שמוצגת בשאילתת הדוגמה הבאה:

CREATE TABLE rental_copy AS
בחר * FROM השכרה;

זה אמור ליצור טבלה חדשה בשם 'rental_copy' המכילה את אותם מבנה ונתונים כמו טבלת ההשכרה.

אתה יכול לאמת על ידי בחירת הנתונים מהטבלה באופן הבא:

בחר * FROM השכרה_עותק;

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

שיטה 2: גלובלית (באמצעות הצהרת INSERT INTO)

שיטה נוספת שנתמכת ברחבי העולם על ידי מגוון רחב של מסדי נתונים של SQL היא שימוש במשפט INSERT INTO.

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

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

INSERT INTO target_table ( עמודה 1, עמודה 2, ... )
בחר עמודה 1, עמודה 2, ...
FROM source_table;

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

קחו למשל את השאילתה הבאה:

לְהַכנִיס
לְתוֹך
השכרה_עותק ( זיהוי_השכרה,
תאריך_השכרה,
תאריך חזרה )
בחר
זיהוי_השכרה,
תאריך_השכרה,
תאריך חזרה
מ
שכירות ר;

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

שיטה 3: העתק את מבנה הטבלה

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

בתרחיש כזה, אתה יכול להשתמש במשפט CREATE TABLE בשילוב עם פסקת ה-LIKE באופן הבא:

צור טבלה חדש_טבלה ( LIKE source_table ) ;

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

העתקת הטבלאות בין מסדי נתונים

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

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

שיטה 4: שימוש בשרתים המקושרים (SQL Server)

ב-SQL Server, אנו יכולים להעתיק את הטבלאות בין מסדי נתונים באמצעות שרתים מקושרים.

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

התחביר הוא כדלקמן:

להכניס לתוך [ LinkedServerName ] . [ שם בסיס הנתונים ] . [ SchemaName ] . [ target_table ]
בחר * FROM source_table;

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

סיכום

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