JavaRush /مدونة جافا /Random-AR /نقوم بتحليل قواعد البيانات ولغة SQL. (الجزء الثاني) - "مش...
Roman Beekeeper
مستوى

نقوم بتحليل قواعد البيانات ولغة SQL. (الجزء الثاني) - "مشروع جافا من الألف إلى الياء"

نشرت في المجموعة
مقال من سلسلة حول إنشاء مشروع Java (توجد روابط لمواد أخرى في النهاية). هدفه هو تحليل التقنيات الرئيسية، والنتيجة هي كتابة روبوت برقية. "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 1بصحة جيدة أيها القراء الأعزاء. اليوم سنتحدث قليلاً ونكتب أكثر، لأن أيدينا تتذكر أفضل بكثير من أعيننا. قد تتساءل: لماذا نستخدم MySQL؟ هناك، على سبيل المثال، نفس PostgreSQL والحلول الأخرى. كل شيء بسيط هنا. أولا وقبل كل شيء، أنه مجاني. ثانيًا، يحتوي على واجهة مستخدم مريحة (سنتحدث عنها في مقال منفصل). ثالثا، إنها مألوفة وممتعة بالنسبة لي. بالإضافة إلى كل ما سبق، تعد MySQL شائعة جدًا أيضًا.

التحقق من الواجبات المنزلية

آخر مرة قمت فيها بمهمة - تثبيت MySQL على جهازي وتسجيل الدخول إليه. عن طريق الكونسول أو بطريقة أخرى هل تم كل شيء؟ "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 2فهنيئاً لمن فعل ذلك! لا يهم المستوى الذي وصلت إليه في JavaRush، فمن المهم أن تكون قادرًا على تثبيت وتكوين الأدوات اللازمة للعمل وفقًا للأدلة. وأؤكد لكم أنه سيكون هناك الكثير منهم. أولئك الذين حاولوا، ولكن لم ينجحوا، ليسوا خائفين أيضا. لا يحدث هذا دائمًا في المرة الأولى: في بعض الأحيان تحتاج إلى أخذ قسط من الراحة والمحاولة مرة أخرى بقوة جديدة. من قام بتثبيت MySQL بنفسك - اكتب "+" في التعليقات حتى أعرف أن شخصًا ما يقوم بذلك. سأفعل هذا بنفسي أيضاً وبما أنه لم يعد لدي جهاز كمبيوتر محمول يعمل بنظام Windows، فسوف أعرضه على جهاز MacBook. لا أعتقد أن عملية التثبيت ستكون مختلفة كثيرًا. بالنسبة لأولئك الذين يريدون تثبيته بأنفسهم باستخدام الدليل الإنجليزي، الرجاء النقر هنا .

تثبيت MySQL على نظام MacOS

في البداية قم بالذهاب إلى الرابط التالي ، قم باختيار نظام التشغيل سواء كان Windows أو Ubuntu أو MacOS، كما هو موضح أدناه: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 3التنزيل والتشغيل. ومع ذلك، لم يسير كل شيء على ما يرام بالنسبة لي على الفور. اتضح أن Apple لا تسمح بتثبيت الإصدار الأحدث: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 4يمكنك، بالطبع، تعطيل هذا، لكن MacBook يعمل، ولن أعبث بإعداداته. لذلك، من خلال التجربة والخطأ، وجدت إصدارًا يمكن تثبيته - وهو 5.7.21 . للعثور على إصدارات أخرى، انتقل إلى علامة التبويب "الأرشيف" وحدد الإصدار المطلوب: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 5بعد ذلك، قم بتشغيل الملف الذي تم تنزيله. انقر فوق التالي، التالي، التالي، ولكن في النهاية، كن حذرا! سيكون هناك اسم مستخدم وكلمة مرور لتسجيل الدخول إلى قاعدة البيانات. بالنسبة لي بدا الأمر هكذا: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 6مكتوب هنا أنه سيكون هناك مستخدم بالاسم root وكلمة المرور Vac/zto=.24q . هذا يكمل التثبيت.

قم بتسجيل الدخول إلى سطر أوامر MySQL

لتسجيل الدخول، عليك التأكد من تشغيل خادم MySQL. للقيام بذلك، انتقل إلى تفضيلات النظام ، وابحث عن أيقونة MySQL هناك: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 7انتقل إليها وتأكد من أنه يجب تشغيل الخادم أولاً. للقيام بذلك، ما عليك سوى النقر فوق Start MySQL Server وهذا كل شيء. نعم، يمكنك أيضًا تحديد المربع حتى يبدأ الخادم في الخلفية في كل مرة يتم فيها تشغيل الجهاز. "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 8من المهم ملاحظة أنني سأبدأ جميع الطلبات في الجهاز بالرمز $ لتوضيح الأمر. بعد ذلك، تحتاج إلى الاتصال مباشرة بخادم MySQL عبر سطر الأوامر. للقيام بذلك، افتح الوحدة الطرفية واكتب: $ mysql وهناك خياران:
  1. إذا كانت الاستجابة "خطأ 1045 (28000): تم رفض الوصول للمستخدم 'roman_beskrovnyi'@'localhost' (باستخدام كلمة المرور: NO" ، فهذا يعني أنه تم تثبيت الخادم وجاري استدعاؤه. ما عليك سوى تمرير الأمر الصحيح إليها.
  2. إذا كانت الإجابة هي أن الأمر لم يتم العثور عليه: mysql ، فلا بأس - لا يوجد رابط للخادم. للقيام بذلك، سوف تحتاج إلى إنشاء اسم مستعار باستخدام المتغير mysql، لذلك نكتب السطر التالي:

    $ الاسم المستعار mysql=/usr/local/mysql/bin/mysql

    وهذا سوف يساعد فقط لهذه الجلسة النهائية. لكننا لسنا بحاجة إلى المزيد - بالتأكيد لن نعمل عبر المحطة طوال الوقت.

  3. لم يتم تثبيت MySQL، لا تخدع جهاز الكمبيوتر الخاص بك.
بعد ذلك، نستخدم الاسم وكلمة المرور المقدمة أثناء التثبيت ونكتب: $ mysql --user=root -p"مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 9 هناك نكتب كلمة المرور، وسنكون سعداء بهذا النموذج: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 10فقط السطر الأخير يقول أننا قمنا بتسجيل الدخول إلى MySQL الخادم الطرفي. ولكن تبين أن كلمة المرور هذه للجذر هي كلمة مرور لمرة واحدة، ويجب تغييرها إلى كلمة مرور أخرى. لأسباب أمنية بالطبع. إذا لم نغير هذا وحاولنا إنشاء قاعدة بيانات جديدة على الخادم، فسنتلقى الرد التالي: خطأ 1820 (HY000): يجب عليك إعادة تعيين كلمة المرور الخاصة بك باستخدام عبارة ALTER USER قبل تنفيذ هذا البيان . "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 11إنهم مجبرون، إذا جاز التعبير. حسنًا ، حسنًا ، هل الأمر صعب علينا؟ لنجعل كلمة المرور أبسط (هذا مخصص للعمل المحلي فقط؛ أما بالنسبة للعمل الحقيقي، فيجب أن تكون كلمة المرور معقدة بالطبع). لنفترض root∫ ، مثل اسم المستخدم. لتغيير كلمة المرور، تحتاج إلى إدخال السطر: ALTER USER 'root'@'localhost' IDENTIFIED BY 'root'; وستكون الإجابة كالتالي: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 12للتأكد من أن كل شيء يعمل بشكل صحيح، دعنا نحاول إنشاء قاعدة بيانات جديدة باستخدام الصيغة التالية : $ CREATE DATABASE test_db; للتأكد من إنشاء قاعدة البيانات هذه على الخادم، اكتب الأمر: $ SHOW DATABASES؛ ونتيجة لذلك نحصل على ما يلي: "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 13هذا كل شيء :) من المستحيل القول أنه كان بسيطًا وسريعًا. لذلك من فعل ذلك بنفسه له احترام خاص. بالنسبة لأولئك الذين لم يفعلوا ذلك، لا تقلق، هناك أدلة لجميع أنواع التثبيت:
  • للنوافذ ، _
  • لنظام التشغيل MacOS ،
  • لنظام التشغيل Linux .
تم وصف كل شيء هناك بشكل معقول تمامًا. الشيء الوحيد هو أن كل شيء باللغة الإنجليزية. الآن نكتب أسطرنا الأولى في SQL.

كتابة الأسطر الأولى لدينا في SQL

كما لاحظت أعلاه، نحن نعرف أمرين:
  1. إنشاء قاعدة بيانات - إنشاء قاعدة بيانات على الخادم؛
  2. إظهار قواعد البيانات - يعرض جميع قواعد البيانات التي تم إنشاؤها والمتاحة على الخادم.
ألاحظ أن SQL لا تهتم بكيفية كتابة أوامرها - إما بأحرف كبيرة أم لا. ومع ذلك، يعتبر من الأخلاق الحميدة كتابة الأوامر بالأحرف الكبيرة. بعد ذلك، لحذف قاعدة بيانات، تحتاج إلى كتابة الأمر DROP DATABASE database_name ؛ حيث أن اسم قاعدة البيانات هو اسم قاعدة البيانات التي نريد حذفها. لقد أنشأنا بالفعل قاعدة بيانات اختبارية تسمى test_db ، لذا فلنحذفها. للقيام بذلك نكتب: $ DROP DATABASE test؛ تجدر الإشارة إلى أن استجابة الاستعلام موافق، 0 صفوف متأثرة (0.02 ثانية) مهمة جدًا، لأنها تؤكد نجاح الطلب. بالإضافة إلى ذلك، فإنه يخبرك بعدد الصفوف في الجداول التي تغيرها هذا الاستعلام وعلى مدار الوقت. "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 15بشكل عام، كلمة DROP هي المسؤولة عن إزالة شيء ما. في هذه الحالة، قمنا بحذف قاعدة البيانات. ولكن يمكن أيضًا استخدام هذا لأغراض أخرى (على سبيل المثال، إسقاط جدول). والآن، صدقني ، تحقق من النتيجة، دعنا نرى عدد قواعد البيانات المتبقية: $ SHOW DATABASES; "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 16كما نرى، لا توجد قاعدة بيانات باسم test_db. تشتد: د

إنشاء قاعدة البيانات الخاصة بك والجدول

إنشاء قاعدة بيانات للمدن: $ إنشاء قاعدة بيانات للمدن؛ للعمل في قاعدة بيانات معينة، تحتاج إلى تسجيل الدخول إليها. للقيام بذلك، استخدم الأمر USE Data_name ، وبعد ذلك سيتم تنفيذ جميع أوامر العمل مع الجداول في قاعدة البيانات هذه. $ استخدام المدن؛ كما يتبين من الرد - تم تغيير قاعدة البيانات ، وكان الانتقال إلى قاعدة البيانات هذه ناجحًا. "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 17الخطوة التالية هي إنشاء جدول. أيّ؟ حسنًا، أولاً، لنقم بإنشاء جدول يضم البلدان. لماذا هذا؟ لأن المدن تحتاج إلى مفتاح خارجي للدولة التي تقع فيها. ويمكن الحصول عليها بعد أن تبدأ هذه الدول عمومًا في التواجد في قاعدة البيانات (فيما يلي - مختصرة من قاعدة البيانات). كما نتذكر من المقالة السابقة ، في الجدول الذي تم وصف البلدان فيه، لدينا حقلين - المعرف والاسم، حيث المعرف هو معرف فريد، والاسم هو اسم البلد. لذلك، فإن إنشاء قاعدة البيانات هذه أمر سهل مثل قشر الكمثرى. نكتب: $ CREATE TABLE Country (id INT, name VARCHAR(30)); "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 18كما ترون، كل شيء سار على ما يرام. قياسًا على عرض قواعد البيانات، يمكننا إلقاء نظرة على قائمة الجداول: $ SHOW TABLES؛ "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 19ومن هنا، طاولتنا. الآن دعونا نتعلم كيفية حذف الجداول. للقيام بذلك نكتب: $ DROP TABLE Country؛ "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 20من المهم ملاحظة أنه بمجرد حذف جدول أو قاعدة بيانات، لا يمكن استعادتها!

العمل مع الطاولة

دعونا نستعيد الجدول الذي أنشأناه. للقيام بذلك، تحتاج فقط إلى تكرار ما قمت به بالفعل. لإلقاء نظرة على بنية الجدول، تحتاج إلى استخدام الأمر التالي - DESC table_name : $ DESC Country; "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 21كما ترون، يتم تسجيل كافة المعلومات حول الجدول هنا. لإضافة شيء إلى جدول، تحتاج إلى استخدام الأمر INSERT INTO table_name VALUES() . دعونا نضيف ثلاثة إدخالات لثلاثة بلدان: $ INSERT INTO Country VALUES (1، 'Ukraine')؛ $ أدخل في قيم الدول (2، "روسيا")؛ $ INSERT INTO Country VALUES(3, 'Belorus'); "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 22وللنظر إلى ما تم تخزينه في قاعدة البيانات، سنستخدم طلبًا بسيطًا للحصول على البيانات. للقيام بذلك، نريد الحصول على بيانات جميع الحقول من جدول الدولة. تذكر الجملة السابقة بعناية لأن استعلام SQL سيكون هكذا: $ SELECT * FROM Country; حيث * تعني أنك بحاجة إلى أخذ كافة الحقول. "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 23هذه هي الطريقة الجميلة التي وصلنا إليها. إذا أردنا الحصول على حقل معين فقط، فهذه ليست مشكلة: فبدلاً من النجمة، نكتب أسماء الحقول التي يجب فصلها بفواصل. جربه بنفسك؛) لقد أنشأنا جدولًا بالفعل، ولكن لسبب ما ليس لدينا معلومات كافية عنه. من المؤكد أن حجم السكان لن يضر، أليس كذلك؟ وكيف نفعل ذلك؟
  1. أضف حقلاً جديدًا إلى مخطط الجدول - السكان.
  2. تحديث الإدخالات الموجودة.
لأول مرة، سوف نستخدم الأمر ALTER TABLE table_name ADD COLUMN الأمر . بشكل عام، ALTER TABLE عبارة عن مجموعة من الأوامر لعمليات DDL (تذكر ما هو؟ لقد كان في المقالة السابقة). بالمناسبة، يشير SELECT إلى عملية DML. لنكتب ما يلي: $ ALTER TABLE Country ADD COLUMN السكان INT; $ DESC البلد؛ "مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 24كما ترون من الشكل، لقد نجحنا في إضافة حقل جديد إلى الجدول وتحققنا باستخدام الأمر الثاني من وجود الحقل في المخطط. الخطوة الثانية هي تحديث الإدخالات في الجدول وتعيين القيم. لنأخذ الرقم من ويكيبيديا. لا يعني ذلك أنني أثق بهم، ولكن مع ذلك، هذه هي الطريقة الأسرع والأسهل. للقيام بذلك، استخدم أمر DML آخر. لكن أولاً، دعنا نقول ما نريد القيام به: نريد تحديث جدول البلد، وجعل حقل السكان يساوي 41806221 في السجل حيث المعرف = 1. وإليك كيف يبدو هذا البناء: تحديث اسم الجدول SET table_row1 = القيمة حيث table_row2 = القيمة 2؛ وبناءً عليه نكتب: $ UPDATE Country SET السكان = 41806221 WHERE id = 1; استخدمنا هنا الكلمة الأساسية WHERE"مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 25 لأول مرة . هناك حاجة لإضافة قيم للتصفية. على سبيل المثال، قلنا هذه المرة أنه من الضروري التحديث فقط للحقل (الحقول) الذي يساوي معرفه واحدًا (حتى أخبرنا SQL أن هذا هو المفتاح الأساسي - قد يكون هناك العديد منهم). يمكننا أيضًا تحديد شرط مثل WHERE id > 2. إذا لم نقم بتحديد التصفية على الإطلاق، فسيتم كتابة هذه القيمة في جميع سجلات الجدول. بالنسبة لروسيا وبيلاروسيا ودول أخرى، قم بتحديث نفسك؛) الآن دعونا نحاول الحصول على البيانات من الجدول لحقول الاسم والسكان، بشرط أن يكون المعرف أكبر من 1. $ SELECT name, السكان من البلد WHERE id >1; وهكذا، تلقينا فقط تلك الحقول التي أردناها بأنفسنا. باستخدام INSERT INTO يمكننا تحديد الحقول التي نريد إضافتها والحقول التي نريد تركها فارغة. للقيام بذلك، نكتب: $ INSERT INTOالدولة (الاسم، عدد السكان) VALUES('Georgia', 1234566); للتحقق مما حدث، دعونا نلقي نظرة على قائمة جميع الحقول: $ SELECT * FROM Country; بدون معرف، الإدخال سيء، والسكان، بالطبع، مأخوذ من الرأس، لذلك تحتاج إلى حذفه. استخدم أمر الحذف من اسم الجدول : $ الحذف من البلد حيث الاسم = 'جورجيا'؛ بهذه الطريقة تعلمنا كيفية حذف حقل من الجدول."مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 26"مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 27"مشروع جافا من الألف إلى الياء": نقوم بتحليل قواعد البيانات ولغة SQL.  الجزء 2 - 28

العمل في المنزل

الواجب المنزلي سيكون على النحو التالي:
  1. تحتاج إلى إضافة مفتاح أساسي (المفتاح الأساسي) من حقل المعرف إلى مخطط جدول البلد.
  2. أضف دولة أخرى إلى جدول الدولة - مولدوفا.
  3. وفقًا لمخطط المقالة السابقة، قم بإنشاء مدينة جدول تحتوي على جميع الحقول الموضحة. ستكون أسماء الحقول كما يلي: المعرف، الاسم، معرف_البلد، السكان.
  4. إضافة مفتاح أساسي إلى جدول المدينة.
  5. أضف مفتاحًا خارجيًا إلى جدول المدينة.
المهمة مثيرة للاهتمام، بالنسبة لأولئك الذين يعرفون، ستكون سريعة وغير معقدة. بالنسبة لأولئك الذين لم يفعلوا ذلك، سيكون بمثابة تعزيز ممتاز للمادة من هذه المقالة.

دعونا نلخص ذلك

لقد فعلنا الكثير من الأشياء في هذه المقالة. أولاً، قمنا بتثبيت وتشغيل خادم قاعدة بيانات MySQL. ثانيًا، تعلمنا قائمة كاملة من الكلمات الرئيسية والاستعلامات، والتي يمكننا بمساعدتها الآن إنشاء/حذف قواعد البيانات والجداول. تعلمنا كيفية إضافة البيانات إلى الجداول وتحديثها وحذفها. فيما يلي جميع الأوامر التي استخدمناها، بالإضافة إلى أوصافها:
  • إنشاء قاعدة بيانات data_name؛ - إنشاء قاعدة بيانات جديدة
  • عرض قواعد البيانات؛ - عرض قائمة قواعد البيانات
  • إسقاط قاعدة بيانات data_name؛ - حذف قاعدة البيانات
  • استخدم اسم قاعدة البيانات؛ - العمل في قاعدة البيانات
  • إنشاء جدول table_name (المعرف INT، ....); - إنشاء جدول
  • عرض الجداول؛ - عرض قائمة الجداول
  • DESC TABLE table_name; - انظر الرسم البياني للجدول
  • إسقاط الجدول table_name؛ - حذف الجدول
  • أدخل في قيم اسم الجدول ()؛ - إضافة حقل إلى الجدول
  • SELECT * FROM table_name WHERE table_row = value; - الحصول على الحقول في الجدول تحت الشرط بعد WHERE
  • اختر * من اسم الجدول؛ - الحصول على كافة الحقول في الجدول
  • ALTER TABLE table_name ADD COLUMN column_name COLUMN_TYPE؛ - إضافة حقل حقل جديد إلى مخطط الجدول
  • تحديث talbe_name SET talbe_row1 = value1 حيث table_row2 = value2؛ - تحديث السجلات في الجدول: قم بتعيين قيم حقل واحد خاضعة لشرط حقل آخر
  • احذف من اسم الجدول حيث table_row1 = value1; - إزالة حقل (أو حقول) من جدول تحت شرط معين.
أعتقد أننا قمنا بعمل ممتاز معك. أدعو كل من يحب عملي إلى الاشتراك في حسابي على GitHub ، حيث أنشر المشاريع والتطورات المثيرة للاهتمام التي تحدث في مسيرتي المهنية. أدعو كل من يهتم بالعمل في المصادر المفتوحة للمشاركة في مشاريعي (المستودعات). شكرا لكم جميعا على اهتمامكم. ترقبوا المقالة التالية عن قواعد البيانات قريبا.

توجد قائمة بجميع المواد الموجودة في السلسلة في بداية هذه المقالة.

تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION