الفرق بين المراجعتين لصفحة: «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 ] | CREATE TABLE [ IF NOT EXISTS ] tbl_name ( [ | ||
{ | { col_name data_type [ column_constraint [ ... ] | table_constraint } | ||
[, ... ] | [, ... ] | ||
] ) | ] ) | ||
</syntaxhighlight>إذ يُنشأ الجدول الجديد باسم <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 | 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 |
---|---|---|---|---|
نعم | نعم | نعم | نعم | نعم |