go语言操纵数据库增删改 go语言连接mysql数据库-成都快上网建站

go语言操纵数据库增删改 go语言连接mysql数据库

golang能否监听Mysql数据库的表是否有增删改操作

defer rows.Close()

从网站建设到定制行业解决方案,为提供网站建设、成都网站建设服务体系,各种行业企业客户提供网站建设解决方案,助力业务快速发展。成都创新互联公司将不断加快创新步伐,提供优质的建站服务。

var id int //定义一个id 变量

var lvs string //定义lvs 变量

for rows.Next() { //开始循环

rerr := rows.Scan(id, lvs) //数据指针,会把得到的数据,往刚才id 和 lvs引入

if rerr == nil {

fmt.Println("id号是",strconv.Itoa(id) + " lvs lvs是"+ lvs) //输出来而已,看看

}

}

insert_sql := "INSERT INTO xiaorui(lvs) VALUES(?)"

_, e4 := db.Exec(insert_sql,"nima")

fmt.Println(e4)

db.Close() //关闭数据库

}

go语言postgresql数据库驱动怎么用

PostgreSQL和MySQL比较,它更加庞大一点,因为它是用来替代Oracle而设计的。所以在企业应用中采用PostgreSQL是一个明智的选择。

现在MySQL被Oracle收购之后,有传闻Oracle正在逐步的封闭MySQL,,鉴于此,将来我们也许会选择PostgreSQL而不是MySQL作为项目的后端数据库。

1、驱动

Go实现的支持PostgreSQL的驱动也很多,因为国外很多人在开发中使用了这个数据库。

支持database/sql驱动,纯Go写的

支持database/sql驱动,纯Go写的

支持database/sql驱动,纯Go写的

在下面的示例中我采用了第一个驱动,因为它目前使用的人最多,在github上也比较活跃。

2、实例代码

数据库建表语句:

复制代码

CREATE TABLE userinfo

(

uid serial NOT NULL,

username character varying(100) NOT NULL,

departname character varying(500) NOT NULL,

Created date,

CONSTRAINT userinfo_pkey PRIMARY KEY (uid)

)

WITH (OIDS=FALSE);

CREATE TABLE userdeatail

(

uid integer,

intro character varying(100),

profile character varying(100)

)

WITH(OIDS=FALSE);

复制代码

看下面这个Go如何操作数据库表数据:增删改查

复制代码

package main

import (

"database/sql"

"fmt"

_ "github点抗 /bmizerany/pq"

)

func main() {

db, err := sql.Open("postgres", "user=astaxie password=astaxie dbname=test sslmode=disable")

checkErr(err)

//插入数据

stmt, err := db.Prepare("INSERT INTO userinfo(username,departname,created) VALUES($1,$2,$3) RETURNING uid")

checkErr(err)

res, err := stmt.Exec("astaxie", "研发部门", "2012-12-09")

checkErr(err)

//pg不支持这个函数,因为他没有类似MySQL的自增ID

id, err := res.LastInsertId()

checkErr(err)

fmt.Println(id)

//更新数据

stmt, err = db.Prepare("update userinfo set username=$1 where uid=$2")

checkErr(err)

res, err = stmt.Exec("astaxieupdate", 1)

checkErr(err)

affect, err := res.RowsAffected()

checkErr(err)

fmt.Println(affect)

//查询数据

rows, err := db.Query("SELECT * FROM userinfo")

checkErr(err)

for rows.Next() {

var uid int

var username string

var department string

var created string

err = rows.Scan(uid, username, department, created)

checkErr(err)

fmt.Println(uid)

fmt.Println(username)

fmt.Println(department)

fmt.Println(created)

}

//删除数据

stmt, err = db.Prepare("delete from userinfo where uid=$1")

checkErr(err)

res, err = stmt.Exec(1)

checkErr(err)

affect, err = res.RowsAffected()

checkErr(err)

fmt.Println(affect)

db.Close()

}

func checkErr(err error) {

if err != nil {

panic(err)

}

}

复制代码

从上面的代码我们可以看到,PostgreSQL是通过$1,$2这种方式来指定要传递的参数,而不是MySQL中的?,另外在sql.Open中的dsn信息的格式也与MySQL的驱动中的dsn格式不一样,所以在使用时请注意它们的差异。

还有pg不支持LastInsertId函数,因为PostgreSQL内部没有实现类似MySQL的自增ID返回,其他的代码几乎是一模一样

数据库增删改查的基本命令

以下是总结的mysql的常用语句,欢迎指正和补充~

一、创建库,删除库,使用库

1.创建数据库:create database 库名;

2.删除数据库:drop database 库名;

3.使用数据库:use 库名;

二、创建数据表

1.创建表语句:create table 表名(字段名1 字段类型 字段约束,字段2 字段类型 字段约束...);

2.创建与现有表一样字段的新表:create table 表名 like 已有表名;

3.将查询结果创建新表:create table 表名 select * from 现有表 where...(查询语句);

三、查看表结构,查看建表语句,删除表

1.查看表结构:desc 表名;

2.查看建表语句:show create table 表名;

3.删除表:drop table 表名;

四、修改表结构

1.对数据表重命名:alter table 表名 rename 新表名;

2.增加字段:alter table 表名 add 字段名 字段类型 字段约束; (PS:可用first/after函数调整字段位置)

3.删除字段:alter table 表名 drop 字段名;

4.修改字段类型及约束:alter table 表名 modify 字段名 新类型 新约束;(PS:如不加新约束,会将建表时的约束清空,主键、外键、唯一约束除外)

5.修改字段名称:alter table 表名 change 字段名 新字段名 新字段类型 新约束条件;

6.修改数据库引擎:alter table 表名 engine=;(PS:主要有InnoDB和MyISAM,InnoDB对经常修改表数据友好,MyISAM对经常查询表友好)

7.增加主键:alter table 表名 add primary key(字段名);

8.删除主键:alter table 表名 drop primary key;

9.增加外键:alter table 表名 add constraint 外键名 foreign kek(字段名) references 主表(主键);

10.删除外键:alter table 表名 drop foreign key 外键名;

11.删除唯一约束:alter table 表名 drop index 字段名;

12.设置自动增长的初始位置:alter table 表名 auto_increment=n;

五、向表中插入数据

1.向表指定字段插入多条数据:insert into 表名(字段1,字段2...) values(数据1,数据2...),(数据1,数据2...),(数据1,数据2...),(数据1,数据2...);

2.将查询结果插入表:insert into 表名 select 字段名 from 表名(查询语句);

3.加载外部数据到表:Load data local infile ‘数据路径’Into table 表名 Fields terminated by ‘分隔符’Ignored 1 lines;

六、更新表数据、删除表数据

1.更改满足条件的字段数据:update 表名 set 字段计算1,字段计算2... where 条件;

2.删除满足条件的数据:delele from 表名 where 条件;

3.删除所有数据:方式一:delete from 表名; 方式二:truncate table 表名; 方式一会逐条进行删除,速度较慢,方式二直接删除,速度快;另外对自增字段,方式一不能重置自增字段的初始位置,方式二可以重置自增字段的其实位置;


名称栏目:go语言操纵数据库增删改 go语言连接mysql数据库
本文链接:http://kswjz.com/article/ddsicgh.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流