首页 > 数据库 >golang.mysql

golang.mysql

时间:2022-12-15 10:01:34浏览次数:43  
标签:00 err 23 fmt sql golang mysql

一、mysql操作基本语法

1、创建名称nulige的数据库 


​CREATE DATABASE nulige DEFAULT CHARSET utf8 COLLATE utf8_general_ci;<br><br>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)​

​}​


执行结果:

golang.mysql_mysql

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)​

​}​

​}​


执行结果:

golang.mysql_github_02

 

2.3、改(更新)

 原数据:

golang.mysql_github_03

更新数据示例:


​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

golang.mysql_github_04

 

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​



标签:00,err,23,fmt,sql,golang,mysql
From: https://blog.51cto.com/u_13912516/5938643

相关文章

  • MySQL锁
       分类 MySQL中的锁,按照锁的粒度分,分为以下三类: 全局锁:锁定数据库中的所有表。表级锁:每次操作锁住整张表。行级锁:每次操作锁住对应的行数据。全局锁全局......
  • MySQL
    MySQL临时表MySQL临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。临时表在MySQL3.23版本中添......
  • mysql命令行操作
    1、展示数据库2、进入数据库、查看数据库中的表......
  • 秒懂 Golang 中的 条件变量(sync.Cond)
    本篇文章面向的读者:已经基本掌握Go中的协程(goroutine),通道(channel),互斥锁(sync.Mutex),读写锁(sync.RWMutex)这些知识。如果对这些还不太懂,可以先回去把这几个知识点解......
  • Docker 中应用(tomcat 、nginx、mysql、redis)部署
    1.tomcat在docker安装2.nginx在docker安装3.mysql在docker安装4.redis在docker中文件安装......
  • EMQx 通过mysql实现 acl
    Acl访问控制说明:按照道理来说 mysql实现acl和mysql的鉴权,要在一块的说明的,但是在由于在理解鉴权的时候对acl的理解不是那么深刻,所以只能分开来验证和说明了。虽然EMQ已......
  • gateway动态路由实现 mysql+redis 实现
    前言大家都知道咱们在通常是使用配置文件来实现配置,但是这样就有一个弊端,就是每次修改的时候都要去重启来实现,并且管理起来非常麻烦,所有就有了这种实现方式。现在的实现方式......
  • spring boot 实现Mysql数据脚本导出和数据库脚本的导入
    前言在开发过程中这样一个需求,有些数据需要从数据库导出,然后导入到另外的数据库中。数据导出@SneakyThrowspublicStringexport(){//获取数据库连接对象......
  • mysql 实现加密搜索
    前言:我们经常遇到由于安全考虑,数据库中一些用户信息比如手机号、身份证号等信息加密保存,但又有一些需要查询匹配的操作,比如手机号模糊匹配的场景,此时就无法直接使用模糊查询......
  • MYSQL 3 DAY
    目录MySQLday031、约束1.1、唯一性约束(unique)1.2、主键约束1.3、外键约束2、存储引擎?(整个内容属于了解内容)2.1、完整的建表语句2.2、什么是存储引擎呢?2.3、查看当前mysql......