إنشاء جدول CREATE TABLE

من موسوعة حسوب
< SQL
مراجعة 11:02، 13 يناير 2018 بواسطة Nourtam (نقاش | مساهمات)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يستخدم هذا الأمر لإنشاء جدولٍ جديدٍ في قاعدة البيانات وفق البنية العامّة الآتية:

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 E-mail 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
نعم نعم نعم نعم نعم

مصادر