أنشئ قاعدة بيانات في PostgreSQL باستخدام الأمر الذي تم إنشاؤه

Anshy Qa Dt Byanat Fy Postgresql Bastkhdam Alamr Aldhy Tm Anshawh



في هذا الدليل ، سنتعلم كيفية إنشاء قاعدة بيانات في PostgreSQL باستخدام الأمر createdb.

المتطلبات الأساسية:

لتنفيذ الخطوات الموضحة في هذا الدليل ، تحتاج إلى المكونات التالية:

  • نظام Linux مهيأ بشكل صحيح. للاختبار ، ضع في اعتبارك إعداد جهاز Ubuntu افتراضي باستخدام VirtualBox .
  • تثبيت وتهيئة PostgreSQL. تعلم المزيد عن تثبيت PostgreSQL على أوبونتو .
  • الوصول إلى أ مستخدم غير جذر مع امتياز sudo .

قواعد بيانات PostgreSQL

PostgreSQL هو نظام قاعدة بيانات علائقية كائن مجاني ومفتوح المصدر متوافق مع SQL. يمكن أن يعمل مع كل من الاستعلام العلائقي (SQL) وغير العلائقي (JSON). تعرف على المزيد حول ميزات PostgreSQL .







في PostgreSQL ، يكون التسلسل الهرمي للبيانات كما يلي:



  • تَجَمَّع
  • قاعدة البيانات
  • مخطط
  • جدول (أو كائنات أخرى ؛ على سبيل المثال ، وظيفة)

يمكن لأي مثيل PostgreSQL قبول اتصالات عملاء متعددة. يجب على العميل تحديد اسم قاعدة البيانات في طلب الاتصال. يسمح بقاعدة بيانات واحدة فقط لكل اتصال. ومع ذلك ، يمكن للعميل فتح اتصالات متعددة بالخادم ، والاتصال بقواعد بيانات واحدة أو أكثر في وقت واحد.



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

1. فتح اتصال بالخادم

لإنشاء قاعدة بيانات جديدة ، اتصل بخادم PostgreSQL أولاً:





$ سودو -أنا -في postgres
$ بسكل

لاحظ أن إنشاء قاعدة البيانات عملية مقيدة. يُسمح فقط للمستخدمين الذين لديهم امتيازات كافية بتنفيذ الإجراء.



2. سرد قواعد البيانات الحالية
قم بتشغيل الاستعلام التالي في psql لطباعة قائمة قواعد البيانات على الخادم:

$ \قائمة

أثناء التثبيت ، تُنشئ PostgreSQL أول قاعدة بيانات للخادم وهي 'postgres'. يتم أيضًا إنشاء قاعدتي بيانات إضافيتين:

  • نموذج 1 : عند إنشاء أي قاعدة بيانات جديدة داخل الكتلة ، يتم استنساخ 'template1'.
  • template0 : إنها بمثابة نسخة أصلية من المحتوى الأصلي لـ 'template1'.

لا تقم بإنشاء كائنات داخل 'template1' إلا إذا كنت تريد أن تكون جزءًا من كل قاعدة بيانات تم إنشاؤها حديثًا. إذا تم تعديل 'template1' ، يمكن استنساخ 'template0' لإنشاء قاعدة بيانات جديدة بدون أي إضافات محلية للموقع.

3. إنشاء قاعدة بيانات جديدة
لإنشاء قاعدة بيانات جديدة ، قم بتشغيل الاستعلام التالي في psql:

$ إنشاء قاعدة بيانات < db_name > ؛

هنا:

  • يُفترض تلقائيًا أن الدور الحالي هو مالك قاعدة البيانات الجديدة.
  • يمتلك المالك امتياز تغيير المالك إلى دور مختلف.

تحقق من قائمة قواعد البيانات إذا نجح الإجراء باستخدام الأمر التالي:

$ \قائمة

باستخدام حساب ذي امتياز ، يمكننا أيضًا إنشاء قاعدة بيانات لشخص آخر باستخدام الأمر التالي:

$ إنشاء قاعدة بيانات < db_name > مالك < دور > ؛

الأمر Createdb

في الطريقة السابقة ، كان علينا المرور بعدة خطوات لإنشاء قاعدة بيانات:

  • اتصل بخادم PostgreSQL باستخدام psql.
  • قم بتشغيل الاستعلامات لإنشاء قاعدة بيانات جديدة.

لتبسيط العملية ، تأتي PostgreSQL مع الأمر createdb. إنه يعمل بشكل أساسي كغلاف لهذه الإجراءات. يمكننا مباشرة تشغيل الأمر createdb من الصَدَفة.

1. إنشاء قاعدة بيانات باستخدام Createdb
لإنشاء قاعدة بيانات باستخدام خادم قاعدة البيانات الافتراضي ، استخدم الأمر التالي:

$ خلقت ب < db_name >

تحقق من الإجراء باستخدام الأمر التالي:

$ بسكل '\قائمة'

مع الخيارات المختلفة ، يمكننا أيضًا ضبط العمليات التي تم إنشاؤها. تحقق من المثال التالي:

$ خلقت ب < يستضيف > -p < ميناء > < نموذج > -إنها --اسم المستخدم = < اسم المستخدم > --كلمة المرور - صيانة- ديسيبل = < Maintenance_db_name > < db_name >

هنا:

  • : تحدد هذه المعلمة موقع خادم PostgreSQL (عنوان IP أو اسم المجال).
  • -p : منفذ الاتصال بالخادم.
  • : القالب الذي سيتم استخدامه عند إنشاء قاعدة البيانات الجديدة. يمكن أن يكون template0 أو template1 أو أي قاعدة بيانات أخرى.
  • -إنها : يردد الاستعلام المكافئ.
  • -اسم المستخدم : اسم المستخدم للاتصال بالخادم.
  • -كلمة المرور : يفرض الأمر createdb للمطالبة بكلمة مرور قبل الاتصال بالخادم. في معظم الحالات ، ليس مطلوبًا لأن createb يطالب تلقائيًا بكلمة مرور إذا طلب الخادم ذلك. ومع ذلك ، فإنه يقضي محاولة اتصال في اكتشافها.
  • –صيانة- ديسيبل : قاعدة البيانات التي يجب الاتصال بها عند إنشاء قاعدة البيانات الجديدة. إذا لم يتم تحديدها ، يتم افتراض postgres بشكل افتراضي. إذا لم تكن postgres موجودة ، فسيتم افتراض 'template1'.

حان الوقت لوضعها موضع التنفيذ. قم بتشغيل الأمر createdb التالي:

$ خلقت ب مضيف محلي -p 5432 template0 -إنها --اسم المستخدم = postgres test_db

كما يوحي الناتج ، فهو يعادل طلب البحث التالي:

$ إنشاء قاعدة بيانات test_db قالب نموذج 0 ؛

إدارة قواعد البيانات الإضافية

في هذا القسم ، دعنا نلقي نظرة على عمليات إدارة قواعد البيانات الأخرى.

سرد قواعد البيانات

هناك طريقتان لسرد قواعد البيانات المخزنة في الخادم. لقد أوضحنا بالفعل طريقة واحدة في الأقسام السابقة:

$ \قائمة

هناك طريقة أخرى وهي فحص كتالوج نظام 'pg_database':

$ حدد اسم البيانات من قاعدة بيانات pg_database ؛

حذف قاعدة بيانات

لحذف قاعدة بيانات ، قم بتشغيل الاستعلام التالي:

$ إسقاط قاعدة البيانات < db_name > ؛

على غرار createb ، تأتي PostgreSQL أيضًا مع أمر dropdb الذي يمكننا تشغيله من الصدفة. ألق نظرة على المثال التالي:

$ دروب ديب < يستضيف > -p < ميناء > --اسم المستخدم = < اسم المستخدم > --كلمة المرور -إنها < db_name >

هنا:

  • : خادم PostgreSQL المطلوب الاتصال به.
  • -p : منفذ خادم PostgreSQL المراد الاتصال به.
  • -إنها : يردد الاستعلام المكافئ.

لاحظ أنه يجب أن يكون لدى المستخدم امتياز كافٍ لحذف قاعدة بيانات.

تغيير ملكية قاعدة البيانات

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

لتغيير مالك قاعدة البيانات ، قم بتشغيل الاستعلام التالي في psql:

$ تغيير قاعدة البيانات < db_name > المالك لـ < مالك جديد > ؛

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

$ إعادة التخصيص التي يملكها < old_owner > ل < مالك جديد > ؛

على الرغم من كونه ملائمًا ، إلا أن هذا الاستعلام يأتي مع بعض التحذيرات:

  • عند الاتصال بـ postgres (قاعدة البيانات) ، يمكن تغيير ملكية قواعد بيانات متعددة في وقت واحد.
  • لا تستخدم طلب البحث هذا عندما يكون المالك الأصلي هو postgres لأنه قد يؤدي إلى إتلاف مثيل قاعدة البيانات بالكامل.

المكافأة: تشغيل الاستعلامات من Shell

حتى الآن ، نقوم بتشغيل الاستعلامات من وحدة تحكم PostgreSQL. ماذا لو كنت تريد دمج بعض وظائف قاعدة البيانات في البرامج النصية الخاصة بك؟ يمكن للأمرين createdb و dropdb القيام بعمليات محددة فقط.

لحل هذه المشكلة ، يمكننا استخدام psql كقناة. إلى جانب الصدفة التفاعلية القياسية ، يمكن لـ psql أيضًا تشغيل الاستعلامات بسرعة.

طريقة 1:

هيكل القيادة هو كما يلي:

$ بسكل < يستضيف > -p < ميناء > -في < اسم المستخدم > < قاعدة البيانات > < استفسار >

هنا:

  • : عنوان خادم PostgreSQL.
  • -p : المنفذ المراد الاتصال به (القيمة الافتراضية 5432).
  • -في : المستخدم المراد الاتصال به كـ.
  • : قاعدة البيانات المراد الاتصال بها.
  • : الاستعلام المطلوب تنفيذه.

الطريقة الثانية:

تأتي PostgreSQL مع ميزة أخرى مثيرة للاهتمام: اتصال URI. إنها طريقة ذكية لترميز جميع معلمات الاتصال بدقة. هيكل اتصال URI هو كما يلي:

$ postgresql: // < اسم المستخدم > : < كلمة المرور > @ < يستضيف > : < ميناء > / < db_name >

هنا:

  • postgresql أو postgres : البروتوكول الفريد لاتصال PostgreSQL URI.

للاتصال بقاعدة بيانات باستخدام عنوان URI للاتصال ، استخدم الأمر psql التالي:

$ بسكل < Connection_uri > < استفسار >

خاتمة

تعلمنا طرقًا مختلفة لإنشاء قواعد البيانات في PostgreSQL. أوضحنا كيفية إنشاء قاعدة بيانات باستخدام استعلام إنشاء قاعدة بيانات. عرضنا أيضًا إنشاء قاعدة البيانات باستخدام الأمر createdb. بالإضافة إلى ذلك ، قمنا أيضًا بتغطية بعض إجراءات إدارة قواعد البيانات المهمة الأخرى مثل حذف قواعد البيانات وتغيير المالك.

هل أنت مهتم بمعرفة المزيد عن PostgreSQL؟ تفحص ال فئة فرعية PostgreSQL y الذي يحتوي على العديد من الإرشادات حول الميزات المختلفة ؛ على سبيل المثال: المهام و التعبيرات العادية و الجداول ، وأكثر بكثير.