问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

go语言中间怎样执行sql语句

发布网友 发布时间:2022-04-22 02:22

我来回答

2个回答

懂视网 时间:2022-04-09 11:34

main.go package main import ( "database/sql" "fmt" "log" "time" _ "github.com/denisenkom/go-mssqldb" ) func main() { var isdebug = true var server = "localhost" var port = 1433 var user = "sa" var password = "123456xx" var database = "MyTestDB" //连接字符串 connString := fmt.Sprintf("server=%s;port%d;database=%s;user id=%s;password=%s", server, port, database, user, password) if isdebug { fmt.Println(connString) } //建立连接 conn, err := sql.Open("mssql", connString) if err != nil { log.Fatal("Open Connection failed:", err.Error()) } defer conn.Close() //产生查询语句的Statement stmt, err := conn.Prepare(`select * from [account_region]`) if err != nil { log.Fatal("Prepare failed:", err.Error()) } defer stmt.Close() //通过Statement执行查询 rows, err := stmt.Query() if err != nil { log.Fatal("Query failed:", err.Error()) } //建立一个列数组 cols, err := rows.Columns() var colsdata = make([]interface{}, len(cols)) for i := 0; i < len(cols); i++ { colsdata[i] = new(interface{}) fmt.Print(cols[i]) fmt.Print(" ") } fmt.Println() //遍历每一行 for rows.Next() { rows.Scan(colsdata...) //将查到的数据写入到这行中 PrintRow(colsdata) //打印此行 } defer rows.Close() } //打印一行记录,传入一个行的所有列信息 func PrintRow(colsdata []interface{}) { for _, val := range colsdata { switch v := (*(val.(*interface{}))).(type) { case nil: fmt.Print("NULL") case bool: if v { fmt.Print("True") } else { fmt.Print("False") } case []byte: fmt.Print(string(v)) case time.Time: fmt.Print(v.Format("2016-01-02 15:05:05.999")) default: fmt.Print(v) } fmt.Print(" ") } fmt.Println() }

二、效果:

  

server=localhost;port1433;database=MyTestDB;user id=sa;password=123456xx
region_id provider_id region_name billing_region_name description 
1 5 us-east-1 US-EAST AWS US EAST Data Center 
2 5 us-west-2 US_WEST_OREGON AWS Oregon Data Center 
3 5 ap-southeast-1 ASIA_SIGN AWS Singapore Data Center 
4 5 ap-southeast-2 ASIA_SYDENY AWS Sydney Data Center 
5 5 ap-northeast-1 ASIA_TOKYO AWS Tokyo Data Center 
6 5 eu-central-1 EU_FRANKFURT AWS Frankfurt Data Center 
7 5 eu-west-1 EU_IRELAND AWS Europe Data Center 
8 5 us-west-1 US_WEST_CA AWS CA Data Center 
9 5 sa-east-1 SOUA_SAOP AWS Sao Paulo Data Center 
10 5 ap-northeast-2 ASIA_SEOUL AWS Seoul Data Center 
11 5 ap-south-1 ASIA_MUMBAI AWS Mumbai Data Center 
12 2 Central US US-CENTRAL Azure Center US Data Center 
13 2 North Central US US-NORTH-CENTRAL Azure North US Data Center 
14 2 East US US-EAST Azure East US Data Center 
15 2 South Central US US-SOUTH-CENTRAL Azure South US Data Center 
16 2 West US US-WEST Azure West US Data Center 
17 2 North Europe EUROPE-NORTH Azure North Europe Data Center 
18 2 West Europe EUROPE-WEST Azure North Europe Data Center 
19 2 East Asia ASIA-PACIFIC-EAST Azure East Aisa Data Center 
20 2 Southeast Asia ASIA-PACIFIC-SOUTHEAST Azure Singapore Data Center 
21 2 Japan East JAPAN-EAST Azure East Japan Data Center 
22 2 Japan West JAPAN-WEST Azure West Japan Data Center 
23 2 Brazil South BRAZIL-SOUTH Azure Sao Paulo Data Center 
24 2 Australia East AUSTRALIA-EAST Azure East Australia Data Center 
25 2 Australia Southeast AUSTRALIA-SOUTHEAST Azure Southeast Australia Data Center 
26 2 East US 2 US-EAST-2 Azure East US Data Center 2 
27 2 US Gov Virginia USGOV-VIRGINIA Azure US Virginia Government Data Center 
28 2 US Gov Iowa USGOV-IOWA Azure US Iowa Government Data Center 
29 2 Canada Central CANADA-CENTRAL Azure Central Canada 
30 2 Canada East CANADA-EAST Azure East Canada 
31 2 Germany Central GERMANY-CENTRAL Azure Central Germany 
32 2 Germany Northeast GERMANY-NORTHEAST Azure Northeast Germany 
33 2 Korea Central KOREA-CENTRAL Azure Central Korea 
34 3 China North CN-BEIJING Azure Mooncake Beijing Data Center 
35 3 China East CN-SHANGHAI Azure Mooncake Shanghai Data Center 
36 4 cn-hangzhou CN_HANGZHOU Aliyun Hangzhou Data Center 
37 4 cn-beijing CN_BEIJING Aliyun Beijing Data Center 
38 4 cn-shenzhen CN_SHENZHEN Aliyun Shenzhen Data Center 
39 4 cn-qingdao CN_QINGDAO Aliyun Qingdao Data Center 
40 4 cn-hongkong HONGKONG Aliyun Hong Kong Data Center 
41 4 us-silicon-valley US-Silicon_Valley Aliyun Silicon Valley Data Center 

 三、使用实体实现的方法:

// main.go
package main

import (
 "database/sql"
 "fmt"
 "log"

 _ "github.com/denisenkom/go-mssqldb"
)

type AccessRegion struct {
 region_id  int64
 provider_id  int64
 region_name  string
 sub_region_names string
 billing_region_name string
 description  string
}

func main() {
 var server = "localhost"
 var port = 1433
 var user = "sa"
 var password = "123456xxx"
 var database = "MyTestDB"

 //连接字符串
 connString := fmt.Sprintf("server=%s;port%d;database=%s;user id=%s;password=%s", server, port, database, user, password)

 //建立连接
 db, err := sql.Open("mssql", connString)
 if err != nil {
 log.Fatal("Open Connection failed:", err.Error())
 }
 defer db.Close()

 //通过连接对象执行查询
 rows, err := db.Query(`select * from [account_region]`)
 if err != nil {
 log.Fatal("Query failed:", err.Error())
 }
 defer rows.Close()

 var rowsData []*AccessRegion
 //遍历每一行
 for rows.Next() {
 var row = new(AccessRegion)
 rows.Scan(&row.region_id, &row.provider_id, &row.region_name, &row.billing_region_name, &row.description)
 rowsData = append(rowsData, row)
 }

 //打印数组
 for _, ar := range rowsData {
 fmt.Print(ar.region_id, "	", ar.provider_id, "	", ar.region_name, "	", ar.billing_region_name, "	", ar.description)
 fmt.Println()
 }
}

 

Go语言中查询SqlServer数据库

标签:

热心网友 时间:2022-04-09 08:42

Transact-SQL 参考

GO
用信号通知 Microsoft® SQL Server™ 实用工具一批 Transact-SQL 语句的结束。

语法
GO

注释
GO 不是 Transact-SQL 语句;而是可为 osql 和 isql 实用工具及 SQL Server 查询分析器识别的命令。

SQL Server 实用工具将 GO 解释为应将当前的 Transact-SQL 批处理语句发送给 SQL Server 的信号。当前批处理语句是自上一 GO 命令后输入的所有语句,若是第一条 GO 命令,则是从特殊会话或脚本的开始处到这条 GO 命令之间的所有语句。SQL 查询分析器和 osql 及 isql 命令提示实用工具执行 GO 命令的方式不同。有关更多信息,请参见 osql 实用工具、isql 实用工具和 SQL 查询分析器。

GO 命令和Transact-SQL 语句不可在同一行上。但在 GO 命令行中可包含注释。

用户必须遵照使用批处理的规则。例如,在批处理中的第一条语句后执行任何存储过程必须包含 EXECUTE 关键字。局部(用户定义)变量的作用域*在一个批处理中,不可在 GO 命令后引用。

USE pubs
GO
DECLARE @MyMsg VARCHAR(50)
SELECT @MyMsg = 'Hello, World.'
GO -- @MyMsg is not valid after this GO ends the batch.

-- Yields an error because @MyMsg not declared in this batch.
PRINT @MyMsg
GO

SELECT @@VERSION;
-- Yields an error: Must be EXEC sp_who if not first statement in
-- batch.
sp_who
GO

SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。

如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令。

权限
GO 是一个不需权限的实用工具命令。可以由任何用户执行。

示例
下面的示例创建两个批处理。第一个批处理只包含一条 USE pubs 语句,用于设置数据库上下文。剩下的语句使用了一个局部变量,因此所有的局部变量声明必须在一个批处理中。这一点可通过在最后一条引用此变量的语句之后才使用 GO 命令来做到。

USE pubs
GO
DECLARE @NmbrAuthors int
SELECT @NmbrAuthors = COUNT(*)
FROM authors
PRINT 'The number of authors as of ' +
CAST(GETDATE() AS char(20)) + ' is ' +
CAST(@NmbrAuthors AS char (10))
GO
在Go 中如何使用 database/sql 来操作数据库

使用database/sql,数据库操作包括创建连接(无需频繁Close,底层有连接池管理)、执行SQL(如*sql.DB.Exec和*sql.Stmt.Exec支持预处理提高性能)以及处理查询结果(通过*sql.Rows获取和处理数据)。它还支持事务处理,包括BeginTx、Commit和Rollback。对于NULL值和自定义字段类型,database/sql提供了sql....

Go 语言操作 MySQL 之 SQLX 包

创建用户结构体user,并利用全局的*sqlx.DB变量引用MySQL驱动包,设计如下。查询功能:获取单行数据采用Get函数实现,传入目的接收变量、SQL查询语句与参数值。查询多行数据使用Select函数,声明对应结构体数组接收映射。CRUD操作:sqlx库中,使用Exec函数完成插入、更新、删除等原生sql操作。参数绑定:库中提供Name...

GO语言(三十):访问关系型数据库(上)

1、在您的浏览器中,访问SQLDrivers wiki 页面以识别您可以使用的驱动程序。2、使用页面上的列表来识别您将使用的驱动程序。为了在本教程中访问 MySQL,您将使用 Go-MySQL-Driver。3、请注意驱动程序的包名称 - 此处为github.com/go-sql-driver/mysql.4、使用您的文本编辑器,创建一个用于编写 Go ...

Go语言操作MySQL

Go语言对数据库参数设置了动态配置选项,如通过SetMaxOpenConns和SetMaxIdleConns来管理连接池的最大开仓名额和闲置连接数,保障系统资源的高效利用。数据库操作中的CRUD(Create、Read、Update、Delete)流程对于MySQL同样适用。新建数据库、表或执行SQL查询是基础且经常使用的功能。预处理是提升SQL执行效率、...

go语言数据库连接池?

当您使用连接执行数据库任务(例如执行SQL语句或查询行)时,该连接被标记为正在使用,任务完成后,该连接被标记为空闲。 当您使用Go执行数据库操作时,它将首先检查池中是否有可用的空闲连接。如果有可用的连接,那么Go将重用这个现有连接,并在任务期间将其标记为正在使用。如果在您需要空闲连接时池中没有空闲连接,那么...

golang写游戏后端?

现阶段go语言的执行效率还是太低了。在底层编译器的优化方面做得和c++相比还是差了不少。go语言也是比较适合快速开发的专案比较合适 从2013年起,经朋友推荐开始用Golang编写游戏登陆伺服器,配合C++做第三方平台验证.到编写独立工具导表工具GitHub-davyxu/tabtoy:跨平台的高效能便捷电子表格汇出器.以及网路库GitHub-...

go语言gui库(go语言界面库)

3、请注意驱动程序的包名称-此处为github.com/go-sql-driver/mysql. 4、使用您的文本编辑器,创建一个用于编写Go代码的文件,并将该文件作为main.go保存在您之前创建的数据访问目录中。 5、进入main.go,粘贴以下代码导入驱动包。 在此代码中: (1)将您的代码添加到main包中,以便您可以独立执行它。 (2)导入MySQ...

gorm 垃圾么?

5. 数据操作流程:从db.Create到db.Delete,每个操作的执行路径和细节都精心设计,确保效率与一致性。6. 事务管理:在Gorm中,事务是透明的,用户只需提供一个闭包,Gorm会自动处理事务的开启、提交或回滚。结论通过本文,我们不仅了解了Gorm的使用方法,还深入理解了其底层架构。ORM的优雅设计让Go开发者...

go语言对gorm不固定条件查询封装

在写sql语句时,where的条件主要是 key=1 and key2=2 或者 key=1 or key2=2 这种形式[还有 and与or 混合]。认真分析会发现条件有 4部分 组成-- 字段名、操作符、查询值、与前一个条件的关系[and,or] ,这样就很容易实现了。下面就是一个说明,为了简化,其中会默认省略一些特征。启动项目...

小米开源数据库中间件Gaea实战

Gaea,作为一款MySQL数据库中间件,兼容MyCAT核心特性,提供读写分离、分库分表等功能。选择使用Go语言实现,考虑到Go语言在编写网络应用方面的易用性、可靠性,以及公司内部以Go语言生态为主的技术体系。Gaea实现MySQL协议,将自己伪装成一个MySQL服务器,应用程序通过MySQL客户端访问Gaea,向Gaea发起SQL请求...

sql语句中in怎么使用 sql语言三大类语句 sql语句的go sql语句模糊查询like sqlserver语句大全 基本sql语句有哪些 使用sql语句 sql 语句大全 sql语句汇总
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
各位接本的师哥师姐能否将广播电视编导的书买给小妹我啊! QQ601985932... 有没有哪种路由器可以不插网线,不插电脑上(区别于插电脑上的随身WIFI... 到出版社工作要选择哪个方向的传媒专业 有没有不需要网线,只要有电就有网的路由器? 设置路由器是把路由器和电脑连接,不用插网线 影视高考基本文体写作作者简介 没有没不用电源的无线路由器(可以是迷你的)不需要电源哦,包括内置电 ... 我是一名高一学生,想学影视编导专业,但是不知道考前需要怎么学习专业知 ... 美图手机m4电池发热后开不了机 有出现美图m4温度过高,自动关机?? 美图手机绘图图形密码忘记了怎么办? go语言开发的程序能直接在windows平台运行吗 美图v4手机怎么设置屏保密码 美图手机想换锁屏密码但是突然忘了原来的密码怎么办? 大家帮我看看这个go语言程序运行怎么不出结果啊? 如何使用go语言来运行PHP go语言命令行打印清除 美图手机想换锁屏密码但是突然忘了原来的密码 go是运行在虚拟机里面的吗?还是二进制代码,直接... 美图手机锁屏密码忘了,请问可以找回锁屏密码吗?... 如何运行一个golang程序为守护进程 美图m4手机屏锁密码忘了怎么办 go 语言 的 文件 怎么打开 如何让go编译的程序后台运行 美图手机怎么设置锁屏密码 猫咪生病了,嘴里流一些粘稠的液体。怎么办? 猫咪的嘴里一直淌出液体而且很臭为什么怎么办 猫咪嘴巴臭怎么解决 猫咪嘴里烂了特别臭吃什么药 猫猫嘴里恶臭是怎么回事 怎样在window系统中,编译出.能在Linux系统中运行... 求教go如何执行完命令行程序后不退出控制台 如何使用Go语言实现远程执行命令 go语言程序 运行在windows上吗 2022年河南教师资格证退费系统何时开通 濮阳市2022年12日的教师资格证考试延期了吗 河南潢川教资2022上半年考试地点 扒下来榴莲生的怎么办 如何使用笔记本触摸板? 笔记本触摸板的所有功能?怎么使用? 笔记本电脑怎么使用触摸板 笔记本电脑的触摸板怎么使用方法 笔记本电脑鼠标触摸板怎么使用技巧 夏天空调房需要加湿器吗?介绍大全 最近总看到说,夏天在空调房内要有加湿器,虽然不... 开空调的同时可以开加湿器吗? 开空调要用加湿器吗 华为SLA _TL 10是什么型号手机 空调屋里干燥用加湿器好吗 在空调房里使用加湿器好吗?