כיצד להשתמש במשפטי SQL של שפת הגדרת נתונים (DDL) משותפת עבור מנגנון מסד הנתונים של Jet

סיכום

מאמר זה ממחיש כמה משפטי SQL (שפת הגדרת נתונים) נפוצים עבור מנגנון מסד הנתונים של Microsoft Jet.

מידע נוסף

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

   // Open database file.   CDaoDatabase db;   db.Open( _T("C:\\MyDatabase.mdb") );   // Set strSQL to desired DDL statement.   CString strSQL;   strSQL = _T("CREATE TABLE Simple (ID long)" );   // Execute DDL statement.   try   {      db.Execute( strSQL, dbFailOnError );   }   catch ( CDaoException *e )   {      // Display errors (simple example).      AfxMessageBox( e->m_pErrorInfo->m_strDescription,                     MB_ICONEXCLAMATION );      e->Delete();   }

באפשרותך לבצע את הצהרות DDL במאמר זה באמצעות התחביר הבא עם מחלקות ה-ODBC של MFC:

   // Open database file.   CDatabase db;   db.OpenEx( _T("DSN=MyAccessDB"), CDatabase::noOdbcDialog );   // Set strSQL to desired DDL statement.   CString strSQL;   strSQL = _T("CREATE TABLE Simple (ID long)" );   // Execute DDL statement.   try   {      db.ExecuteSQL( strSQL );   }   catch ( CDBException *e )   {      // Display errors (simple example).      AfxMessageBox( e->m_strError,                     MB_ICONEXCLAMATION );      e->Delete();   }

משפט DDL של יצירת טבלה

משפט יצירת הטבלה הבאה יוצר טבלת בדיקה עם כל סוגי הנתונים של DDL הזמינים ב-Microsoft Access:

   CREATE TABLE TestAllTypes   (      MyText       TEXT(50),      MyMemo       MEMO,      MyByte       BYTE,      MyInteger    INTEGER,      MyLong       LONG,      MyAutoNumber COUNTER,      MySingle     SINGLE,      MyDouble     DOUBLE,      MyCurrency   CURRENCY,      MyReplicaID  GUID,      MyDateTime   DATETIME,      MyYesNo      YESNO,      MyOleObject  LONGBINARY,      MyBinary     BINARY(50)    )

הערה: לא ניתן ליצור שדות מסוג ' שכפול מספור אוטומטי ', ' היפר-קישור ' או ' בדיקת מידע ' באמצעות משפט SQL של MICROSOFT Access DDL. סוגי שדות אלה אינם סוגי שדות של Jet מקוריים, וניתן ליצור אותם ולהשתמש בהם באמצעות ממשק המשתמש של Microsoft Access בלבד. השדה MyBinary לעיל הוא שדה בינארי מיוחד באורך קבוע, שלא ניתן ליצור באמצעות ממשק המשתמש של Microsoft Access, אך ניתן ליצור אותו באמצעות משפט של SQL של SQL. באפשרותך ליצור טבלה עם מפתח ראשי בעל שדה יחיד עם משפט DDL יחיד. המשפט הבא יוצר טבלה בשם TestPrimaryKey עם מפתח ראשי בשדה MyID בשם PK_MyID:

   CREATE TABLE TestPrimaryKey   (      MyID LONG CONSTRAINT PK_MyID PRIMARY KEY,      FirstName TEXT(20),      LastName  TEXT(20)   )

המשפט המשתנה של DDL TABLE

Microsoft Access DDL תומך במשפט DDL של הטבלה הישנה. הצהרה זו שימושית כאשר עליך להסיר או להוסיף שדה לטבלה קיימת. הערה: משפט זה לא מאפשר לך לשנות שדה קיים בטבלת Access (לדוגמה, כדי לשנות את סוג הנתונים של השדה). הפונקציה DDL הבאה מסירה את העמודה בשם MoreInfo מהטבלה TooManyFields:

   ALTER TABLE TooManyFields DROP COLUMN MoreInfo

המשפט העוקב אחר DDL מוסיף עמודה בשם ExtraInfo לטבלה בשם NotEnoughFields:

   ALTER TABLE NotEnoughFields ADD COLUMN ExtraInfo Text(255)

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

   CREATE TABLE Cars   (      CarID LONG,      CarName TEXT(50),      ColorID LONG   )   CREATE TABLE Colors   (      ColorID LONG CONSTRAINT PK_Colors PRIMARY KEY,      ColorName TEXT(50)   )   ALTER TABLE Cars   ADD CONSTRAINT MyColorIDRelationship   FOREIGN KEY (ColorID) REFERENCES Colors (ColorID)

הערה: אין באפשרותך לציין שברצונך להגדיר את האפשרות ' עדכונים בדירוגים ' או ' מחיקה בהתאם להירארכיית הקשרים ' עם קשר גומלין שנוצר באמצעות DDL. תכונות אלה זמינות רק בעת שימוש בממשקי Microsoft DAO (אובייקטי גישה לנתונים) באמצעות קוד או בעת שימוש בממשק המשתמש של Microsoft Access.

הדוח ' יצירת אינדקס DDL '

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

   CREATE INDEX MyStateIndex   ON Addresses   (      State ASC   )

המשפט העוקב אחר DDL מוסיף אינדקס בעל שני שדות, ייחודי ובסדר עולה בשם MyFullNameIndex לשדות FirstName ו-LastName בכתובות הטבלה:

   CREATE UNIQUE INDEX MyFullNameIndex   ON Addresses   (      FirstName ASC,      LastName  ASC   )

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

   CREATE UNIQUE INDEX MySalaryIndex   ON HRInfo   (      Salary DESC   )   WITH DISALLOW NULL

אינדקס זה אוכף שכל רשומה חייבת לכלול ערך עבור השדה ' שכר '.

הדוח ' שחרר את DDL '

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

   DROP TABLE TempTable

המשפט העוקב אחר DDL מוחק לצמיתות את האינדקס בשם MyUnusedIndex בטבלה OverIndexedTable:

   DROP INDEX MyUnusedIndex ON OverIndexedTable

הפניות

לקבלת מידע נוסף אודות התחביר של Microsoft Jet DDL, ראה מדריך למתכנתים של מנוע מסד הנתונים Microsoft Jet, המהדורה השניה, "פרק 3," הגדרת נתונים ותקינות ".

Query Words

kbAccess700 kbdse

DOC INFO: DOC ID:25350 25350 Tech Reviewed By:JohnYa Internal reference words: kbDSupport kbdse SR#/SO#: kbsweptVC600 brademabe 10/19/98 kbsweptMDAC250 v-michsh March-14-2000 kbsweptMDAC260 KOUSHIKD Oct-17-2000 kbsweptVCWin2kMe Apr-9-2001 kbsweptMDAC270 kavithaj dank Aug-02-2001 Does not apply Author: mattn (1998-02-10T12:30:00) Edit Reviewer: sharonwa (1998-02-12T12:15:00) Tech Reviewer: johnya (1998-02-12T12:15:00)

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

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

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

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

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

×