一.cmd使用数据库

1.mysql -uroot -p

2.输入密码 root

3.创建一个数据库 :create database go_test

4.使用改数据库:use go_test

5.创建一个表并插入一些数据:

CREATE TABLE user (id INTEGER PRIMARY KEY AUTO_INCREMENT,username VARCHAR (20),PASSWORD VARCHAR (20)
)INSERT INTO user_tbl (username, PASSWORD) VALUES ("tom", "123456")
INSERT INTO user_tbl (username, PASSWORD) VALUES ("Bob", "999999")

6.查看是否成功:select * from user;

成功 

二.Golang 数据库的基本操作

package mainimport ("database/sql""fmt""time"_ "github.com/go-sql-driver/mysql"
)var db *sql.DBfunc initDB() (err error) {dsn := "root:root@tcp(127.0.0.1:3306)/go_test?charset=utf8mb4&parseTime=True"db, err = sql.Open("mysql", dsn)fmt.Printf("db: %v\n", db)if err != nil {fmt.Printf("err: %v\n", err)return err}// 尝试去链接err2 := db.Ping()if err2 != nil {fmt.Printf("err2: %v\n", err2)return err2}return nil}func Test() {d, err := sql.Open("mysql", "root:root@/go_test")if err != nil {fmt.Printf("err: %v\n", err)}d.SetConnMaxLifetime(time.Minute * 3)d.SetMaxOpenConns(10)d.SetMaxIdleConns(10)fmt.Printf("d: %v\n", d)
}// 尝试连接
func getCon() {err := initDB()if err != nil {fmt.Printf("err: %v\n", err)} else {fmt.Printf("\"连接成功\": %v\n", "连接成功")}
}// 插入数据
func insertData() {// SQL语句sqlStr := `insert into user(username,password) vaues ("Bob","999999")`ret, err := db.Exec(sqlStr)if err != nil {fmt.Printf("insert failed, err:%v\n", err)return}// 新插入数据的idstheID, err := ret.LastInsertId() if err != nil {fmt.Printf("get lastinsert ID failed, err:%v\n", err)return}fmt.Printf("insert success, the id is %d.\n", theID)
}// 查询一条用户数据
func queryRowDemo() {// 查询的SQL 语句sqlStr := "select username, password from user where id=?"// 确保QueryRow之后调用Scan方法,否则持有的数据库链接不会被释放var username, password stringerr := db.QueryRow(sqlStr, 1).Scan(&username,&password)if err != nil {fmt.Printf("scan failed, err:%v\n", err)return}fmt.Printf("username:%s password:%s\n",username, password)
}
// 删除语句
func delData()  {sql := "delete from user where username =?"ret, err := db.Exec(sql, "tom")if err != nil {fmt.Printf("删除失败, err:%v\n", err)return}rows, err := ret.RowsAffected()if err != nil {fmt.Printf("删除行失败, err:%v\n", err)return}fmt.Printf("删除成功, 删除的行数: %d.\n", rows)
}// 更新语句
func updateData()  {sql := "update user set username=?, password=? where username=?"ret, err := db.Exec(sql, "tom", "123456", "Alice")if err != nil {fmt.Printf("更新失败, err:%v\n", err)return}rows, err := ret.RowsAffected()if err != nil {fmt.Printf("更新行失败, err:%v\n", err)return}fmt.Printf("更新成功, 更新的行数: %d.\n", rows)
}
func main() {// Test()getCon()// insertData()// queryRowDemo()  // delData()updateData()
}

Golang 数据库操作相关推荐

  1. golang:闲谈数据库操作

    今天简单看了下database/sql包,稍微总结下关于golang的数据库操作的一些东西,如有错误的地方,欢迎指出. import ( "database/sql" _ &quo ...

  2. golang 数据库 连接与连接池

    database/sql database/sql是golang的标准库之一,它提供了一系列接口方法,用于访问关系数据库.它并不会提供数据库特有的方法,那些特有的方法交给数据库驱动去实现. datab ...

  3. 使用Golang驱动操作MongoDB

    微信公众号:运维开发故事,作者:wanger 上篇文章我们介绍了使用pymongo对MongoDB进行CRUD,本篇将介绍使用Golang驱动操作MongoDB 安装MongoDB驱动程序 mkdr ...

  4. Golang 数据库 boltDB

    Golang 数据库 boltDB 文章目录 Golang 数据库 boltDB 一.boltDB 介绍 1. boltDB 简介 2. boltDB 特点 二.boltDB 安装 1. 安装 Bol ...

  5. 【gin学习笔记】07初识GROM使用GORM进行数据库操作

    本文学习视频https://www.bilibili.com/video/BV1Bz411v78U/?spm_id_from=333.788 gorm中文官方文档 https://jasperxu.c ...

  6. Python的数据库操作(Sqlalchemy)

    ORM 全称 Object Relational Mapping, 翻译过来叫对象关系映射.简单的说,ORM 将数据库中的表与面向对象语言中的类建立了一种对应关系.这样,我们要操作数据库,数据库中的表 ...

  7. 便捷,轻巧的Groovy数据库操作

    本文主要介绍Groovy对数据的CRUD操作,熟悉groovy.sql包,测试使用的数据库是H2. 1.数据库连接配置 //数据库连接配置 def db = [url:'jdbc:h2:mem:gro ...

  8. Django模型之数据库操作-查询

    六.数据库操作-查询 6.1基础条件查询 1 基本查询 get查询单一结果,如果不存在会抛出模型类.DoesNotExist异常. all查询多个结果.[返回的所有结果是列表] count查询结果数量 ...

  9. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

最新文章

  1. 如何在Ubuntu中安装java jdk
  2. 考前多熟记的知识点(1)~(3)《信息系统项目管理师软考辅导》
  3. libevent之Reactor模式详解
  4. 可以公开访问的 SAP gateway demo system ES5/002
  5. 【转】Unix环境高级程序设计入门----文件系统的相关编程(上)
  6. 08面向对象编程风格
  7. win7系统删除多余的系统服务操作
  8. linux网络测速qerf,www.cpg.com.ph
  9. 鸡兔同笼问题c语言编程,鸡兔同笼问题C语言程序编写
  10. 微信分享等配置,微信授权失败讲解
  11. IDEA怎么换背景颜色
  12. 将linux操作系统迁移到另一个固态硬盘上
  13. SVG公众号排版 | 快速解决视频号美化出现“点赞信息”
  14. win10 无线鼠标卡顿,跳帧
  15. LeetCode 264. 丑数 II--动态规划
  16. opnet学习001,入门的好例子
  17. 【新国产化】采用开源技术的云计算厂商,能算国产化品牌吗?
  18. 通过设置svn服务端钩子强制提交注释和限制指定类型文件提交
  19. 【优化求解】基于遗传算法求解列车交路方案matlab代码
  20. TextField 与FTE的使用情景

热门文章

  1. Java源码-弹球小游戏(Pin Ball)
  2. 构建docker镜像并上传到阿里云仓库
  3. 自从拿下我人生中第一个Offer——网易游戏!腾讯,字节,阿里,小米,京东大厂Offer拿到手软!
  4. HBase学习笔记(二)——LSM树(Log-Structured Merge-Tree)是什么?
  5. 想跳槽转行升职加薪?关于年后求职的8个建议
  6. 递归计算(偶数求和)
  7. python自动化下载_selenium+python自动化98--文件下载弹窗处理(PyKeyboard)
  8. VSCode配置C/C++环境
  9. windows操作系统 uefi启动
  10. 如何在游戏中设计等构建筑?