Awesome Go

builq

CategoryDatabase
SubcategorySQL Query Builders
Stars0

Easily build SQL queries in Go

About builq

builq

build-img pkg-img reportcard-img coverage-img version-img

Easily build queries in Go.

Rationale

The simplest way to represent SQL query is a string. But the query arguments and their indexing ($1, $2 etc) require additional attention. This tiny library helps to build queries and handles parameter indexing.

Features

  • Simple and easy.
  • Safe and fast.
  • Tested.
  • Language-agnostic.
  • Dependency-free.

See docs or GUIDE.md for more details.

Install

Go version 1.19+

go get github.com/cristalhq/builq

Example

cols := builq.Columns{"foo, bar"}

q := builq.New()
q("SELECT %s FROM %s", cols, "users")
q("WHERE active IS TRUE")
q("AND user_id = %$ OR user = %$", 42, "root")

query, args, err := q.Build()
if err != nil {
	panic(err)
}

debug := q.DebugBuild()

fmt.Println("query:")
fmt.Println(query)
fmt.Println("\nargs:")
fmt.Println(args)
fmt.Println("\ndebug:")
fmt.Println(debug)

// query:
// SELECT foo, bar FROM users
// WHERE active IS TRUE
// AND user_id = $1 OR user = $2
//
// args:
// [42 root]
//
// debug:
// SELECT foo, bar FROM 'users'
// WHERE active IS TRUE
// AND user_id = 42 OR user = 'root'

See examples: example_test.go.

License

MIT License.

Frequently Asked Questions

What is builq?

builq is a Database library for the Go programming language. Easily build SQL queries in Go

How do I install builq?

Install builq with the Go module system using `go get cristalhq/builq`. Check the repository for the current installation instructions.

What category does builq belong to?

builq is listed under Database, specifically SQL Query Builders.

← Back to SQL Query Builders