إنشاء قواعد البيانات والجداول في SQL

إنشاء قاعدة البيانات

هل أنت على استعداد لبدء إنشاء قواعد البيانات والجداول باستخدام لغة الاستعلام المهيكلة ؟ في هذه المقالة ، نستكشف عملية إنشاء الجداول يدويًا باستخدام أوامر CREATE DATABASE و CREATE TABLE. إذا كنت حديث العهد بـ SQL ، فقد ترغب في مراجعة مقالة SQL Basics أولاً.

متطلبات العمل

قبل أن نجلس على لوحة المفاتيح ، نحتاج إلى التأكد من أن لدينا فهمًا جيدًا لمتطلبات العميل. ما هي أفضل طريقة للحصول على هذه البصيرة؟ التحدث مع الزبون ، بالطبع! بعد الجلوس مع مدير الموارد البشرية في XYZ ، علمنا أنها شركة مبيعات القطعة ، وهي مهتمة في المقام الأول في تتبع المعلومات عن موظفي المبيعات الخاصة بهم.

تقسم شركة XYZ قوة المبيعات إلى المناطق الشرقية والغربية ، وينقسم كل منها إلى العديد من المناطق التي يغطيها مندوبي المبيعات الأفراد. ترغب إدارة الموارد البشرية في تتبع الأراضي التي يغطيها كل موظف وكذلك معلومات الراتب والهيكل الإشرافي لكل موظف. لتلبية هذه المتطلبات ، قمنا بتصميم قاعدة بيانات تتكون من ثلاثة جداول ، كما هو موضح في الرسم البياني للكيان - العلاقة في هذه الصفحة.

اختيار منصة قاعدة البيانات

لقد قررنا استخدام نظام إدارة قاعدة بيانات (أو DBMS) مبني على لغة الاستعلام الهيكلية (SQL). لذلك ، يجب كتابة كافة أوامر إنشاء قواعد البيانات والجدول الخاص بنا مع وضع ANSI SQL القياسي في الاعتبار.

كميزة إضافية ، سيضمن استخدام SQL المتوافقة مع ANSI أن تعمل هذه الأوامر على أي نظام DBMS يدعم معيار SQL ، بما في ذلك Oracle و Microsoft SQL Server. إذا لم تقم بتحديد نظام أساسي لقاعدة البيانات الخاصة بك حتى الآن ، فإن " خيارات برنامج قاعدة البيانات" تقودك خلال عملية الاختيار.

إنشاء قاعدة البيانات

خطوتنا الأولى هي إنشاء قاعدة البيانات نفسها. تقدم العديد من أنظمة إدارة قواعد البيانات سلسلة من الخيارات لتخصيص معلمات قاعدة البيانات في هذه الخطوة ، لكن قاعدة البيانات الخاصة بنا تسمح فقط بإنشاء قاعدة بيانات بسيطة. كما هو الحال مع جميع أوامرنا ، قد ترغب في الرجوع إلى وثائق نظام إدارة قواعد البيانات (DBMS) لتحديد ما إذا كانت أي من المعلمات المتقدمة التي يدعمها نظامك الخاص تلبي احتياجاتك. دعونا نستخدم الأمر CREATE DATABASE لإعداد قاعدة البيانات الخاصة بنا:

انشاء فريق البيانات

ضع ملاحظة خاصة عن الكتابة بالأحرف الكبيرة المستخدمة في المثال أعلاه. من الممارسات الشائعة بين المبرمجين في SQL استخدام كافة الأحرف الكبيرة لكلمات أساسية SQL مثل "CREATE" و "DATABASE" أثناء استخدام كافة الأحرف الصغيرة للأسماء المعرفة من قبل المستخدم مثل اسم قاعدة بيانات "staff". توفر هذه الاتفاقيات لسهولة القراءة.

مواصلة قراءة هذا البرنامج التعليمي ونحن إنشاء الجداول لقاعدة البيانات الخاصة بنا.

تعلم المزيد

إذا كنت ترغب في معرفة المزيد عن لغة الاستعلام الهيكلية ، فقم بقراءة مقدمة إلى SQL أو قم بالتسجيل في دورة تعليم بريد إلكتروني SQL التعليمية المجانية.

الآن بعد أن قمنا بتصميم وإنشاء قاعدة البيانات الخاصة بنا ، نحن على استعداد للبدء في إنشاء الجداول الثلاثة المستخدمة لتخزين بيانات موظفي XYZ Corporation. سنقوم بتنفيذ الجداول التي قمنا بتصميمها في الجزء السابق من هذا البرنامج التعليمي.

إنشاء جدولنا الأول

يتكون جدولنا الأول من البيانات الشخصية لكل موظف في شركتنا. نحن بحاجة إلى تضمين اسم كل موظف ، والمرتب ، والهوية ، والمدير. إنها ممارسة تصميم جيدة لفصل الأسماء الأخيرة والأولى في حقول منفصلة لتبسيط البحث عن البيانات والفرز في المستقبل. أيضًا ، سنتتبع مدير كل موظف عن طريق إدخال مرجع إلى معرّف الموظف للمدير في سجل كل موظف. دعونا أولا نلقي نظرة على جدول الموظف المطلوب.

تقوم سمة ReportsTo بتخزين معرف المدير لكل موظف. من سجلات العينة المعروضة ، يمكننا تحديد أن سو سكامبي هي مديرة كل من توم كيندال وجون سميث. ومع ذلك ، لا توجد معلومات في قاعدة البيانات على مدير سو ، كما هو مبين في إدخال NULL في صفها.

الآن يمكننا استخدام SQL لإنشاء الجدول في قاعدة بيانات الموظفين لدينا. قبل القيام بذلك ، لنضمن أننا في قاعدة البيانات الصحيحة عن طريق إصدار أمر الاستخدام:

أفراد USE

بدلا من ذلك ، فإن "موظفي DATABASE" ؛ الأمر سوف يؤدي نفس الوظيفة. الآن يمكننا إلقاء نظرة على أمر SQL المستخدم في إنشاء جدول الموظفين لدينا:

CREATE TABLE employees (عامل الموظف INTEGER NOT NULL، اسم العائلة VARCHAR (25) NOT NULL، firstname VARCHAR (25) NOT NULL، reportsto INTEGER NULL)؛

كما هو الحال مع المثال أعلاه ، لاحظ أن اتفاقية البرمجة تملي علينا استخدام جميع الأحرف الكبيرة لكلمات SQL الرئيسية والحروف الصغيرة للأعمدة والجداول التي يحمل اسم المستخدم. قد يبدو الأمر أعلاه مربكًا في البداية ، لكن يوجد في الواقع بنية بسيطة خلفه. في ما يلي نظرة عامة قد تؤدي إلى توضيح الأمور قليلاً:

CREATE TABLE table_name (attribute_name datatype options، ...، attribute_name datatype options)؛

السمات وأنواع البيانات

في المثال السابق ، يكون اسم الجدول موظفًا ونقوم بتضمين أربع سمات: employeeid ، و lastname ، و firstname ، و reportsto. يشير نوع البيانات إلى نوع المعلومات التي نرغب في تخزينها في كل حقل. معرف الموظف هو رقم صحيح بسيط ، لذلك سنستخدم نوع البيانات INTEGER لكل من حقل الموظف وحقل التقرير. ستكون أسماء الموظفين عبارة عن سلاسل أحرف بطول متغير ولا نتوقع أن يكون لدى أي موظف اسم أول أو آخر أكثر من 25 حرفًا. لذلك ، سنستخدم نوع VARCHAR (25) لهذه الحقول.

قيم NULL

يمكننا أيضًا تحديد إما NULL أو NOT NULL في حقل الخيارات في عبارة CREATE. هذا ببساطة يخبر قاعدة البيانات ما إذا كانت قيم فارغة (أو فارغة) مسموح بها لتلك السمة عند إضافة صفوف إلى قاعدة البيانات. في مثالنا ، يتطلب قسم الموارد البشرية أن يتم تخزين هوية الموظف والاسم الكامل لكل موظف. ومع ذلك ، ليس كل موظف لديه مدير - لا يقدم المدير التنفيذي تقاريره لأي شخص! - لذلك نسمح بإدخالات NULL في هذا الحقل. لاحظ أن قيمة NULL هي القيمة الافتراضية وأن حذف هذا الخيار سيسمح ضمنيًا بقيم NULL لسمة ما.

بناء الجداول المتبقية

الآن دعونا نلقي نظرة على جدول المناطق. من نظرة سريعة على هذه البيانات ، يبدو أننا بحاجة إلى تخزين عدد صحيح وسلاسل طول متغيرين. كما هو الحال مع المثال السابق ، لا نتوقع أن تستهلك معرف المنطقة أكثر من 25 حرفًا. ومع ذلك ، فإن بعض أقاليمنا لها أسماء أطول ، لذا سنقوم بتوسيع الطول المسموح به لهذه السمة إلى 40 حرفًا. دعونا ننظر إلى SQL المقابلة:

CREATE TABLE territories (territoryid INTEGER NOT NULL، territory Description VARCHAR (40) NOT NULL، regionid VARCHAR (25) NOT NULL)؛

وأخيرًا ، سنستخدم جدول EmployeeTiritories لتخزين العلاقات بين الموظفين والأقاليم. يتم تخزين المعلومات التفصيلية عن كل موظف وأرض في الجدولين السابقين. لذلك ، نحتاج فقط إلى تخزين رقمي هوية صحيحين في هذا الجدول. إذا كنا بحاجة إلى توسيع هذه المعلومات ، فيمكننا استخدام JOIN في أوامر اختيار البيانات الخاصة بنا للحصول على معلومات من جداول متعددة. هذا الأسلوب في تخزين البيانات يقلل من التكرار في قاعدة البيانات لدينا ويضمن الاستخدام الأمثل للمساحة على محركات التخزين الخاصة بنا. سنغطي أمر JOIN بتعمق في برنامج تعليمي في المستقبل. إليك شفرة SQL لتنفيذ جدولنا النهائي:

CREATE TABLE employeetritories (الموظف INTEGER NOT NULL ، INTREGER INTEGER NOT NULL) ؛

يوفر آلية SQL إلى تغيير بنية قاعدة البيانات بعد الإنشاء

إذا كنت مهنًا بشكل خاص اليوم ، فربما لاحظت أننا "أغلقت عن طريق الخطأ" أحد متطلبات التصميم عند تنفيذ جداول قواعد البيانات لدينا. طلب مدير الموارد البشرية في شركة XYZ أن تتعقب قاعدة البيانات معلومات راتب الموظف ، وقد أهملنا توفير ذلك في جداول قاعدة البيانات التي أنشأناها.

ومع ذلك، لم نفقد كل شيء. يمكننا استخدام الأمر ALTER TABLE لإضافة هذه السمة إلى قاعدة البيانات الموجودة لدينا. نحن نريد تخزين الراتب كقيمة صحيحة. يشبه بناء الجملة تمامًا الأمر CREATE TABLE ، وهو هنا:

ALTER TABLE employees إضافة راتب INTEGER NULL؛

لاحظ أننا حددنا أن قيم NULL مسموح بها لهذه السمة. في معظم الحالات ، لا يوجد خيار عند إضافة عمود إلى جدول موجود. يرجع ذلك إلى حقيقة أن الجدول يحتوي بالفعل على صفوف بدون إدخال لهذه السمة. لذلك ، يقوم DBMS تلقائيًا بإدراج قيمة NULL لملء الفراغ.

ويختتم هذا نظرتنا في قاعدة بيانات SQL وعملية إنشاء الجدول. التحقق مرة أخرى في كثير من الأحيان للحصول على أقساط جديدة في سلسلة دروس SQL لدينا. إذا كنت تريد رسالة تذكير بالبريد الإلكتروني عند إضافة مقالات جديدة إلى موقع معلومات حول قواعد البيانات ، فاحرص على الاشتراك في نشرتنا الإخبارية!