דוגמאות של Golang SQLite

Dwgm Wt Sl Golang Sqlite



Golang היא שפת תכנות בקוד פתוח. הוא תומך בסוגים שונים של כלי מסד נתונים. SQLite הוא מנוע מסד נתונים יחסי פופולרי ול-Golang יש חבילת מסד נתונים/SQL שניתן להשתמש בה כדי להתחבר למסד הנתונים של SQLite ולבצע סוגים שונים של משימות מסד נתונים. מוצגת דרך החיבור למסד הנתונים של SQLite וביצוע סוגים שונים של פעולות מסד נתונים כגון יצירת הטבלה, הכנסת הרשומות לטבלה, קריאת הנתונים מהטבלה, עדכון נתוני הטבלה ומחיקת הרשומות מהטבלה. במדריך זה באמצעות סקריפט Golang.

דרישות קדם:

עליך להשלים את המשימות הבאות לפני שתתרגל את הדוגמאות במדריך זה:

א. התקן את שפת הגולנג במערכת אם היא לא הותקנה קודם לכן. הפעל את הפקודה הבאה כדי לבדוק את הגרסה המותקנת של Golang:







גרסת $ go



ב. התקן את sqlite3 במערכת אם הוא לא הותקן קודם לכן. Sqlite3 מותקן כברירת מחדל באובונטו 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' משמש להדפסת הפלט במסוף. מודול 'יומן' משמש לביטול התוכנית כאשר מופיעה שגיאה כלשהי. מודול 'OS' משמש ליצירת מסד הנתונים של SQLite ולטפל בשגיאה. מודול 'go-sqlite3' משמש ליצירת קשרים עם מסד הנתונים של SQLite דרך Golang. שיטת Create() של מודול 'os' משמשת כאן ליצירת מסד נתונים של SQLite. אם מסד הנתונים נוצר בהצלחה, מודפסת הודעת הצלחה במסוף. אחרת, התוכנית תופסק. השיטה Close() נקראת כדי לסגור את חיבור מסד הנתונים.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'אתה'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של SQLite
db , לִטְעוֹת := אתה . לִיצוֹר ( 'test.db' )
//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הדפס את הודעת ההצלחה
fmt . Println ( 'מסד נתונים נוצר.' )
}
//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'db_connect.go':

$ לך הפעל את db_connect.go

הפעל את הפקודה 'ls' כדי לבדוק אם קובץ מסד הנתונים 'test.db' נוצר או לא:

$ ls

הפלט הבא מראה שהודעת ההצלחה, 'מסד נתונים נוצר', מודפסת בפלט וקובץ 'test.db' נוצר במיקום הנוכחי:

התחבר עם מסד נתונים של SQLite באמצעות Golang

צור קובץ Golang עם הסקריפט הבא שפותח את קובץ מסד הנתונים 'test.db' וצור את החיבור עם מסד הנתונים. מודול מסד הנתונים/SQL של ​​Golang מיובא לכאן כדי לבצע משימה זו. השיטה open() משמשת כאן כדי ליצור את החיבור עם מסד הנתונים הקיים של SQLite. אם מסד הנתונים מחובר בהצלחה, מודפסת הודעת הצלחה במסוף. אחרת, התוכנית תופסק.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'בסיס נתונים/sql'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של SQLite
db , לִטְעוֹת := sql . לִפְתוֹחַ ( 'sqlite3' , 'test.db' )
//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הדפס את הודעת ההצלחה
fmt . Println ( 'מסד הנתונים מחובר בהצלחה.' )
}
//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'db_connect2.go':

$ לכו להפעיל את db_connect2.go

הפלט הבא מראה שקובץ מסד הנתונים 'test.db' נפתח ומחובר בהצלחה. הודעת ההצלחה, 'בסיס הנתונים מחובר בהצלחה', מודפסת בפלט:

צור טבלה במסד נתונים של SQLite באמצעות Golang

צור קובץ Golang עם הסקריפט הבא שיוצר טבלת מסד נתונים בשם 'members' בתוך קובץ מסד הנתונים 'test.db'. שיטת Exec() משמשת כאן כדי לבצע את השאילתה CREATE TABLE שיוצרת את טבלת 'members' עם שישה שדות ומפתח ראשי. אם הטבלה נוצרה בהצלחה במסד הנתונים, מודפסת הודעת הצלחה. אחרת, התוכנית תופסק.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'בסיס נתונים/sql'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של sqlite
db , לִטְעוֹת := sql . לִפְתוֹחַ ( 'sqlite3' , 'test.db' )
//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
const שאילתא חוּט = `
צור טבלה אם אין חברים (
id INTEGER NOT NULL PRIMARY KEY,
שם CHAR(40) NOT NULL,
mtype CHAR(100) NOT NULL,
דוא'ל CHAR(50),
כתובת TEXT NOT NULL,
mobile CHAR(25) NOT NULL);`

_ , לִטְעוֹת := db . Exec ( שאילתא );

אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הדפס את הודעת ההצלחה
fmt . Println ( 'הטבלה נוצרה בהצלחה.' )
}

}
//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'create_table.go':

$ go run create_table.go

הפלט הבא מראה שהטבלה נוצרה בהצלחה במסד הנתונים. הודעת ההצלחה, 'טבלה נוצרה בהצלחה', מודפסת במסוף:

אתה יכול להיכנס ל-SQLite כדי לבדוק אם הטבלה נוצרה או לא במסד הנתונים.

הפעל את הפקודה הבאה כדי להפעיל את SQLite עם מסד הנתונים 'test.db':

$ sqlite3 test.db

הפעל את הפקודה '.tables' SQLite משורת הפקודה של SQLite כדי לבדוק את שמות הטבלאות של מסד הנתונים:

sqlite3 > .tables

הפלט הבא מראה שמסד הנתונים מכיל את טבלת 'חברים' שנוצרת על ידי ביצוע הסקריפט של Golang:

הכנס את הרשומות לטבלת SQLite באמצעות Golang

ניתן להכניס רשומות מרובות לטבלה על ידי ביצוע שאילתת INSERT מספר פעמים או על ידי הוספת ערכים מרובים בשאילתת INSERT אחת. צור קובץ Golang עם הסקריפט הבא שמוסיף שלוש רשומות לטבלת 'members' של קובץ מסד הנתונים 'test.db' באמצעות שאילתת INSERT אחת. השיטה Exec() משמשת כאן לביצוע שאילתת INSERT. אם הרשומות הוכנסו בהצלחה לטבלה, מודפסת הודעת הצלחה. אחרת, התוכנית תופסק.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'בסיס נתונים/sql'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של SQLite
db , לִטְעוֹת := sql . לִפְתוֹחַ ( 'sqlite3' , 'test.db' )
//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
const שאילתא חוּט = `
INSERT INTO חברים (מזהה, שם, mtype, מייל, כתובת, נייד)
VALUES(1, 'Nehal Ahmed', 'Silver', 'nehal@gmail.com','36, Dhanmondi 2, Dhaka','01844657342'),
(2, 'Abir Chowdhury', 'Gold', 'abir@gmail.com','102, Mirpur 10, Dhaka','01994563423'),
(3, 'Mirza Abbas', 'Silver', 'abbas@gmail.com','12, Jigatala, Dhaka','01640006710');'


//בצע את השאילתה
_ , לִטְעוֹת := db . Exec ( שאילתא );

אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הדפס את הודעת ההצלחה
fmt . Println ( 'רשומות הוכנסו בהצלחה.' )
}
}

//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'insert_table.go':

$ עבור להפעיל את insert_table.go

הפלט הבא מראה שרשומות הוכנסו בהצלחה לטבלה. הודעת ההצלחה, 'רשומות הוכנסו בהצלחה', מודפסת בפלט:

אתה יכול להיכנס ל-SQLite כדי לבדוק אם שלושת הרשומות הוכנסו בהצלחה או לא בטבלת 'חברים'.

הפעל את הפקודה הבאה כדי להפעיל את SQLite עם מסד הנתונים 'test.db':

$ sqlite3 test.db

הפעל את שאילתת ה-SELECT הבאה כדי לקרוא את כל התוכן של טבלת 'חברים':

sqlite3 > SELECT * מחברים ;

הפלט הבא מראה שטבלת 'חברים' מכילה שלוש רשומות שהוכנסו על ידי סקריפט גולאנג:

קרא את הנתונים של טבלת SQLite באמצעות Golang

צור קובץ Golang עם הסקריפט הבא שקורא את הרשומות של טבלת 'חברים'. עליך להגדיר את המשתנים בגולנג כדי לאחסן את הערכים המוחזרים משאילתת ה-SELECT. בסקריפט זה, חמישה שדות מאוחזרים מטבלת 'חברים' באמצעות שאילתת ה-SELECT. אז, חמישה משתנים מוגדרים בסקריפט לאחסון הערכים של חמשת השדות של טבלת 'חברים' כאשר הערך של השדה 'mtype' הוא 'כסף'. כאן נעשה שימוש בשיטת Query() לביצוע שאילתת SELECT. לאחר מכן, לולאת 'for' משמשת לקריאת ערכת התוצאות שמוחזרת על ידי שאילתת ה-SELECT. הפונקציה printf() משמשת להדפסת הערכים המעוצבים של ערכת התוצאות.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'בסיס נתונים/sql'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של SQLite
db , לִטְעוֹת := sql . לִפְתוֹחַ ( 'sqlite3' , 'test.db' )

//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {

//הכרז על משתנים לאחסון ערכי השורה
היה תְעוּדַת זֶהוּת int
היה שֵׁם חוּט
היה mtype חוּט
היה כתובת חוּט
היה נייד חוּט
const שאילתא חוּט = `בחר מזהה, שם, mtype, כתובת, נייד
מחברים
WHERE mtype = 'Silver';`


//בצע את השאילתה
שורות , לִטְעוֹת := db . שאילתא ( שאילתא );

אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {

//הדפס את הודעת ההצלחה
fmt . Println ( 'רישומים של כל חברי הכסף:' )
fmt . Println ( 'תְעוּדַת זֶהוּת \t שֵׁם \t \t סוג חבר \t כתובת \t \t מס' איש קשר' )
ל שורות . הַבָּא () {
שורות . לִסְרוֹק ( &תְעוּדַת זֶהוּת , &שֵׁם , &mtype , &כתובת , &נייד )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , תְעוּדַת זֶהוּת , שֵׁם , mtype , כתובת , נייד )
}
}
}
//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'select_table.go':

$ go הפעל את select_table.go

קיימות שתי רשומות בטבלה 'חברים' המכילה 'כסף' בשדה 'mtype'. הפלט הבא מציג שתי רשומות של טבלת 'חברים' המוחזרות על ידי שאילתת ה-SELECT:

עדכן את הנתונים של טבלת SQLite באמצעות Golang

צור קובץ Golang עם הסקריפט הבא שמשנה את הערך של שדה הנייד של טבלת 'members' המכילה את ערך ה-id של 2. שיטת Exec() משמשת כאן לביצוע שאילתת UPDATE. אם הרשומה מתעדכנת בהצלחה בטבלה, מודפסת הודעת הצלחה. אחרת, התוכנית תופסק.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'בסיס נתונים/sql'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של SQLite
db , לִטְעוֹת := sql . לִפְתוֹחַ ( 'sqlite3' , 'test.db' )
//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
const שאילתא חוּט = `
עדכון חברים SET mobile = '018563452390' WHERE id = 2;`

_ , לִטְעוֹת := db . Exec ( שאילתא );

אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הדפס את הודעת ההצלחה
fmt . Println ( 'הרשומה עודכנה בהצלחה.' )
}
}
//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'update_table.go':

$ עבור להפעיל את update_table.go

בטבלת 'חברים', השורה השנייה מכילה את ערך ה-id של 2. הפלט הבא מראה שהרשומה של הטבלה מעודכנת בהצלחה. הודעת ההצלחה, 'הרשומה עודכנה בהצלחה', מודפסת במסוף:

אתה יכול להיכנס ל-SQLite כדי לבדוק אם רשומה כלשהי של טבלת החברים מעודכנת או לא.

הפעל את הפקודה הבאה כדי להפעיל את SQLite עם מסד הנתונים 'test.db':

$ sqlite3 test.db

הפעל את שאילתת ה-SELECT הבאה כדי לקרוא את כל התוכן של טבלת 'חברים':

sqlite3 > SELECT * מחברים ;

הערך של שדה הנייד של ה-2 נד הרשומה של טבלת החברים היא '01994563423' לפני ביצוע הסקריפט. הפלט הבא מראה שהערך של שדה הנייד של ה-2 נד הרשומה של טבלת החברים משתנה ל-'018563452390' לאחר ביצוע הסקריפט:

מחק את הנתונים של טבלת SQLite באמצעות Golang

צור קובץ Golang עם הסקריפט הבא שמוחק את ה-3 מחקר ופיתוח רשומה של טבלת 'members' המכילה את ערך ה-id של 3. שיטת Exec() משמשת כאן לביצוע שאילתת DELETE. אם הרשומה נמחקת בהצלחה מהטבלה, מודפסת הודעת הצלחה. אחרת, התוכנית תופסק.

חֲבִילָה רָאשִׁי

//ייבא את המודולים הדרושים
יְבוּא (
'fmt'
'עֵץ'
'בסיס נתונים/sql'
_ 'github.com/mattn/go-sqlite3'
)

func רָאשִׁי () {

//צור מסד נתונים חדש של SQLite
db , לִטְעוֹת := sql . לִפְתוֹחַ ( 'sqlite3' , 'test.db' )
//בדוק אם יש שגיאה כלשהי
אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הגדר את שאילתת המחיקה
const שאילתא חוּט = `מחק מחברים WHERE id = 3;`
//בצע את השאילתה
_ , לִטְעוֹת := db . Exec ( שאילתא );

אם לִטְעוֹת != אֶפֶס {
//הוסף את הודעת השגיאה ליומן
עֵץ . קָטלָנִי ( לִטְעוֹת )
} אַחֵר {
//הדפס את הודעת ההצלחה
fmt . Println ( 'הרשומה נמחקה בהצלחה.' )
}
}
//סגור את חיבור מסד הנתונים
db . סגור ()
}

הפעל את הפקודה הבאה כדי לבצע את הקובץ 'delete_table.go':

$ go run delete_table.go

הפלט הבא מראה שה-3 מחקר ופיתוח הרשומה של טבלת 'חברים' נמחקה בהצלחה. הודעת ההצלחה, 'הרשומה נמחקה בהצלחה', מודפסת במסוף:

אתה יכול להיכנס ל-SQLite כדי לבדוק אם רשומה כלשהי של טבלת החברים נמחקה או לא.

הפעל את הפקודה הבאה כדי להפעיל את SQLite עם מסד הנתונים 'test.db':

$ sqlite3 test.db

הפעל את שאילתת ה-SELECT הבאה כדי לקרוא את כל התוכן של טבלת 'חברים':

sqlite3 > SELECT * מחברים ;

הפלט הבא מראה שהערך של ה-3 מחקר ופיתוח הרשומה של טבלת האיברים נמחקת לאחר ביצוע הסקריפט ושתי הרשומות האחרות מודפסות בפלט:

סיכום

הן SQLite והן Golang פופולריות כעת בזכות הפשטות והתכונות הקלות שלהן. כל יישום פשוט מבוסס מסד נתונים יכול להיות מיושם בקלות באמצעות הכלים הללו. החלק העיקרי של כל יישום הוא ליישם את פעולת CRUD. השיטות ליישום פעולת CRUD באמצעות סקריפט Golang ומסד נתונים של SQLite מוסברות במדריך זה באמצעות קובצי Golang מרובים. אם אתה לומד חדש של שפת Go ומסד הנתונים של SQLite, מדריך זה יעזור לך ללמוד אותם מהבסיס.