الفرق بين المراجعتين لصفحة: «SQL/create table»

من موسوعة حسوب
< SQL
ط استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}'
ط تعديل الأمثلة
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:إنشاء جدول CREATE TABLE}}</noinclude>
<noinclude>{{DISPLAYTITLE:إنشاء جدول CREATE TABLE}}</noinclude>
يستخدم هذا الأمر لإنشاء جدولٍ جديدٍ في قاعدة البيانات وفق البنية العامّة الآتية:<syntaxhighlight lang="sql">
يستخدم هذا الأمر لإنشاء جدولٍ جديدٍ في قاعدة البيانات وفق البنية العامّة الآتية:<syntaxhighlight lang="sql">
CREATE TABLE [ IF NOT EXISTS ] table_name ( [
CREATE TABLE [ IF NOT EXISTS ] tbl_name ( [
   { column_name data_type [ column_constraint [ ... ] | table_constraint }
   { col_name data_type [ column_constraint [ ... ] | table_constraint }
     [, ... ]
     [, ... ]
] )
] )


</syntaxhighlight>إذ يُنشأ الجدول الجديد باسم <code>table_name</code> وتُحدَّد أعمدته ما بين القوسين وذلك بتحديد اسم العمود <code>column_name</code> ونوع بياناته <code>data_type</code> وتحديد القيود على مستوى العمود أو الجدول.
</syntaxhighlight>إذ يُنشأ الجدول الجديد باسم <code>tbl_name</code> وتُحدَّد أعمدته ما بين القوسين وذلك بتحديد اسم العمود <code>col_name</code> ونوع بياناته <code>data_type</code> وتحديد القيود على مستوى العمود أو الجدول.


== قيود العمود ==
== قيود العمود ==
سطر 65: سطر 65:
والذي يحتوي على 5 أعمدة بأنواع بيانات مختلفة على ألا يتكرر عنوان البريد الالكتروني بين أكثر من طالب وألا يكون حقل تاريخ التسجيل فارغًا، ويكون حقل <code>StudentID</code> مفتاحًا أوليًا وحقل <code>CourseID</code> مفتاحًا ثانويًا يربط هذا الجدول مع جدول آخر (<code>courses</code>)، ولتحقيق ذلك يستخدم الأمر الآتي:<syntaxhighlight lang="sql">
والذي يحتوي على 5 أعمدة بأنواع بيانات مختلفة على ألا يتكرر عنوان البريد الالكتروني بين أكثر من طالب وألا يكون حقل تاريخ التسجيل فارغًا، ويكون حقل <code>StudentID</code> مفتاحًا أوليًا وحقل <code>CourseID</code> مفتاحًا ثانويًا يربط هذا الجدول مع جدول آخر (<code>courses</code>)، ولتحقيق ذلك يستخدم الأمر الآتي:<syntaxhighlight lang="sql">
CREATE TABLE students (
CREATE TABLE students (
     StudentID INT PRIMARY KEY,
     StudentID   INT         PRIMARY KEY,
     FirstName VARCHAR(20) ,
     FirstName   VARCHAR(20) ,
     LastName VARCHAR(20) ,
     LastName     VARCHAR(20) ,
     E-mail VARCHAR(50) UNIQUE,
     E-mail       VARCHAR(50) UNIQUE,
     CourseID INT REFERENCES courses (courseID),
     CourseID     INT         REFERENCES courses (courseID),
     RegDate DATE NOT NULL       
     RegDate     DATE       NOT NULL       
);
);



المراجعة الحالية بتاريخ 10:00، 30 يناير 2018

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

CREATE TABLE [ IF NOT EXISTS ] tbl_name ( [
  { col_name data_type [ column_constraint [ ... ] | table_constraint }
    [, ... ]
] )

إذ يُنشأ الجدول الجديد باسم tbl_name وتُحدَّد أعمدته ما بين القوسين وذلك بتحديد اسم العمود col_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
نعم نعم نعم نعم نعم

مصادر