Mga Halimbawa ng Golang SQLite

Mga Halimbawa Ng Golang Sqlite



Ang Golang ay isang open-source na programming language. Sinusuportahan nito ang iba't ibang uri ng mga tool sa database. Ang SQLite ay isang sikat na relational database engine at ang Golang ay may database/SQL package na maaaring magamit upang kumonekta sa SQLite database at magsagawa ng iba't ibang uri ng mga gawain sa database. Ang paraan ng pagkonekta sa database ng SQLite at pagsasagawa ng iba't ibang uri ng mga operasyon ng database tulad ng paglikha ng talahanayan, pagpasok ng mga tala sa talahanayan, pagbabasa ng data mula sa talahanayan, pag-update ng data ng talahanayan, at pagtanggal ng mga tala mula sa talahanayan ay ipinapakita. sa tutorial na ito gamit ang Golang script.

Mga kinakailangan:

Kailangan mong kumpletuhin ang mga sumusunod na gawain bago isagawa ang mga halimbawa sa tutorial na ito:

A. I-install ang wikang Golang sa system kung hindi ito naka-install dati. Patakbuhin ang sumusunod na command upang suriin ang naka-install na bersyon ng Golang:







$ go na bersyon



B. I-install ang sqlite3 sa system kung hindi pa ito na-install dati. Ang Sqlite3 ay naka-install bilang default sa Ubuntu 20+. Patakbuhin ang sumusunod na command upang suriin ang naka-install na bersyon ng sqlite3:



$ sqlite3 --bersyon





C. Patakbuhin ang sumusunod na mga command upang lumikha ng isang folder na pinangalanang 'golang-sqlite' at pumunta sa folder na iyon kung saan ang SQLite database file at ang Golang file ay iimbak:

$ mkdir golang-sqlite
$ cd golang-sqlite

D. Patakbuhin ang sumusunod na command para i-download ang kinakailangang Golang package para magamit ang SQLite sa Golang:



$ go get github.com/mattn/go-sqlite3

Mga Operasyon ng Database Gamit ang Golang at SQLite

Ang mga pangunahing pagpapatakbo ng database gamit ang SQLite database at Golang script ay ipinapakita sa tutorial na ito. Ang listahan ng mga gawain sa database na sakop sa tutorial na ito ay binanggit sa sumusunod:

  1. Lumikha ng SQLite Database
  2. Gumawa ng SQLite Database Connection
  3. Gumawa ng Bagong Talahanayan
  4. Ipasok ang Data sa Talahanayan
  5. Basahin ang Data mula sa Talahanayan
  6. I-update ang Data ng Talahanayan
  7. Tanggalin ang Data mula sa Talahanayan

Gumawa ng SQLite Database Gamit ang Golang

Gumawa ng Golang file na may sumusunod na script na lumilikha ng bagong SQLite database file na pinangalanang 'test.db'. Apat na module ang na-import sa script. Ang 'fmt' module ay ginagamit upang i-print ang output sa terminal. Ang 'log' na module ay ginagamit upang i-abort ang program kapag may lumitaw na error. Ang 'os' na module ay ginagamit upang lumikha ng SQLite database at pangasiwaan ang error. Ang module na 'go-sqlite3' ay ginagamit upang gumawa ng mga koneksyon sa database ng SQLite sa pamamagitan ng Golang. Ang Create() na paraan ng 'os' na module ay ginagamit dito upang lumikha ng SQLite database. Kung matagumpay na nalikha ang database, ang isang mensahe ng tagumpay ay naka-print sa terminal. Kung hindi, ang programa ay wawakasan. Ang Close() method ay tinatawag para isara ang database connection.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'ikaw'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong database ng SQLite
db , magkamali := ikaw . Lumikha ( 'test.db' )
//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//I-print ang mensahe ng tagumpay
fmt . Println ( 'Nagawa ang database.' )
}
//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'db_connect.go' na file:

$ go run db_connect.go

Patakbuhin ang command na 'ls' upang suriin kung ang 'test.db' database file ay nilikha o hindi:

$ ls

Ang sumusunod na output ay nagpapakita na ang mensahe ng tagumpay, 'Database ay nilikha', ay naka-print sa output at ang 'test.db' file ay nilikha sa kasalukuyang lokasyon:

Kumonekta sa isang SQLite Database Gamit ang Golang

Gumawa ng Golang file na may sumusunod na script na nagbubukas ng 'test.db' database file at gumawa ng koneksyon sa database. Ang database/SQL module ng Golang ay na-import dito para gawin ang gawaing ito. Ang open() na paraan ay ginagamit dito upang gawin ang koneksyon sa umiiral na database ng SQLite. Kung matagumpay na nakakonekta ang database, ang isang mensahe ng tagumpay ay naka-print sa terminal. Kung hindi, ang programa ay wawakasan.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong database ng SQLite
db , magkamali := sql . Bukas ( 'sqlite3' , 'test.db' )
//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//I-print ang mensahe ng tagumpay
fmt . Println ( 'Matagumpay na nakakonekta ang database.' )
}
//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'db_connect2.go' na file:

$ go run db_connect2.go

Ang sumusunod na output ay nagpapakita na ang 'test.db' database file ay nabuksan at matagumpay na nakakonekta. Ang mensahe ng tagumpay, 'Matagumpay na konektado ang database', ay naka-print sa output:

Gumawa ng Table sa isang SQLite Database Gamit ang Golang

Gumawa ng Golang file na may sumusunod na script na gumagawa ng database table na pinangalanang 'mga miyembro' sa loob ng 'test.db' database file. Ang Exec() na paraan ay ginagamit dito upang isagawa ang CREATE TABLE query na lumilikha ng talahanayan ng 'mga miyembro' na may anim na field at isang pangunahing key. Kung ang talahanayan ay matagumpay na nalikha sa database, isang mensahe ng tagumpay ay naka-print. Kung hindi, ang programa ay wawakasan.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong sqlite database
db , magkamali := sql . Bukas ( 'sqlite3' , 'test.db' )
//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
const tanong string = `
GUMAWA NG TALAAN KUNG HINDI MAY mga miyembro (
id INTEGER NOT NULL PRIMARY KEY,
pangalan CHAR(40) NOT NULL,
mtype CHAR(100) NOT NULL,
email CHAR(50),
address TEXT NOT NULL,
mobile CHAR(25) NOT NULL);`

_ , magkamali := db . Sinabi ni Exec ( tanong );

kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//I-print ang mensahe ng tagumpay
fmt . Println ( 'Matagumpay na nalikha ang talahanayan.' )
}

}
//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'create_table.go' na file:

$ go tumakbo create_table.go

Ang sumusunod na output ay nagpapakita na ang talahanayan ay matagumpay na nalikha sa database. Ang mensahe ng tagumpay, 'Matagumpay na nalikha ang talahanayan', ay naka-print sa terminal:

Maaari kang mag-log in sa SQLite upang suriin kung ang talahanayan ay nilikha o hindi sa database.

Patakbuhin ang sumusunod na command upang patakbuhin ang SQLite gamit ang 'test.db' database:

$ sqlite3 test.db

Patakbuhin ang '.tables' SQLite command mula sa SQLite command prompt upang suriin ang mga pangalan ng talahanayan ng database:

sqlite3 > .tables

Ang sumusunod na output ay nagpapakita na ang database ay naglalaman ng 'mga miyembro' na talahanayan na nilikha sa pamamagitan ng pagsasagawa ng Golang script:

Ipasok ang Mga Tala sa SQLite Table Gamit ang Golang

Maaaring ipasok ang maramihang mga tala sa talahanayan sa pamamagitan ng pagsasagawa ng INSERT query nang maraming beses o sa pamamagitan ng pagdaragdag ng maramihang mga halaga sa isang solong INSERT query. Gumawa ng Golang file na may sumusunod na script na naglalagay ng tatlong tala sa talahanayan ng 'mga miyembro' ng 'test.db' na database file gamit ang isang INSERT query. Ang Exec() na pamamaraan ay ginagamit dito upang isagawa ang INSERT query. Kung ang mga tala ay matagumpay na naipasok sa talahanayan, isang mensahe ng tagumpay ay naka-print. Kung hindi, ang programa ay wawakasan.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong database ng SQLite
db , magkamali := sql . Bukas ( 'sqlite3' , 'test.db' )
//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
const tanong string = `
INSERT INTO members (id, name, mtype, email, address, mobile)
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');`


//Isagawa ang query
_ , magkamali := db . Sinabi ni Exec ( tanong );

kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//I-print ang mensahe ng tagumpay
fmt . Println ( 'Matagumpay na naipasok ang mga tala.' )
}
}

//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'insert_table.go' na file:

$ go tumakbo insert_table.go

Ang sumusunod na output ay nagpapakita na ang mga tala ay matagumpay na naipasok sa talahanayan. Ang mensahe ng tagumpay, 'Matagumpay na naipasok ang mga tala', ay naka-print sa output:

Maaari kang mag-log in sa SQLite upang suriin kung matagumpay na naipasok ang tatlong tala o hindi sa talahanayan ng 'mga miyembro'.

Patakbuhin ang sumusunod na command upang patakbuhin ang SQLite gamit ang 'test.db' database:

$ sqlite3 test.db

Patakbuhin ang sumusunod na SELECT query upang basahin ang lahat ng nilalaman ng talahanayan ng 'mga miyembro':

sqlite3 > PUMILI * MULA sa mga miyembro ;

Ang sumusunod na output ay nagpapakita na ang talahanayan ng 'mga miyembro' ay naglalaman ng tatlong tala na ipinasok ng script ng Golang:

Basahin ang Data ng SQLite Table Gamit ang Golang

Gumawa ng Golang file na may sumusunod na script na nagbabasa ng mga talaan ng talahanayan ng 'mga miyembro'. Kailangan mong tukuyin ang mga variable sa Golang upang maimbak ang mga halaga na ibinalik mula sa SELECT query. Sa script na ito, limang field ang kinukuha mula sa talahanayan ng 'mga miyembro' gamit ang SELECT query. Kaya, limang variable ang tinukoy sa script upang mag-imbak ng mga halaga ng limang field ng talahanayan ng 'mga miyembro' kung saan ang halaga ng field na 'mtype' ay 'Silver'. Ang Query() method ay ginagamit dito para isagawa ang SELECT query. Susunod, ang 'para sa' loop ay ginagamit upang basahin ang set ng resulta na ibinalik ng SELECT query. Ang printf() function ay ginagamit upang i-print ang mga naka-format na halaga ng set ng resulta.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong database ng SQLite
db , magkamali := sql . Bukas ( 'sqlite3' , 'test.db' )

//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {

//Ipahayag ang mga variable upang iimbak ang mga halaga ng row
ay id int
ay pangalan string
ay mtype string
ay address string
ay mobile string
const tanong string = `PUMILI ng id, pangalan, mtype, address, mobile
MULA sa mga miyembro
WHERE mtype = 'Silver';`


//Isagawa ang query
mga hilera , magkamali := db . Tanong ( tanong );

kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {

//I-print ang mensahe ng tagumpay
fmt . Println ( 'Mga talaan ng lahat ng miyembrong pilak:' )
fmt . Println ( 'ID \t Pangalan \t \t Uri ng Miyembro \t Address \t \t Contact No' )
para sa mga hilera . Susunod () {
mga hilera . Scan ( &id , &pangalan , &mtype , &address , &mobile )
fmt . Printf ( '%d \t %s \t %s \t %s \t %s \n ' , id , pangalan , mtype , address , mobile )
}
}
}
//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'select_table.go' na file:

$ go tumakbo select_table.go

Dalawang tala ang umiiral sa talahanayan ng 'mga miyembro' na naglalaman ng 'Silver' sa field na 'mtype'. Ang sumusunod na output ay nagpapakita ng dalawang talaan ng talahanayan ng 'mga miyembro' na ibinalik ng SELECT query:

I-update ang Data ng SQLite Table Gamit ang Golang

Lumikha ng Golang file na may sumusunod na script na nagbabago sa halaga ng mobile field ng talahanayang 'mga miyembro' na naglalaman ng halaga ng id na 2. Ang Exec() na paraan ay ginagamit dito upang isagawa ang query sa UPDATE. Kung matagumpay na na-update ang talaan sa talahanayan, may ipi-print na mensahe ng tagumpay. Kung hindi, ang programa ay wawakasan.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong database ng SQLite
db , magkamali := sql . Bukas ( 'sqlite3' , 'test.db' )
//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
const tanong string = `
I-UPDATE ang mga miyembro SET mobile = '018563452390' WHERE id = 2;`

_ , magkamali := db . Sinabi ni Exec ( tanong );

kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//I-print ang mensahe ng tagumpay
fmt . Println ( 'Matagumpay na na-update ang record.' )
}
}
//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'update_table.go' na file:

$ go tumakbo update_table.go

Sa talahanayan ng 'mga miyembro', ang pangalawang hilera ay naglalaman ng halaga ng id na 2. Ipinapakita ng sumusunod na output na matagumpay na na-update ang talaan ng talahanayan. Ang mensahe ng tagumpay, 'Matagumpay na na-update ang record', ay naka-print sa terminal:

Maaari kang mag-log in sa SQLite upang suriin kung ang anumang talaan ng talahanayan ng mga miyembro ay na-update o hindi.

Patakbuhin ang sumusunod na command upang patakbuhin ang SQLite gamit ang 'test.db' database:

$ sqlite3 test.db

Patakbuhin ang sumusunod na SELECT query upang basahin ang lahat ng nilalaman ng talahanayan ng 'mga miyembro':

sqlite3 > PUMILI * MULA sa mga miyembro ;

Ang halaga ng mobile field ng 2 nd Ang talaan ng talahanayan ng mga miyembro ay '01994563423' bago isagawa ang script. Ang sumusunod na output ay nagpapakita na ang halaga ng mobile field ng 2 nd Ang talaan ng talahanayan ng mga miyembro ay binago sa '018563452390' pagkatapos isagawa ang script:

Tanggalin ang Data ng SQLite Table Gamit ang Golang

Gumawa ng Golang file na may sumusunod na script na nagtatanggal ng 3 rd talaan ng talahanayan ng 'mga miyembro' na naglalaman ng halaga ng id na 3. Ang Exec() na pamamaraan ay ginagamit dito upang isagawa ang DELETE na query. Kung ang tala ay matagumpay na natanggal mula sa talahanayan, isang mensahe ng tagumpay ay naka-print. Kung hindi, ang programa ay wawakasan.

pakete pangunahing

//I-import ang mga kinakailangang module
angkat (
'fmt'
'log'
'database/sql'
_ 'github.com/mattn/go-sqlite3'
)

func pangunahing () {

//Gumawa ng bagong database ng SQLite
db , magkamali := sql . Bukas ( 'sqlite3' , 'test.db' )
//Suriin kung may anumang error
kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//Tukuyin ang delete query
const tanong string = `DELETE MULA SA mga miyembro WHERE id = 3;`
//Isagawa ang query
_ , magkamali := db . Sinabi ni Exec ( tanong );

kung magkamali != wala {
//Idagdag ang mensahe ng error sa log
log . Nakamamatay ( magkamali )
} iba pa {
//I-print ang mensahe ng tagumpay
fmt . Println ( 'Matagumpay na natanggal ang record.' )
}
}
//Isara ang koneksyon sa database
db . Isara ()
}

Patakbuhin ang sumusunod na command upang isagawa ang 'delete_table.go' na file:

$ go tumakbo delete_table.go

Ang sumusunod na output ay nagpapakita na ang 3 rd Ang talaan ng talahanayan ng 'mga miyembro' ay matagumpay na natanggal. Ang mensahe ng tagumpay, 'Matagumpay na natanggal ang record', ay naka-print sa terminal:

Maaari kang mag-log in sa SQLite upang suriin kung ang anumang talaan ng talahanayan ng mga miyembro ay tinanggal o hindi.

Patakbuhin ang sumusunod na command upang patakbuhin ang SQLite gamit ang 'test.db' database:

$ sqlite3 test.db

Patakbuhin ang sumusunod na SELECT query upang basahin ang lahat ng nilalaman ng talahanayan ng 'mga miyembro':

sqlite3 > PUMILI * MULA sa mga miyembro ;

Ang sumusunod na output ay nagpapakita na ang halaga ng 3 rd Ang talaan ng talahanayan ng mga miyembro ay tinanggal pagkatapos isagawa ang script at ang iba pang dalawang talaan ay naka-print sa output:

Konklusyon

Parehong sikat ngayon ang SQLite at Golang para sa kanilang pagiging simple at magaan na mga tampok. Ang anumang simpleng database-based na application ay madaling maipatupad gamit ang mga tool na ito. Ang pangunahing bahagi ng anumang aplikasyon ay upang ipatupad ang operasyon ng CRUD. Ang mga paraan ng pagpapatupad ng CRUD operation gamit ang Golang script at SQLite database ay ipinaliwanag sa tutorial na ito gamit ang maraming Golang file. Kung ikaw ay isang bagong mag-aaral ng Go language at ang SQLite database, tutulungan ka ng tutorial na ito na matutunan ang mga ito mula sa basic.