إنشاء جدول CREATE TABLE
< SQL
يستخدم هذا الأمر لإنشاء جدولٍ جديدٍ في قاعدة البيانات وفق البنية العامّة الآتية:
CREATE TABLE [ IF NOT EXISTS ] table_name ( [
{ column_name data_type [ column_constraint [ ... ] | table_constraint }
[, ... ]
] )
إذ يُنشأ الجدول الجديد باسم table_name
وتُحدَّد أعمدته ما بين القوسين وذلك بتحديد اسم العمود column_name
ونوع بياناته data_type
وتحديد القيود على مستوى العمود أو الجدول.
قيود العمود
يُمكن ضبط بعض القيود على العمود مثل:
القيد | دلالته |
---|---|
NOT NULL
|
ألا تكون قيمة الحقل NULL |
DEFAULT default_expr
|
لتحديد القيمة الافتراضية للحقل |
UNIQUE
|
ألا تتكرر القيم ما بين السجلات ضمن نفس الحقل (العمود) |
PRIMARY KEY
|
لتحديد العمود كمفتاح أولي للجدول |
REFERENCES reftable [ ( refcolumn )]
|
لتحديد العمود refcolum كمفتاح ثانوي بمرجعية للجدول reftable |
قيود الجدول
يُمكن تحديد بعض القيود على مستوى الجدول مثل:
القيد | دلالته |
---|---|
UNIQUE ( column_name [, ... ] )
|
عدم تكرار القيم ما بين السجلات ضمن الحقل (العمود) المحدد |
PRIMARY KEY ( column_name [, ... ] )
|
لتحديد العمود (أو الأعمدة) ما بين القوسين كمفتاح أولي للجدول |
FOREIGN KEY ( column_name [, ... ] ) REFERENCES reftable [ ( refcolumn [, ... ] ) ]
|
لتحديد العمود (أو الأعمدة) ما بين القوسين كمفتاح ثانوي بمرجعية للجدول reftable |
مثال
لإنشاء الجدول الآتي باسم students
:
StudentID | FirstName | LastName | CourseID | RegDate | |
---|---|---|---|---|---|
والذي يحتوي على 5 أعمدة بأنواع بيانات مختلفة على ألا يتكرر عنوان البريد الالكتروني بين أكثر من طالب وألا يكون حقل تاريخ التسجيل فارغًا، ويكون حقل StudentID
مفتاحًا أوليًا وحقل CourseID
مفتاحًا ثانويًا يربط هذا الجدول مع جدول آخر (courses
)، ولتحقيق ذلك يستخدم الأمر الآتي:
CREATE TABLE students (
StudentID INT PRIMARY KEY,
FirstName VARCHAR(20) ,
LastName VARCHAR(20) ,
E-mail VARCHAR(50) UNIQUE,
CourseID INT REFERENCES courses (courseID),
RegDate DATE NOT NULL
);
التوافقية
SQLServer | SQLite | Oracle | PostgreSQL | MySQL |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |