יצירה או שינוי של טבלאות או אינדקסים באמצעות שאילתת הגדרת נתונים

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

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

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

הערה: אין באפשרותך להשתמש בפרוצדורות אלה במסד נתונים באינטרנט.

בנושא זה

מבט כולל

יצירה או שינוי של טבלה

יצירת אינדקס

יצירת אילוץ או קשר גומלין

סקירה

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

הערה: 'שפת הגדרת נתונים' (DDL) היא חלק מ'שפת שאילתות מובנית' (SQL).

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

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

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

מילות מפתח של DDL

מילת מפתח

שימוש ב

CREATE

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

ALTER

שנה טבלה או עמודה קיימות.

DROP

מחק טבלה, עמודה או אילוץ קיימים.

ADD

הוסף עמודה או אילוץ לטבלה.

COLUMN

השתמש עם ADD,‏ ALTER או DROP

CONSTRAINT

השתמש עם ADD,‏ ALTER או DROP

INDEX

השתמש עם CREATE

‎TABLE

השתמש עם ADD,‏ CREATE או DROP

לראש הדף

יצירה או שינוי של טבלה

כדי ליצור טבלה, יש להשתמש בפקודת CREATE TABLE. התחביר של פקודת CREATE TABLE הוא כדלהלן:

CREATE TABLE table_name 
(field1 type [(size)] [NOT NULL] [index1]
[, field2 type [(size)] [NOT NULL] [index2]
[, ...][, CONSTRAINT constraint1 [, ...]])

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

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

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

  • בסרגל ההודעות, לחץ על הפוך תוכן לזמין.

יצירת טבלה

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    יצירת טבלה מכוניות (שם TEXT(30), שנת TEXT(4), מחיר מטבע)

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

שינוי טבלה

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

ALTER TABLE table_name predicate

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

ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]

ADD CONSTRAINT multifield_constraint

ALTER COLUMN field type[(size)]

DROP COLUMN field

DROP CONSTRAINT constraint

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

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    משפט ALTER טבלה מכוניות הוסף עמודה תנאי TEXT(10)

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

לראש הדף

יצירת אינדקס

כדי ליצור אינדקס בטבלה קיימת, יש להשתמש בפקודת CREATE INDEX. התחביר של פקודת CREATE INDEX הוא כדלהלן:

CREATE [UNIQUE] INDEX index_name
ON table (field1 [DESC][, field2 [DESC], ...])
[WITH {PRIMARY | DISALLOW NULL | IGNORE NULL}]

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

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

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

  • הארגומנט WITH DISALLOW NULL גורם לאינדקס לדרוש הזנת ערך עבור השדה הכלול באינדקס — כלומר, ערכי Null אינם מותרים.

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

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    יצירת אינדקס פעיל YearIndex מכוניות (שנה)

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

לראש הדף

יצירת אילוץ או קשר גומלין

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

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

כדי ליצור אילוץ, יש להשתמש במשפט CONSTRAINT בפקודת CREATE TABLE או ALTER TABLE. קיימים שני סוגים של משפטי CONSTRAINT: אחד ליצירת אילוץ בשדה יחיד והשני ליצירת אילוץ בשדות מרובים.

אילוצים של שדה יחיד

משפט CONSTRAINT של שדה יחיד פועל לפי ההגדרה של השדה שאותו הוא מאלץ ויש לו התחביר הבא:

CONSTRAINT constraint_name {PRIMARY KEY | UNIQUE | NOT NULL |
REFERENCES foreign_table [(foreign_field)]
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

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

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    משפט ALTER טבלה מכוניות משפט ALTER העמודה תנאי טקסט אילוץ ConditionRequired NOT NULL

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

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

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

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

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    יצירת טבלה CarCondition (תנאי TEXT(10))

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

  6. צור מפתח ראשי עבור הטבלה באמצעות משפט ALTER TABLE:

    משפט ALTER CarCondition משפט ALTER העמודה תנאי טקסט אילוץ CarConditionPK מפתח ראשי טבלה

  7. כדי להוסיף את הערכים מהשדה Condition בטבלה Cars לטבלה CarCondition החדשה, הקלד את משפט ה-SQL הבא בכרטיסיית האובייקט בתצוגת SQL:

    הוסף לתוך CarCondition SELECT DISTINCT תנאי מתוך מכוניות;

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

  8. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

יצירת קשר גומלין תוך שימוש באילוץ

כדי לדרוש שכל ערך חדש שנוסף לשדה Condition של הטבלה Cars יתאים לערך בשדה Condition של הטבלה CarCondition, תוכל ליצור קשר גומלין בין CarCondition ל- Cars בשדה שנקרא Condition, באמצעות ההליך הבא:

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    משפט ALTER טבלה מכוניות משפט ALTER העמודה תנאי טקסט אילוץ FKeyCondition הפניות CarCondition (תנאי)

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

אילוצים של שדות מרובים

ניתן להשתמש במשפט CONSTRAINT מרובה שדות רק מחוץ למשפט הגדרת שדה, ועליו להיות מורכב מהתחביר הבא:

CONSTRAINT constraint_name 
{PRIMARY KEY (pk_field1[, pk_field2[, ...]]) |
UNIQUE (unique1[, unique2[, ...]]) |
NOT NULL (notnull1[, notnull2[, ...]]) |
FOREIGN KEY [NO INDEX] (ref_field1[, ref_field2[, ...]])
REFERENCES foreign_table
[(fk_field1[, fk_field2[, ...]])] |
[ON UPDATE {CASCADE | SET NULL}]
[ON DELETE {CASCADE | SET NULL}]}

חשוב על דוגמה אחרת שמשתמשת בטבלה Cars. נניח שברצונך לוודא שבטבלה Cars אין שתי רשומות שכוללות את אותה ערכת ערכים עבור Name, ‏Year, ‏Condition ו- Price. באפשרותך ליצור אילוץ מסוג UNIQUE שחל על שדות אלה, באמצעות הפרוצדורה הבאה:

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

  2. סגור את תיבת הדו-שיח הצגת טבלה.

  3. בכרטיסיה עיצוב, בקבוצה סוג שאילתה, לחץ על הגדרת נתונים.

    רשת העיצוב מוסתרת וכרטיסיית האובייקט של תצוגת SQL מוצגת.

  4. הקלד את משפט ה- SQL הבא:

    לשנות טבלה מכוניות להוסיף אילוץ NoDupes ייחודי (שם, year, תנאי, price)

  5. בכרטיסיה עיצוב, בקבוצה תוצאות, לחץ על הפעל.

לראש הדף

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

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Office Insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×