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

במאמר זה

מבט כולל

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

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

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

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

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

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

מילת מפתח

שימוש

CREATE

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

ALTER

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

DROP

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

‎ ADD

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

COLUMN

שימוש עם הוספה, שינוי או שחרור

‎ CONSTRAINT

שימוש עם הוספה, שינוי או שחרור

INDEX

שימוש עם ' צור '

TABLE

שימוש עם האפשרות ' שנה ', ' צור ' או ' שחרר '

לראש הדף

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

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

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

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

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

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

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

יצירת טבלה

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

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

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

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

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

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

שינוי טבלה

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

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. בכרטיסיה עיצוב , בקבוצה סוג שאילתה , לחץ על הגדרת נתונים.

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

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

    שינוי מכוניות של מכוניות הוספת טקסט תנאי עמודה (10)

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

לראש הדף

יצירת אינדקס

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

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

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

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

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

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

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

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

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

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

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

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

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

לראש הדף

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

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

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

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

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

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

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

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

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

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

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

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

    החלת האילוץ ' שנה מכוניות שינוי מצב עמודה ' ConditionRequired ' לא NULL

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

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

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

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

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

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

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

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

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

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

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

    שינוי האילוץ TEXT CarCondition ALTER CarConditionPK מפתח ראשי

  6. כדי להוסיף את הערכים מהשדה תנאי של הטבלה ' מכוניות ' לטבלה החדשה CarCondition, הקלד את ה-SQL הבא בכרטיסיית האובייקט של תצוגת SQL:

    הוסף ל-CarCondition בחר תנאי מיוחד ממכוניות;

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

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

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

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

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

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

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

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

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

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

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

ניתן להשתמש בפסוקית 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}]}

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

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

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

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

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

    שינוי מכוניות הטבלה הוספת אילוץ NoDupes UNIQUE (שם, שנה, תנאי, price)

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

לראש הדף

זקוק לעזרה נוספת?

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

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

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלכם?

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

×