الفرق بين المراجعتين ل"SQL/create table"

من موسوعة حسوب
< SQL
اذهب إلى التنقل اذهب إلى البحث
 
ط (استبدال النص - '\[\[تصنيف:(.*)\]\]' ب'{{SUBPAGENAME}}')
سطر 96: سطر 96:
 
* [https://www.sqlite.org/lang_createtable.html توثيق CREATE TABLE في محرك SQLite]
 
* [https://www.sqlite.org/lang_createtable.html توثيق CREATE TABLE في محرك SQLite]
 
* [https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql توثيق CREATE TABLE في محرك SQLServer]
 
* [https://docs.microsoft.com/en-us/sql/t-sql/statements/create-table-transact-sql توثيق CREATE TABLE في محرك SQLServer]
[[تصنيف:SQL]]
+
[[تصنيف:SQL|{{SUBPAGENAME}}]]
[[تصنيف:SQL Administration]]
+
[[تصنيف:SQL Administration|{{SUBPAGENAME}}]]
[[تصنيف:SQL Tables]]
+
[[تصنيف:SQL Tables|{{SUBPAGENAME}}]]

مراجعة 15:41، 28 يناير 2018

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

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

مصادر