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

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

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

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

איזו פעולה ברצונך לבצע?

למד מתי להשתמש שאילתת הגדרת נתונים

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

יצירת אינדקס

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

למד מתי להשתמש שאילתת הגדרת נתונים

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

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

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

לראש הדף

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

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

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

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

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

    ‎CREATE TABLE Cars (Name TEXT(30), Year TEXT(4), Price CURRENCY)‎

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

שינוי טבלה

כדי לשנות טבלה, יש להשתמש בפקודת 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 TABLE Cars ADD COLUMN Condition 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 הבא:

    ‎CREATE INDEX YearIndex ON Cars (Year)‎

  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 TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT ConditionRequired NOT NULL‎

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

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

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

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

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

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

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

    ‎CREATE TABLE CarCondition (Condition TEXT(10))‎

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

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

    ‎INSERT INTO CarCondition SELECT DISTINCT Condition FROM Cars;‎

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

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

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

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

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

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

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

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

    ‎ALTER TABLE Cars ALTER COLUMN Condition TEXT CONSTRAINT FKeyCondition REFERENCES CarCondition (Condition)‎

  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}]}

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

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

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

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

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

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

    ‎ALTER TABLE Cars ADD CONSTRAINT NoDupes UNIQUE (name, year, condition, price)‎

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

לראש הדף

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

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

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

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

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

×