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

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

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

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

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

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

لقد قررنا استخدام ملف نظام إدارة قواعد البيانات

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

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

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

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

أنشئ موظفين في قاعدة البيانات

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

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

إنشاء طاولتنا الأولى

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

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

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

أفراد الاستخدام

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

إنشاء موظفي الجدول
(رقم الموظف INTEGER NOT NULL ،
اسم العائلة VARCHAR (25) NOT NULL ،
الاسم الأول VARCHAR (25) NOT NULL ،
التقارير إلى INTEGER NULL) ؛

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

إنشاء جدول الجدول
(خيارات نوع بيانات اسم السمة ،
...,
خيارات نوع البيانات attribute_name) ؛

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

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

القيم الفارغة

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

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

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

لنلقِ نظرة على SQL المقابل:

إنشاء مناطق الجدول
(رقم العدد الصحيح ليس فارغًا ،
وصف الإقليم VARCHAR (40) NOT NULL ،
regionid VARCHAR (25) NOT NULL) ؛

أخيرًا ، سنستخدم جدول EmployeeTerritories لتخزين العلاقات بين الموظفين والأقاليم. يتم تخزين المعلومات التفصيلية عن كل موظف ومنطقة في الجدولين السابقين. لذلك ، نحتاج فقط إلى تخزين رقمي تعريف الأعداد الصحيحة في هذا الجدول. إذا احتجنا إلى توسيع هذه المعلومات ، فيمكننا استخدام JOIN في أوامر اختيار البيانات الخاصة بنا للحصول على معلومات من جداول متعددة.

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

إنشاء جدول توظيف الأراضي
(رقم الموظف INTEGER NOT NULL ،
رقم المنطقة INTEGER NOT NULL) ؛

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

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

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

ALTER TABLE الموظفين
إضافة الراتب INTEGER NULL ؛

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