أمثلة Golang SQLite

Amthlt Golang Sqlite



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

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

يجب عليك إكمال المهام التالية قبل التدرب على الأمثلة في هذا البرنامج التعليمي:

أ. قم بتثبيت لغة Golang في النظام إذا لم يتم تثبيتها من قبل. قم بتشغيل الأمر التالي للتحقق من الإصدار المثبت من Golang:







نسخة $ go



ب- قم بتثبيت sqlite3 في النظام إذا لم يكن قد تم تثبيته من قبل. يتم تثبيت Sqlite3 افتراضيًا على Ubuntu 20+. قم بتشغيل الأمر التالي للتحقق من الإصدار المثبت من sqlite3:



sqlite3 دولار - الإصدار





ج. قم بتشغيل الأوامر التالية لإنشاء مجلد باسم 'golang-sqlite' وانتقل إلى هذا المجلد حيث سيتم تخزين ملف قاعدة بيانات SQLite وملف Golang:

mkdir golang-sqlite دولار
$ cd golang-sqlite

د- قم بتشغيل الأمر التالي لتنزيل حزمة Golang الضرورية لاستخدام SQLite مع Golang:



اذهب واحصل على github.com/mattn/go-sqlite3

عمليات قواعد البيانات باستخدام Golang و SQLite

يتم عرض عمليات قاعدة البيانات الأساسية باستخدام قاعدة بيانات SQLite و برنامج Golang النصي في هذا البرنامج التعليمي. تم ذكر قائمة مهام قاعدة البيانات التي تم تناولها في هذا البرنامج التعليمي في ما يلي:

  1. قم بإنشاء قاعدة بيانات SQLite
  2. قم بإجراء اتصال قاعدة بيانات SQLite
  3. قم بإنشاء جدول جديد
  4. أدخل البيانات في الجدول
  5. اقرأ البيانات من الجدول
  6. تحديث بيانات الجدول
  7. احذف البيانات من الجدول

قم بإنشاء قاعدة بيانات SQLite باستخدام Golang

قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي ينشئ ملف قاعدة بيانات SQLite جديد باسم “test.db”. يتم استيراد أربع وحدات في البرنامج النصي. تُستخدم الوحدة النمطية 'fmt' لطباعة الإخراج في الجهاز. يتم استخدام وحدة 'السجل' لإجهاض البرنامج عند ظهور أي خطأ. تُستخدم وحدة 'نظام التشغيل' لإنشاء قاعدة بيانات SQLite ومعالجة الخطأ. تُستخدم الوحدة النمطية 'go-sqlite3' لإجراء اتصالات بقاعدة بيانات SQLite من خلال Golang. يتم استخدام طريقة Create () للوحدة النمطية 'os' هنا لإنشاء قاعدة بيانات SQLite. إذا تم إنشاء قاعدة البيانات بنجاح ، فستتم طباعة رسالة نجاح في الجهاز. خلاف ذلك ، سيتم إنهاء البرنامج. تم استدعاء أسلوب Close () لإغلاق اتصال قاعدة البيانات.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'أنت'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات SQLite جديدة
ديسيبل و يخطئ : = أنت . يخلق ( 'test.db' )
// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// اطبع رسالة النجاح
FMT . Println ( 'تم إنشاء قاعدة البيانات.' )
}
// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف 'db_connect.go':

$ go قم بتشغيل db_connect.go

قم بتشغيل الأمر “ls” للتحقق مما إذا كان ملف قاعدة البيانات “test.db” قد تم إنشاؤه أم لا:

ليرة سورية

يوضح الإخراج التالي أن رسالة النجاح ، 'تم إنشاء قاعدة بيانات' ، تمت طباعتها في الإخراج وأن ملف 'test.db' تم إنشاؤه في الموقع الحالي:

تواصل مع قاعدة بيانات SQLite باستخدام Golang

قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي يفتح ملف قاعدة البيانات “test.db” وقم بإجراء الاتصال بقاعدة البيانات. يتم استيراد وحدة قاعدة البيانات / وحدة SQL الخاصة بـ Golang هنا للقيام بهذه المهمة. يتم استخدام طريقة open () هنا لإجراء اتصال بقاعدة بيانات SQLite الموجودة. إذا تم توصيل قاعدة البيانات بنجاح ، فستتم طباعة رسالة نجاح في الجهاز. خلاف ذلك ، سيتم إنهاء البرنامج.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'قاعدة بيانات / SQL'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات SQLite جديدة
ديسيبل و يخطئ : = sql . يفتح ( 'sqlite3' و 'test.db' )
// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// اطبع رسالة النجاح
fmt . Println ( 'تم توصيل قاعدة البيانات بنجاح.' )
}
// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف “db_connect2.go”:

$ go قم بتشغيل db_connect2.go

يوضح الإخراج التالي أن ملف قاعدة البيانات 'test.db' مفتوح ومتصل بنجاح. تتم طباعة رسالة النجاح 'تم توصيل قاعدة البيانات بنجاح' في الإخراج:

قم بإنشاء جدول في قاعدة بيانات SQLite باستخدام Golang

قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي ينشئ جدول قاعدة بيانات باسم 'members' داخل ملف قاعدة البيانات 'test.db'. يتم استخدام طريقة Exec () هنا لتنفيذ استعلام CREATE TABLE الذي يقوم بإنشاء جدول 'الأعضاء' بستة حقول ومفتاح أساسي. إذا تم إنشاء الجدول بنجاح في قاعدة البيانات ، فستتم طباعة رسالة نجاح. خلاف ذلك ، سيتم إنهاء البرنامج.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'قاعدة بيانات / SQL'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات sqlite جديدة
ديسيبل و يخطئ : = sql . يفتح ( 'sqlite3' و 'test.db' )
// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
مقدار ثابت استفسار خيط = '
إنشاء جدول إذا لم يكن أعضاء خارجيين (
معرف INTEGER INTEGER NOT NULL PRIMARY KEY ،
الاسم CHAR (40) NOT NULL ،
mtype CHAR (100) NOT NULL ،
البريد الإلكتروني CHAR (50) ،
العنوان TEXT NOT NULL ،
موبايل CHAR (25) NOT NULL) ؛ `

_ و يخطئ : = ديسيبل . إكسيك ( استفسار ) ؛

لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// اطبع رسالة النجاح
fmt . Println ( 'تم إنشاء الجدول بنجاح.' )
}

}
// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف 'create_table.go':

$ go قم بتشغيل create_table.go

يوضح الناتج التالي أنه تم إنشاء الجدول بنجاح في قاعدة البيانات. تمت طباعة رسالة النجاح 'تم إنشاء الجدول بنجاح' في الجهاز:

يمكنك تسجيل الدخول إلى SQLite للتحقق مما إذا كان الجدول قد تم إنشاؤه أم لا في قاعدة البيانات.

قم بتشغيل الأمر التالي لتشغيل SQLite بقاعدة بيانات “test.db”:

اختبار sqlite3 $. db

قم بتشغيل أمر SQLite '.tables' من موجه أوامر SQLite للتحقق من أسماء جدول قاعدة البيانات:

sqlite3> الجداول

يوضح الناتج التالي أن قاعدة البيانات تحتوي على جدول 'الأعضاء' الذي تم إنشاؤه عن طريق تنفيذ برنامج Golang النصي:

أدخل السجلات في جدول SQLite باستخدام Golang

يمكن إدراج سجلات متعددة في الجدول عن طريق تنفيذ استعلام INSERT عدة مرات أو عن طريق إضافة قيم متعددة في استعلام INSERT واحد. قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي يقوم بإدراج ثلاثة سجلات في جدول 'members' الخاص بملف قاعدة البيانات 'test.db' باستخدام استعلام INSERT واحد. يتم استخدام طريقة Exec () هنا لتنفيذ استعلام INSERT. إذا تم إدراج السجلات بنجاح في الجدول ، فستتم طباعة رسالة نجاح. خلاف ذلك ، سيتم إنهاء البرنامج.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'قاعدة بيانات / SQL'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات SQLite جديدة
ديسيبل و يخطئ : = sql . يفتح ( 'sqlite3' و 'test.db' )
// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
مقدار ثابت استفسار خيط = '
أدخل أعضاء INTO (المعرف ، الاسم ، النوع ، البريد الإلكتروني ، العنوان ، الهاتف المحمول)
القيم (1، 'نهال أحمد'، 'فضي'، 'nehal@gmail.com'، '36، Dhanmondi 2، Dhaka'، '01844657342') ،
(2، 'Abir Chowdhury'، 'Gold'، 'abir@gmail.com'، '102، Mirpur 10، Dhaka'، '01994563423') ،
(3 ، 'ميرزا ​​عباس' ، 'فضي' ، 'abbas@gmail.com' ، '12 ، جيغاتالا ، دكا' ، '01640006710') ؛ '


// تنفيذ الاستعلام
_ و يخطئ : = ديسيبل . إكسيك ( استفسار ) ؛

لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// اطبع رسالة النجاح
fmt . Println ( 'تم إدراج السجلات بنجاح.' )
}
}

// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف 'insert_table.go':

$ go قم بتشغيل insert_table.go

يوضح الإخراج التالي أنه تم إدراج السجلات بنجاح في الجدول. تتم طباعة رسالة النجاح ، 'تم إدراج السجلات بنجاح' في الإخراج:

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

قم بتشغيل الأمر التالي لتشغيل SQLite بقاعدة بيانات “test.db”:

اختبار sqlite3 $. db

قم بتشغيل استعلام SELECT التالي لقراءة كل محتويات جدول 'الأعضاء':

sqlite3> تحديد * من الأعضاء ؛

يوضح الناتج التالي أن جدول 'الأعضاء' يحتوي على ثلاثة سجلات تم إدراجها بواسطة برنامج Golang النصي:

اقرأ بيانات جدول SQLite باستخدام Golang

قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي يقرأ سجلات جدول 'الأعضاء'. يجب عليك تحديد المتغيرات في Golang لتخزين القيم التي يتم إرجاعها من استعلام SELECT. في هذا البرنامج النصي ، يتم استرداد خمسة حقول من جدول 'الأعضاء' باستخدام استعلام التحديد. لذلك ، تم تحديد خمسة متغيرات في البرنامج النصي لتخزين قيم الحقول الخمسة لجدول 'الأعضاء' حيث تكون قيمة الحقل 'mtype' هي 'Silver'. يتم استخدام طريقة Query () هنا لتنفيذ استعلام SELECT. بعد ذلك ، يتم استخدام الحلقة 'for' لقراءة مجموعة النتائج التي تم إرجاعها بواسطة استعلام SELECT. تُستخدم وظيفة printf () لطباعة القيم المنسقة لمجموعة النتائج.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'قاعدة بيانات / SQL'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات SQLite جديدة
ديسيبل و يخطئ : = sql . يفتح ( 'sqlite3' و 'test.db' )

// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {

// قم بتعريف المتغيرات لتخزين قيم الصف
كان بطاقة تعريف int
كان اسم خيط
كان نوع خيط
كان عنوان خيط
كان متحرك خيط
مقدار ثابت استفسار خيط = حدد المعرف والاسم ونوع mtype والعنوان والجوال
من الأعضاء
حيث mtype = 'الفضة' ؛ ``


// تنفيذ الاستعلام
صفوف و يخطئ : = ديسيبل . استفسار ( استفسار ) ؛

لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {

// اطبع رسالة النجاح
fmt . Println ( 'سجلات جميع الأعضاء الفضية:' )
fmt . Println ( 'بطاقة تعريف \ t اسم \ t \ t نوع العضو \ t عنوان \ t \ t رقم الاتصال' )
ل صفوف . التالي () {
صفوف . مسح ( &بطاقة تعريف و &اسم و & نوع و &عنوان و &متحرك )
fmt . برنتف ( '٪د \ t ٪س \ t ٪س \ t ٪س \ t ٪س ' و بطاقة تعريف و اسم و نوع و عنوان و متحرك )
}
}
}
// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف “select_table.go”:

$ go قم بتشغيل select_table.go

يوجد سجلان في جدول 'الأعضاء' الذي يحتوي على 'Silver' في الحقل 'mtype'. يُظهر الناتج التالي سجلين لجدول 'الأعضاء' اللذين يتم إرجاعهما بواسطة استعلام التحديد:

قم بتحديث بيانات جدول SQLite باستخدام Golang

قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي يغير قيمة حقل الهاتف المحمول لجدول 'الأعضاء' الذي يحتوي على قيمة id 2. يتم استخدام طريقة Exec () هنا لتنفيذ استعلام UPDATE. إذا تم تحديث السجل بنجاح في الجدول ، فستتم طباعة رسالة نجاح. خلاف ذلك ، سيتم إنهاء البرنامج.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'قاعدة بيانات / SQL'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات SQLite جديدة
ديسيبل و يخطئ : = sql . يفتح ( 'sqlite3' و 'test.db' )
// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
مقدار ثابت استفسار خيط = '
تحديث أعضاء SET mobile = '018563452390' حيث المعرف = 2 ؛ `

_ و يخطئ : = ديسيبل . إكسيك ( استفسار ) ؛

لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// اطبع رسالة النجاح
fmt . Println ( 'تم تحديث السجل بنجاح.' )
}
}
// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف 'update_table.go':

اذهب تشغيل update_table.go

في جدول 'الأعضاء' ، يحتوي الصف الثاني على قيمة معرّف 2. المخرجات التالية توضح أن سجل الجدول قد تم تحديثه بنجاح. تتم طباعة رسالة النجاح 'تم تحديث السجل بنجاح' في الجهاز:

يمكنك تسجيل الدخول إلى SQLite للتحقق مما إذا كان قد تم تحديث أي سجل لجدول الأعضاء أم لا.

قم بتشغيل الأمر التالي لتشغيل SQLite بقاعدة بيانات “test.db”:

اختبار sqlite3 $. db

قم بتشغيل استعلام SELECT التالي لقراءة كل محتويات جدول 'الأعضاء':

sqlite3> تحديد * من الأعضاء ؛

قيمة مجال المحمول لـ 2 اختصار الثاني سجل جدول الأعضاء هو '01994563423' قبل تنفيذ البرنامج النصي. يوضح الناتج التالي أن قيمة مجال المحمول لـ 2 اختصار الثاني تم تغيير سجل جدول الأعضاء إلى '018563452390' بعد تنفيذ البرنامج النصي:

احذف بيانات جدول SQLite باستخدام Golang

قم بإنشاء ملف Golang بالبرنامج النصي التالي الذي يحذف 3 بحث وتطوير سجل جدول 'الأعضاء' الذي يحتوي على قيمة معرّف 3. يتم استخدام طريقة Exec () هنا لتنفيذ استعلام DELETE. إذا تم حذف السجل بنجاح من الجدول ، فستتم طباعة رسالة نجاح. خلاف ذلك ، سيتم إنهاء البرنامج.

طَرد رئيسي

// استيراد الوحدات الضرورية
يستورد (
'FMT'
'سجل'
'قاعدة بيانات / SQL'
_ 'github.com/mattn/go-sqlite3'
)

func رئيسي () {

// إنشاء قاعدة بيانات SQLite جديدة
ديسيبل و يخطئ : = sql . يفتح ( 'sqlite3' و 'test.db' )
// تحقق من وجود أي خطأ
لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// تحديد استعلام الحذف
مقدار ثابت استفسار خيط = 'احذف من الأعضاء حيث المعرف = 3 ؛'
// تنفيذ الاستعلام
_ و يخطئ : = ديسيبل . إكسيك ( استفسار ) ؛

لو يخطئ ! = لا شيء {
// أضف رسالة الخطأ إلى السجل
سجل . مميت ( يخطئ )
} آخر {
// اطبع رسالة النجاح
FMT . Println ( 'تم حذف السجل بنجاح.' )
}
}
// أغلق اتصال قاعدة البيانات
ديسيبل . يغلق ()
}

قم بتشغيل الأمر التالي لتنفيذ ملف 'delete_table.go':

$ go قم بتشغيل delete_table.go

يوضح الإخراج التالي أن 3 بحث وتطوير تم حذف سجل جدول 'الأعضاء' بنجاح. تتم طباعة رسالة النجاح 'تم حذف السجل بنجاح' في الجهاز:

يمكنك تسجيل الدخول إلى SQLite للتحقق مما إذا كان قد تم حذف أي سجل لجدول الأعضاء أم لا.

قم بتشغيل الأمر التالي لتشغيل SQLite بقاعدة بيانات “test.db”:

اختبار sqlite3 $. db

قم بتشغيل استعلام SELECT التالي لقراءة كل محتويات جدول 'الأعضاء':

sqlite3> تحديد * من الأعضاء ؛

يوضح الناتج التالي أن قيمة 3 بحث وتطوير يتم حذف سجل جدول الأعضاء بعد تنفيذ البرنامج النصي ويتم طباعة السجلين الآخرين في الإخراج:

خاتمة

تشتهر كل من SQLite و Golang الآن ببساطتها وخفة وزنها. يمكن تنفيذ أي تطبيق بسيط قائم على قاعدة البيانات بسهولة باستخدام هذه الأدوات. الجزء الأكبر من أي تطبيق هو تنفيذ عملية CRUD. تم شرح طرق تنفيذ عملية CRUD باستخدام برنامج Golang النصي وقاعدة بيانات SQLite في هذا البرنامج التعليمي باستخدام ملفات Golang المتعددة. إذا كنت متعلمًا جديدًا للغة Go وقاعدة بيانات SQLite ، فسيساعدك هذا البرنامج التعليمي على تعلمهما من الأساسيات.