zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    hdu 4813(2013长春现场赛A题)
    NEFU 628 Garden visiting (数论)
    FZU 2020 组合 (Lucas定理)
    HDU 3304 Interesting Yang Yui Triangle (Lucas定理)
    HDU 3037 Saving Beans (数论,Lucas定理)
    UVa 1161 Objective: Berlin (最大流)
    Vijos P1951 玄武密码 (AC自动机)
    LA 4670 Dominating Patterns (AC自动机)
    HDU 2340 Obfuscation (暴力)
    HDU 5510 Bazinga (KMP)
  • 原文地址:https://www.cnblogs.com/igoodful/p/12804833.html
Copyright © 2011-2022 走看看