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

执行结果:

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

  #执行结果:

1 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 2 3 4 5 6 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