יצירת טבלה חדשה.
לתשומת ליבך: מנגנון מסד הנתונים Jet של Microsoft אינו תומך בשימוש במשפט CREATE TABLE או במשפטי DDL עם מסדי נתונים שאינם מסוג מנגנון מסד הנתונים Jet של Microsoft. במקום זאת, השתמש בפעולות השירות מסוג Create של DAO.
תחביר
CREATE [TEMPORARY] TABLE table (field1 type [(size)] [NOT NULL]
[WITH COMPRESSION | WITH COMP] [index1] [, field2 type [(size)]
[NOT NULL] [index2] [, ...]] [, CONSTRAINT multifieldindex [, ...]])
משפט CREATE TABLE כולל חלקים אלה:
| חלק | תיאור |
| table | שם הטבלה שתיווצר. |
| field1, field2 | שם השדה או השדות שייווצרו בטבלה החדשה. עליך ליצור שדה אחד לפחות. |
| type | סוג הנתונים של field בטבלה החדשה. |
| size | גודל השדה בתווים (שדות מסוג Text ו- Binary בלבד). |
| index1, index2 | פסוקית CONSTRAINT המגדירה אינדקס של שדה בודד. לקבלת מידע נוסף אודות אופן יצירת אינדקס זה, ראה פסוקית CONSTRAINT. |
| multifieldindex | פסוקית CONSTRAINT המגדירה אינדקס של שדות מרובים. לקבלת מידע נוסף אודות אופן יצירת אינדקס זה, ראה פסוקית CONSTRAINT. |
הערות
השתמש במשפט CREATE TABLE כדי להגדיר טבלה חדשה ואת השדות ואילוצי השדות שלה. אם האילוץ NOT NULL מוגדר עבור שדה, רשומות חדשות צריכות להכיל נתונים חוקיים באותו שדה.
פסוקית CONSTRAINT יוצרת אילוצים שונים על שדה, וניתן להשתמש בה כדי ליצור את המפתח הראשי. באפשרותך גם להשתמש במשפט CREATE INDEX כדי ליצור מפתח ראשי או אינדקסים נוספים בטבלאות קיימות.
באפשרותך להשתמש באילוץ NOT NULL בשדה בודד, או בתוך פסוקית CONSTRAINT בעלת שם החלה על CONSTRAINT בעל שם של שדה בודד או שדות מרובים. עם זאת, באפשרותך להחיל את האילוץ NOT NULL על שדה פעם אחת בלבד. ניסיון להחיל אילוץ זה יותר מפעם אחת יגרום לשגיאת זמן ריצה.
כאשר נוצרת טבלה מסוג TEMPORARY, היא גלויה רק בהפעלה בה נוצרה. הטבלה נמחקת
אוטומטית בעת סיום ההפעלה. הגישה אל טבלאות זמניות יכולה להתבצע על-ידי מספר
משתמשים.
ניתן להשתמש בתכונה WITH COMPRESSION רק עם סוגי הנתונים CHARACTER ו- MEMO
(הנקראים גם TEXT) והמילים הנרדפות שלהם.
התכונה WITH COMPRESSION נוספה עבור עמודות מסוג CHARACTER עקב השינוי בתבנית הייצוג של תווי Unicode. תווי Unicode דורשים בצורה אחידה שני בתים עבור כל תו. עבור מסדי נתונים קיימים מסוג Jet של Microsoft המכילים בעיקר נתוני תווים, המשמעות עשויה להיות שגודל קובץ מסד הנתונים כמעט יוכפל בעת המרה לתבנית Microsoft® Jet גירסה 4.0. עם זאת, ייצוג Unicode של ערכות תווים רבות, שצויינו בעבר כערכות תווים של בית בודד (SBCS), ניתן לדחיסה בקלות לגודל בית בודד. אם אתה מגדיר עמודה מסוג CHARACTER עם תכונה זו, נתונים יידחסו אוטומטית בעת האחסון והדחיסה תבוטל בעת אחזור מתוך העמודה.
ניתן להגדיר גם עמודות מסוג MEMO לאחסון נתונים בתבנית דחוסה. עם זאת, קיימת מגבלה. רק מופעים של עמודות מסוג MEMO שגודלם בעת הדחיסה מתאים לגודל 4096 בתים או פחות יידחסו. כל המופעים האחרים של עמודות מסוג MEMO יישארו ללא דחיסה. המשמעות היא כי בטבלה נתונה, עבור עמודה נתונה מסוג MEMO, ייתכן שנתונים אחדים יידחסו ונתונים אחרים לא יידחסו.
דוגמה למשפט CREATE TABLE, פסוקית CONSTRAINT
דוגמה זו יוצרת טבלה חדשה בשם ThisTable הכוללת שני שדות טקסט.
Sub CreateTableX1()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Create a table with two text fields.
dbs.Execute "CREATE TABLE ThisTable " _
& "(FirstName CHAR, LastName CHAR);"
dbs.Close
End Sub
דוגמה זו יוצרת טבלה חדשה בשם MyTable הכוללת שני שדות טקסט, שדה מסוג Date/Time ואינדקס ייחודי המורכב מכל שלושת השדות.
Sub CreateTableX2()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Create a table with three fields and a unique
' index made up of all three fields.
dbs.Execute "CREATE TABLE MyTable " _
& "(FirstName CHAR, LastName CHAR, " _
& "DateOfBirth DATETIME, " _
& "CONSTRAINT MyTableConstraint UNIQUE " _
& "(FirstName, LastName, DateOfBirth));"
dbs.Close
End Sub
דוגמה זו יוצרת טבלה חדשה הכוללת שני שדות טקסט ושדה מסוג Integer. השדה SSN הוא המפתח הראשי.
Sub CreateTableX3()
Dim dbs As Database
' Modify this line to include the path to Northwind
' on your computer.
Set dbs = OpenDatabase("Northwind.mdb")
' Create a table with three fields and a primary
' key.
dbs.Execute "CREATE TABLE NewTable " _
& "(FirstName CHAR, LastName CHAR, " _
& "SSN INTEGER CONSTRAINT MyFieldConstraint " _
& "PRIMARY KEY);"
dbs.Close
End Sub
|