Go語言之進階篇mysql增 刪 改 查


一、mysql操作基本語法

1、創建名稱nulige的數據庫 

CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

use nulige

2、建表,Id自增

create table user_info(
  	nid int not null auto_increment primary key,
    username varchar(20), 
    departname varchar(20), 
    create_time timestamp default "0000-00-00 00:00:00"
); 

3、往表中插入數據

INSERT INTO user_info (username,departname,create_time) VALUES ("nulige","行政部","2019-1-13 12:23:00");
INSERT INTO user_info (username,departname,create_time) VALUES ("jojo","財務部","2019-1-14 1:23:00");
INSERT INTO user_info (username,departname,create_time) VALUES ("huhui","銷售部","2019-1-15 2:23:00");

4、查詢表中內容

mysql> select * from user_info;
+-----+----------+------------+---------------------+
| nid | username | departname | create_time         |
+-----+----------+------------+---------------------+
|   1 | nulige   | 行政部   | 2019-01-13 12:23:00 |
|   2 | jojo      | 財務部    | 2019-01-14 01:23:00 |
|   3 | huhui    | 銷售部    | 2019-01-15 02:23:00 |
+-----+----------+------------+---------------------+
3 rows in set (0.00 sec) 

5、刪除數據庫

mysql> drop database nulige;
Query OK, 1 row affected (0.01 sec)

6、清空表中數據,保留表結構

mysql> delete from user_info;
Query OK, 5 rows affected (0.00 sec)

  

 二、mysql的增,刪,改,查

2.1、增  (備注:往表中插入一條數據)

package main

import (
	"database/sql"
	"fmt"

	//調用mysql初始化包
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
	if err != nil {
		panic(err)
	}

	//fmt.Println(db.Ping())  檢查是否連接成功數據庫
	stmt, err := db.Prepare("INSERT user_info SET username=?,departname=?,create_time=?")
	if err != nil {
		fmt.Println(err)
		return
	}
	res, err := stmt.Exec("eeee", "采購部", "2019-1-29")
	id, err := res.LastInsertId()
	if err != nil {
		panic(err)
	}

	fmt.Println(id)
}

執行結果:

2.2、刪

 示例:

package main

import (
	"database/sql"
	"fmt"

	//調用mysql初始化包
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
	if err != nil {
		panic(err)
	}

	stmt, err := db.Prepare("DELETE FROM user_info WHERE nid=?")
	check(err)

	res, err := stmt.Exec(5)
	check(err)

	num, err := res.RowsAffected()
	check(err)

	fmt.Println(num)
	stmt.Close()
}

func check(err error) {
	if err != nil {
		fmt.Println(err)
		panic(err)
	}
}

執行結果:

 

2.3、改(更新)

 原數據:

更新數據示例:

package main

import (
	"database/sql"
	"fmt"

	//調用mysql初始化包
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
	if err != nil {
		panic(err)
	}

	//fmt.Println(db.Ping())  檢查是否連接成功數據庫
	stmt, err := db.Prepare("update user_info SET username=? where nid=?")
	if err != nil {
		fmt.Println(err)
		return
	}
	res, err := stmt.Exec("dddd", 5)
	id, err := res.RowsAffected()
	if err != nil {
		panic(err)
	}

	fmt.Println(id)
}

執行結果:  把username:cccc,修改成dddd

 

2.4、查

示例 : 查id=? 的一條記錄

package main

import (
	"database/sql"
	"fmt"

	//調用mysql初始化包
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
	if err != nil {
		panic(err)
	}

	rows, err := db.Query("	SELECT * FROM user_info where nid=3")
	if err != nil {
		panic(err)
	}

	for rows.Next() {
		var nid int
		var username string
		var department string
		var create_time string
		err = rows.Scan(&nid, &username, &department, &create_time)
		fmt.Println(nid, username, department, create_time)
	}
}

  #執行結果:

3 huhui 銷售部 2019-01-15 02:23:00

  

 示例2:查看所有記錄

package main

import (
	"database/sql"
	"fmt"

	//調用mysql初始化包
	_ "github.com/go-sql-driver/mysql"
)

func main() {
	db, err := sql.Open("mysql", "root:qwe!23@tcp(127.0.0.1:3306)/nulige?charset=utf8")
	if err != nil {
		panic(err)
	}

	rows, err := db.Query("	SELECT * FROM user_info")
	if err != nil {
		panic(err)
	}

	for rows.Next() {
		var nid int
		var username string
		var department string
		var create_time string
		err = rows.Scan(&nid, &username, &department, &create_time)
		fmt.Println(nid, username, department, create_time)
	}
}

執行結果:

1 nulige 行政部 2019-01-13 12:23:00
2 jojo 財務部 2019-01-14 01:23:00
3 huhui 銷售部 2019-01-15 02:23:00
4 aaaa 銷售部 2019-01-15 02:23:00
5 dddd 銷售部 2019-01-15 02:23:00
6 eeee 采購部 2019-01-29 00:00:00

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM