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
Go语言之进阶篇mysql增 删 改 查的更多相关文章
- php5.4以上 mysqli 实例操作mysql 增,删,改,查
<?php //php5.4以上 mysqli 实例操作mysql header("Content-type:text/html;charset=utf8"); $conn ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- python基础中的四大天王-增-删-改-查
列表-list-[] 输入内存储存容器 发生改变通常直接变化,让我们看看下面列子 增---默认在最后添加 #append()--括号中可以是数字,可以是字符串,可以是元祖,可以是集合,可以是字典 #l ...
- Mysql基本操作语句 增-删-改-查
增 INSERT INTO 表名(属性名1,属性名2) VALUES(值1,值2) 删 DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子 ...
随机推荐
- leetcode 两个排序的中位数 python
两个排序数组的中位数 给定两个大小为 m 和 n 的有序数组 nums1 和 nums2 . 请找出这两个有序数组的中位数.要求算法的时间复杂度为 O(log (m+n)) . 你可以假设 n ...
- hdu 4336 概率dp
题意:有N(1<=N<=20)张卡片,每包中含有这些卡片的概率为p1,p2,````pN.每包至多一张卡片,可能没有卡片.求需要买多少包才能拿到所以的N张卡片,求次数的期望. 转移方程: ...
- Moment.js 一款JS时间封装库
链接地址:http://momentjs.cn/docs/#/displaying/difference/
- 利用最新的CentOS7.5,hadoop3.1,spark2.3.2搭建spark集群
1. 桥接模式,静态ip上外网:vi /etc/sysconfig/network-scripts/ifcfg-ens33 TYPE=EthernetPROXY_METHOD=noneBROWSER_ ...
- android依据区域高度切割文本问题
android字体显示涉及例如以下參数:1. 基准点是baseline:2. Ascent是baseline之上至字符最高处的距离:3. Descent是baseline之下至字符最低处的距离.4. ...
- LPC43xx SGPIO Camera interface design
AN11196: Camera interface design using SGPIO
- 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验
分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...
- Android ListView中按钮监听器设置的解决方案
在做安卓应用开发的时候很经常会用到ListView,并且每一个Item里面都会有按钮之类的需要进行事件监听的控件.在给按钮添加OnClickListener的时候,一开始很下意识的会想在ListVie ...
- 学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践
简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...
- bind,apply,call的区别
在Javascript中,bind, apply, call方法都可以显式绑定上下文this,这三者有何不同呢? bind只绑定this不马上执行 var person = { firstname: ...