go语言之路

mysql基本使用

mysql学习

环境准备:

所有软件: datagrip(可视化)或者终端操作(语句)

环境: Centos7 mysql5.7

username:mysql_nj_jay_com

password:6435426njnj

ip:47.95.1.229

port:3306

database:mysql_nj_jay_com

连接数据库

  • 终端连接

    mycli -umysql_nj_jay_com -h47.95.1.229 -p6435426njnj

    mycli是一个终端连接工具 可以自动补全

  • golang连接

    package main
    
    import (
    
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
      "os"
    "strings"
    )
    
    var (
    
    username = "mysql_nj_jay_com"
    
    password = "6435426njnj"
    
    ip = "47.95.1.229"
    
    port = "3306"
    
    database = "mysql_nj_jay_com"
    
    )
    
    func connect() (*sql.DB, error) {
    
    path := strings.Join([]string{username, ":", password,
        "@(", ip, ":", port, ")/", database}, "")
    
    db, err := sql.Open("mysql", path)
    
    if err != nil {
    
        return db, err
    
    }
    
    defer db.Close()
    
    if err = db.Ping(); err != nil {
    
        return db, err
    
    }
    
    return db, nil
    
    }
    
    func main() {
    
    //连接数据库
    _, err := connect()
    
    if err != nil {
    
        fmt.Println("连接失败")
    
          os.Exit(0)
    
    }
    fmt.Println("连接成功")
    }

mysql数据库常见操作

mysql数据类型

# 创建数据库
create database learnsql;
# 删除数据库
drop database learnsql;
# 使用golang
//只执行操作 查询的结果的话用其他的
db.Exec("sql语句")
# 使用数据库
use database;
# 创建数据表(建议使用datagrip完成)
 CREATE TABLE IF NOT EXISTS `runoob_tbl`( 
                     `runoob_id` INT UNSIGNED AUTO_INCREMENT, 
                     `runoob_title` VARCHAR(100) NOT NULL, 
                     `runoob_author` VARCHAR(40) NOT NULL, 
                     `submission_date` DATE, 
                     PRIMARY KEY ( `runoob_id` ) 
                  )ENGINE=InnoDB DEFAULT CHARSET=utf8; 

 # 删除数据表
 drop TABLE tablename;

 # 插入数据
INSERT INTO table_name ( field1, field2,...fieldN )
                       VALUES
                       ( value1, value2,...valueN );

# 查询数据
SELECT column_name,column_name
FROM table_name
[WHERE Clause]
[LIMIT N][ OFFSET M]
eg:
select id, name from test where id >=3 LIMIT 3 OFFSET 1;

//golang
func QueryTable(db *sql.DB) {
    QueryData := `SELECT *FROM test;`
    rows, err := db.Query(QueryData)
    if err != nil {
        fmt.Println(err)
    }
    for rows.Next() {
        var id int
        var name string
        var price float64
        if err := rows.Scan(&id, &name, &price); err != nil {
            fmt.Println(err)
        }
        fmt.Printf("%-2d\t%-10s\t%-5f\n", id, name, price)
    }
}

# WHERE语句的使用
=       !=      >        <        >=       <= 用来过滤数据的语句

# UPDATE更新
update test set name='dww' where id=5;  

#DELETE删除表中的数据
delete from test where id=5; 

# LIKE子句
SELECT field1, field2,...fieldN 
FROM table_name
WHERE field1 LIKE condition1 [AND [OR]] filed2 = 'somevalue'

condiction(匹配 % _ [] [^])

# UNION
用于连接两个以上的select语句的结果组合到一个结果集合中
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
UNION [ALL | DISTINCT]
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];

#排序
SELECT field1, field2,...fieldN FROM table_name1, table_name2...
ORDER BY field1 [ASC [DESC][默认 ASC]], [field2...] [ASC [DESC][默认 ASC]]

# 分组
GROUP BY 语句根据一个或多个列对结果集进行分组
在分组的列上我们可以使用 COUNT, SUM, AVG,等函数

# 正则表达式
用的时候查就行

# mysql事务
MYSQL 事务处理主要有两种方法:
1、用 BEGIN, ROLLBACK, COMMIT来实现
BEGIN 开始一个事务
ROLLBACK 事务回滚
COMMIT 事务确认

2、直接用 SET 来改变 MySQL 的自动提交模式:
SET AUTOCOMMIT=0 禁止自动提交
SET AUTOCOMMIT=1 开启自动提交

# alter
当我们需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令

# MySQL 索引
添加索引 提高检索速度

# 临时表
只在当前连接创建

# 复制表
完全的复制mysql的数据表

# 运算符和函数
用再查

总结

跟命令行有点类似

多用才熟悉

又到了迷茫的年纪

上一篇

如何规范编写技术文档?

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

个人微信公众号

we-tuiguang

qq交流群

群号:1046260719

微信扫一扫

微信扫一扫