MySQL 是一个基于结构化查询语言(SQL)的开源关系型数据库管理系统。作为一种关系型数据库,它将数据组织到一个或多个相互关联的表中。
数据库驱动:
数据库驱动实现了数据库连接的协议。我们可以将驱动比作一个适配器,它将通用接口连接到特定的数据库。
初始设置:
首先启动 MySQL 服务器,并使用以下命令安装 Go 的 MySQL 驱动。
go get -u github.com/go-sql-driver/mysql
创建数据库对象:
让我们使用 sql.Open 来创建一个数据库对象。注意,此时并没有与 MySQL 建立实质性的连接,它仅仅是创建了一个可供后续使用的数据库对象。
db, err := sql.Open("mysql", ":@tcp(127.0.0.1:3306)/")
如果您没有使用 MySQL 的默认端口,请将 3306 替换为相应的端口号。
Go
CODEBLOCK_0a17c3b0
输出:
!image图 1.1
执行数据库查询:
我们可以使用 INLINECODEd7524146 和 INLINECODE1854c072 来执行数据库查询。
1. 使用 SQL 查询和 Exec() 创建数据库表。
Go
CODEBLOCK_289ab6b5
输出:
2. 在 Query() 中使用 SQL 查询向数据库表插入一行数据。
Go
CODEBLOCK_d6cf5a20
输出:
3. 在 Query() 中使用 SQL 查询返回用户表中的所有行。
Go
“
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// 创建一个数据库对象,
// 用于后续与数据库建立连接。
db, err := sql.Open("mysql", "root:passwd@tcp(0.0.0.0:3306)/user")
// 处理可能出现的错误。
if err != nil {
panic(err)
}
// 这里使用 SQL 查询返回
// user 表中的所有数据。
result, err := db.Query("SELECT * FROM user")
// 处理错误
if err != nil {
panic(err)
}
// result 对象有一个名为 Next 的方法,
// 用于遍历所有返回的行。
for result.Next() {
var id int
va