SQL هي لغة خاصة بالمجال يستخدمها المهندسون للتعامل مع البيانات المخزنة في قواعد البيانات العلائقية أو لمعالجة الدفق في أنظمة إدارة تدفق البيانات العلائقية. يمكنك تخزين البيانات في قاعدة بيانات علائقية من خلال الجداول. أول شيء يجب القيام به في هذه العملية هو إنشاء قاعدة البيانات التي تريد العمل عليها. ثم نقوم بإنشاء جداول يتم فيها تخزين البيانات الفعلية. سيحتوي الجدول في قاعدة البيانات هذه على صفوف وأعمدة.
سيكون هناك نوع بيانات معين مرتبط بكل عمود يحدد نوع البيانات التي يمكنه تخزينها. أثناء إنشاء الجدول ، يتعين علينا تحديد اسم ونوع البيانات لكل عمود. يمكنك إنشاء جدول باستخدام أمر SQL CREATE TABLE في قاعدتي بيانات MySQL و PostgreSQL.
دعنا نلقي نظرة أعمق على عبارة CREATE TABLE SQL.
كيف أقوم بإنشاء جدول باستخدام SQL؟
يمكنك إنشاء جدول في MySQL بالصيغة التالية:
إنشاء جدول الجدول اسم (
العمود_1 data_type القيمة الافتراضية column_constraint ،
العمود_2 data_type القيمة الافتراضية column_constraint ،
... ،
... ،
table_constraint
) ؛
الأشياء الأساسية التي يجب أن تكون لديك أثناء إنشاء جدول هي اسمه واسم عمود واحد على الأقل. يجب أن يكون هناك جدول قاعدة بيانات واحد فقط باسم جدول معين. ستظهر لك قاعدة البيانات رسالة خطأ إذا حاولت إنشاء جدولين بنفس الاسم.
داخل الأقواس ، نحدد أسماء الأعمدة التي نريد تكوينها في الجدول ، إلى جانب نوع بيانات البيانات التي سيتم إدخالها فيه. ستفصل الفواصل أسماء هذه الأعمدة. يتكون كل عمود من الاسم ونوع البيانات والقيمة الافتراضية للعمود وقيود عمود واحد أو أكثر.
تتحكم قيود العمود في قيمة البيانات الفعلية التي يمكن تخزينها في العمود. على سبيل المثال ، يضمن القيد NOT NULL عدم وجود قيم NULL في هذا العمود المحدد. يمكن أن يكون لديك أكثر من قيد واحد لعمود واحد. على سبيل المثال ، يمكن أن يحتوي العمود على كل من قيود NOT NULL و UNIQUE .
إذا كنت تريد تطبيق قيود على جميع الأعمدة في الجدول ، يمكنك استخدام قيود الجدول. بعض الأمثلة على ذلك هي المفتاح الأجنبي والتحقق والفريد . يمكن أن يحتوي كل جدول على مفتاح أساسي يتكون من عمود واحد أو أكثر. يُستخدم هذا المفتاح الأساسي لتعريف كل سجل في الجدول بشكل فريد. عادة ، تقوم بإدراج عمود المفتاح الأساسي أولاً ثم الأعمدة الأخرى. يجب أن تقوم بتعريف قيد PRIMARY KEY كقيد جدول إذا كان يتكون من عمودين أو أكثر.
لنلقي نظرة على مثال:
إنشاء عملاء الجدول (
المعرف INT NULL ،
الاسم فارشار (20) ليس فارغًا ،
العمر ليس فارغًا ،
الراتب العشري (18 ، 2) ،
المفتاح الأساسي (المعرف)
) ؛
هنا ، اسم الجدول هو "العملاء" ، ومفتاحه الأساسي هو ID. تحتوي أعمدة المعرف والاسم والعمر على قيد NOT NULL . يجب أن يكون طول الاسم أقل من 20 حرفًا. الآن ، قمنا بإنشاء جدول باستخدام أمر SQL CREATE TABLE ويمكننا إدراج البيانات ذات الصلة فيه وقاعدة البيانات.
هل يمكن أن يكون لديك جدول داخل جدول في MySQL / PostgreSQL؟
إن وجود جدول داخل الجدول يسمى تداخل الجداول. لهذا ، سيتعين علينا إنشاء جدول داخل جدول آخر باستخدام أمر SQL CREATE TABLE. هذا مفهوم غير موجود في MySQL. ومع ذلك ، يمكننا تحقيق نفس نتيجة وجود جداول متداخلة باستخدام مفتاح أساسي ومفتاح خارجي. يؤدي هذا إلى إنشاء علاقة أصل - فرعي بين الجدولين.
يُعرف الحقل أو مجموعة الحقول في أحد الجداول التي تشير إلى المفتاح الأساسي لجدول آخر باسم المفتاح الخارجي . يُشار إلى الجدول الذي يحتوي على المفتاح الأساسي الرئيسي بالجدول الأصلي ، بينما يُشار إلى الجدول الذي يحتوي على المفتاح الخارجي بالجدول الفرعي.
على سبيل المثال ، افترض أن لدينا مركبة طاولة رئيسية ، ومفتاحها الأساسي هو المركبات. لدينا طاولتان إضافيتان ، السيارة ، مع مفتاح CarId الأساسي ، والشاحنة ، مع المفتاح الأساسي TruckId ، على التوالي. إذا وضعنا "فيهيد" كمفتاح خارجي في كل من "السيارة والشاحنة" ، فإن "السيارة" ستصبح جدولها الأصلي ، وبالتالي إنشاء علاقة بين الوالدين والطفل.
مركبة الطاولة الرئيسية {فهيد}
طاولات الأطفال
1. سيارة {المركبات ، السيارة}
2. شاحنة {VehiclesId، TruckId}
هل من الممكن التحديد في جدول SQL دون إنشائه أولاً؟
لاختيار البيانات من قاعدة بيانات ، نستخدم عبارة SELECT. يتم الاحتفاظ بالبيانات من هذا في جدول نتائج يسمى مجموعة النتائج. يستخدم هذا لتحديد جزء من الجدول أو الجدول بأكمله بالكامل. عندما تقوم بالتشفير وإنشاء جدول باستخدام الأمر SQL CREATE TABLE ، يمكنك استخدام الأمر SELECT لعرض الجداول التي قمت بإنشائها.
تركيبها كالتالي:
حدد العمود_1 ، العمود_2 ، ...
من table_name ؛
على سبيل المثال ، يقوم الأمر التالي بتحديد الجدول بأكمله.
حدد * من table_name ؛
اختر في
يتم نقل البيانات من جدول إلى جدول آخر باستخدام عبارة SELECT INTO. يمكنه نسخ جميع أعمدة أحد الجداول إلى جدول آخر. يتم استخدام هذا عادةً عندما يكون الجدول الذي يتم نسخ البيانات إليه موجودًا بالفعل.
لتحديد جميع أعمدة الجدول:
تحديد *
INTO new_table [IN externaldb]
من old_table
أين الشرط ؛
لتحديد عدد قليل من الأعمدة في الجدول الجديد:
حدد العمود_1 ، العمود_2 ، العمود_3 ، ...
INTO new_table [IN externaldb]
من old_table
أين الشرط ؛
لذا ، هل يمكننا الاختيار في جدول إذا لم نقم بإنشائه بعد باستخدام SQL CREATE TABLE؟
منطقيا ، يجب أن تكون الإجابة لا. لكن هذا ليس هو الحال ، ويمكننا الاختيار في جدول حتى لو لم نقم بإنشائه بعد. عندما يتعين تكوين جدول ، وتتطلب البيانات من جدول واحد أن يتم نقلها إلى الجدول الذي تم إنشاؤه حديثًا ، يتم استخدام هذا النهج. يتم استخدام نفس أنواع البيانات مثل الأعمدة المختارة لإنشاء الجدول الجديد.
كيف تنشئ جدول منتج في SQL؟
يمكن إنشاء جدول منتج في SQL بطرق مختلفة. يعد استخدام عبارة SQL CREATE TABLE أحد الخيارات. سيتم تضمين معلومات المنتج في الجدول الذي سينشئه هذا البيان. يمكن أيضًا استخدام الأمر SELECT لعرض البيانات والحصول عليها من الجدول. تم ذكر بناء الجملة لكليهما أعلاه.
يمكن استخدام الأمر INSERT لإدراج بيانات جديدة في الجدول أيضًا. بفضل بيان INSERT ، سيتم إدراج البيانات في الجدول في الموضع المحدد. يمكن أيضًا إخراج البيانات من الجدول باستخدام استعلام التحديد ثم إضافتها إلى جدول آخر باستخدام عبارة INSERT.
ادخل في
نستخدم عبارة INSERT INTO لإضافة سجلات جديدة إلى الجدول. صيغة جملة INSERT هي:
INSERT INTO table_name (العمود_1 ، العمود_2 ، ...)
VALUES (value_1، value_2، ...) ،
ما يجعل جدول المنتج مختلفًا هو فقط جانب التصميم نفسه. يتم تخزين اسم المنتج والطراز والفئة وسنة الطراز وسعر القائمة في قاعدة بيانات المنتجات. كل عنصر هو جزء من العلامة التجارية المحددة بواسطة عمود معرف العلامة التجارية. وبالتالي ، يمكن أن تحتوي العلامة التجارية على منتج واحد أو أكثر. كل منتج هو عضو في فئة يتم تحديدها بواسطة معرف الفئة الخاص بها في الجدول.
ما أنواع البيانات المناسبة لقواعد بيانات SQL؟
أثناء استخدام أمر SQL CREATE TABLE ، يجب أن نذكر أنواع بيانات الأعمدة. تعتمد البيانات التي يمكن أن يتضمنها العمود على نوع البيانات هذا. تتضمن الأمثلة عددًا صحيحًا وحرفًا وثنائيًا وتاريخًا ووقتًا والمزيد. يجب أن يحتوي جدول قاعدة البيانات على اسم بالإضافة إلى نوع بيانات لكل عمود.
عند بناء جدول ، يجب على مبرمج SQL تحديد نوع البيانات التي سيتم تضمينها في كل عمود. يحدد نوع البيانات كيفية تفاعل SQL مع البيانات المخزنة. يساعد في تحديد نوع البيانات المتوقعة داخل كل عمود. أنواع البيانات الأساسية الثلاثة في MySQL 8.0 هي السلسلة والأرقام والتاريخ والوقت.
أنواع بيانات السلسلة
عادةً ما تكون أنواع بيانات السلسلة عبارة عن مجموعة من الأحرف التي تنتمي إلى الأبجدية الإنجليزية. أنواع بيانات السلسلة الرئيسية هي:
- CHAR (الحجم)
- فارشار (الحجم)
- ثنائي (الحجم)
- VARBINARY (الحجم)
- TINYBLOB
- TINYTEXT
- حجم الخط)
- BLOB (الحجم)
- نص متوسط
- MEDIUMBLOB
- طويل
- لونجبلوب
- ENUM (val_1، val_2، val_3، ...)
- مجموعة (val_1، val_2، val_3، ...)
هنا يرمز SIZE إلى الحجم الأقصى الذي يمكن أن تأخذه البيانات المخزنة. CHAR عبارة عن سلسلة ذات طول ثابت ، بينما VARCHAR عبارة عن سلسلة ذات طول سلسلة متغير. هذه هي أنواع بيانات السلسلة الأكثر استخدامًا. BLOB هو كائن ثنائي كبير.
أنواع البيانات الرقمية
تستخدم متغيرات نوع البيانات الرقمية للاحتفاظ بالبيانات الرقمية. يتم تقسيمها أيضًا إلى نوعين من أنواع البيانات - دقيق وتقريبي. يتم استخدام أنواع البيانات الدقيقة للاحتفاظ بقيمة البيانات في شكلها الحرفي. بينما يتم تضمين الأرقام الحقيقية في أنواع البيانات التقريبية ، لا يتم حفظ المعلومات حرفيًا كنسخة من القيم الحقيقية. أنواع البيانات الرقمية الرئيسية هي:
- بت (الحجم) \
- TINYINT (الحجم)
- بول
- منطقي
- SMALLINT (الحجم)
- MEDIUMINT (الحجم)
- INT (الحجم)
- العدد الصحيح (الحجم)
- بيجينت (الحجم)
- عائم (الحجم ، د)
- عائم (ع)
- مزدوج (الحجم ، د)
- الدقة المزدوجة (الحجم ، د)
- عشري (الحجم ، د)
- DEC (الحجم ، د)
أكثر أنواع البيانات الرقمية شيوعًا هو INT . يتم استخدامه للاحتفاظ بالأرقام غير العشرية ، بينما يتم استخدام المتغيرات التي تحتوي على أنواع بيانات FLOAT للاحتفاظ بالأرقام العشرية. في نوع بيانات BOOL ، يعتبر الصفر خطأ ، والقيم غير الصفرية تعتبر TRUE .
التاريخ و الوقت
يتم استخدام أنواع بيانات التاريخ والوقت للاحتفاظ ببيانات التاريخ. أنواع بيانات التاريخ والوقت الرئيسية هي:
- تاريخ
- DATETIME (fsp)
- TIMESTAMP (fsp)
- الوقت (fsp)
- عام
تتشابه أنواع بيانات خادم SQL مع أنواع البيانات المذكورة أعلاه ولكن مع اختلافات نحوية صغيرة.
ما هي أنواع المتغيرات في خادم SQL؟
توجد فئتان من المتغيرات في خادم MS SQL:
متغير محلي
يصرح المستخدم عن متغير محلي. يبدأ دائمًا بـ @. نطاق كل متغير محلي مقيد بالدفعة أو العملية التي تعمل الآن في جلسة معينة. المتغير المحلي Transact-SQL هو نوع من الكائنات يمكنه تخزين نوع معين واحد فقط من قيمة البيانات. كثيرًا ما تستخدم البرامج النصية والدُفعات المتغيرات:
- كعداد ، إما لإدارة معدل تكرار الحلقة أو لتتبع عدد مرات تنفيذها.
- لتخزين قيمة البيانات التي سيتم وضعها من خلال فحص التحكم في التدفق.
- للاحتفاظ بقيمة البيانات التي سترجعها قيمة إرجاع دالة.
المتغير العام
يحافظ النظام على المتغير العام. لا يمكن للمستخدمين جعلها عامة. هو المكان الذي يبدأ فيه المتغير العام. يحتفظ بالبيانات حول الجلسات.
التصريح عن متغير
من المفيد تحديد أي متغير قبل استخدامه في دفعة أو عملية. تم الإعلان عن متغير استبدال موقع الذاكرة باستخدام الأمر DECLARE. لا يمكن استخدام المتغير إلا بعد الإعلان عنه في الدُفعة أو خطوة الإجراء التالية.
تبدو بنية TSQL للإعلان عن متغير كما يلي:
إعلان {LOCAL_VARIABLE [AS] data_type [= value]}
يمكن للمبرمج أيضًا تحديد قيمة متغير محدد من خلال:
- في عملية التصريح عن المتغير باستخدام الكلمة الأساسية DECLARE
- باستخدام SET
- باستخدام SELECT
لماذا تعتبر أنواع البيانات مهمة في SQL؟
يعد نوع البيانات من بين المكونات الأساسية لأي لغة تشفير ، سواء كانت لغة برمجة مثل C أو لغة معالجة البيانات مثل SQL. في الواقع ، يدعم SQL أكثر من 30 نوعًا من البيانات التي قد تخزن أشكالًا مختلفة من البيانات الفعلية. سيكون من الأفضل إذا كان لديك فهم قوي لأنواع بيانات SQL المختلفة قبل أن تتمكن من البدء في التعامل مع البيانات.
يتم تحديد أنواع المعلومات التي يمكن الاحتفاظ بها في كائنات قاعدة البيانات مثل الجداول بواسطة أنواع بيانات SQL. يحتوي كل عمود في الجدول على اسم ونوع بيانات ، ويحتوي كل جدول على أعمدة. إنها تشكل العمود الفقري لأي لغة ، حيث لا يمكنك معالجة البيانات دون استخدامها.
يجب أن تعلم أنه ليست كل أنواع البيانات مدعومة من قبل أنظمة قواعد البيانات. لذلك يجب عليك التحقق قبل استخدام أي نوع بيانات معين. على سبيل المثال ، لا يمكنك استخدام DateTime في Oracle لأنه لا يسمح بنوع البيانات هذا.
وبالمثل ، لا تستخدم MySQL Unicode كنوع بيانات. يمكنك استخدام أنواع البيانات الإضافية الموجودة في قواعد بيانات معينة. على سبيل المثال ، يمكن استبدال "المال" و "المال الصغير" في Microsoft SQL Server بكلمة "تعويم" و "حقيقي" ، ولكن هذه المصطلحات خاصة بقاعدة البيانات وليست موجودة في أنظمة قواعد البيانات الأخرى. في بعض الأحيان ، تتم الإشارة إلى أنواع بيانات محددة لها أسماء مختلفة في بعض قواعد البيانات. أوراكل ، على سبيل المثال ، تشير إلى "عشري" كـ "رقم" و "blob" على أنها "خام".
هل يمكن أن تحتوي جداول متعددة على نفس المفتاح الأساسي؟
نعم. في العديد من الجداول ، يمكن أن يشترك المفتاح الأساسي في نفس اسم العمود. داخل الجدول ، يجب أن تكون أسماء الأعمدة مميزة. نظرًا لأنه يحدد تكامل الكيانات ، يمكن أن يحتوي الجدول على مفتاح أساسي واحد فقط. قد يحتوي كل جدول على مفتاح أساسي ، لكنه غير مطلوب. لا يجوز لصفين مشاركة نفس المفتاح الأساسي ، وذلك بفضل العمود أو الأعمدة المعينة كمفتاح أساسي. يمكن استخدام المفتاح الأساسي لجدول ما لتحديد سجلات جدول آخر ويكون جزءًا من المفتاح الأساسي للجدول الثاني.
كيف يمكنني استخدام "ترتيب حسب" على مفتاح أساسي؟
يمكن استخدام الأمر ORDER BY للحصول على مجموعة النتائج مرتبة. يمكن أن يكون هذا بترتيب تصاعدي أو تنازلي. يتم عادةً فرز السجلات باستخدام الكلمة الأساسية ORDER BY بترتيب تصاعدي. يمكنك استخدام الكلمة الأساسية DESC لترتيب الإدخالات بترتيب تنازلي.
يبدو بناء جملة الأمر كما يلي:
حدد العمود_1 ، العمود_2 ، ...
من table_name
ترتيب حسب العمود_1 ، العمود_2 ، ... ASC | DESC ؛
على سبيل المثال ، افترض أن هناك جدولًا يسمى Users ؛ يمكنك فرزها بترتيب تصاعدي أو تنازلي بناءً على مدينة المستخدمين.
حدد * من المستخدمين
ترتيب حسب المدينة ؛
لفرز نفسه بترتيب تنازلي:
حدد * من المستخدمين
ترتيب حسب المدينة تنازليًا ؛
ORDER BY على المفتاح الأساسي
ما عليك سوى استخدام ORDER BY كما هو معتاد على اسم المفتاح الأساسي ، مثل "RollID":
حدد * من my_table WHERE col_1 <5 ORDER BY RollID ؛
قد يقرر أو لا يقرر مُحسِّن الاستعلام استخدام بنية فهرس المفتاح الأساسي لتحليل الفرز بدلاً من إجراء فرز نشط على مجموعة نتائج الاستعلام لمعالجة ORDER BY بناءً على الطريقة التي يقرر بها تقييم الاستعلام.
ستُرجع غالبية الاستعلامات أحادية الجدول بدون عبارة ORDER BY النتائج بترتيب المفتاح الأساسي لأن MySQL InnoDB يخزن الجداول في أي نهج لترتيب المفتاح الأساسي الأصلي. ومع ذلك ، لا يزال بإمكانك استخدام ORDER BY إذا كان تطبيقك يتطلب حقًا ترتيب المفتاح الأساسي.
لا يوجد تطوير كود
تعد منهجية تطوير عدم وجود كود أحد العوامل الرئيسية التي تعزز إضفاء الطابع الديمقراطي على الترميز. في هذه الأيام ، أصبح بإمكان المزيد من الأفراد الوصول إلى الحوسبة من حيث المبدأ دون معرفة أي تشفير. إنه يسهل بناء مواقع ويب سريعة الاستجابة بالإضافة إلى تطبيقات الهاتف المحمول.
يمكن أن يساعدك AppMaster في إنشاء كود المصدر تلقائيًا. الرمز متاح لك دائمًا لعرضه وفحصه. لديك خيار تعديل تفاصيل المشروع باستخدام لغة برمجة مع AppMaster. نمنح المستخدمين أيضًا خيار تصدير الكود. هذا وعد بأن البرنامج الذي تقوم بتطويره باستخدام AppMaster يكون بالكامل تحت سيطرتك وملكيتك.
استنتاج
SQL لديها العديد من التطبيقات التي تجعلها جذابة للغاية. يعد إنشاء البرامج النصية لتكامل البيانات وتصميم وتنفيذ الاستعلامات التحليلية والوصول إلى مجموعات فرعية من البيانات من قاعدة بيانات للرؤى ومعالجة المعاملات بعضًا من أبرز أغراضها. يمكن استخدامه أيضًا لإدراج صفوف وأعمدة البيانات في قاعدة البيانات وتعديلها وإزالتها.
قبل الدخول في أعماق SQL ، نحتاج إلى التعرف على أوامره الأساسية وبناء الجملة. من خلال الاطلاع على المقالة أعلاه ، يمكننا التعرف على المزيد حول العبارات الأساسية المستخدمة في SQL ، مثل CREATE TABLE و INSERT INTO و SELECT والمزيد.