Giter Club home page Giter Club logo

spannerbuilder's Introduction

spannerbuilder

spanner sql builder for select statements

supported methods

  • Select
    • Syntax: .Select(statement, col1, col2, ...)
    • .Select("field_name") // special case, same as .Select("field_name", "field_name")
    • .Select("DISTINCT field_name", "field_name")
    • .Select("COUNT(*)", "field_name")
    • .Select("field_name1, field_name2", "field_name1", "field_name2")
    • .Select("field_name1").Select("field_name2") // only field_name2 will be selected
  • Join
    • .Join("table_name USING(field_name)")
    • .Join("table_name USING(field_name)", "LEFT OUTER")
    • .Join("table_name USING(field_name)", "RIGHT", "OUTER")
    • .Join("table_name USING(field_name)").Join("table_name USING(field_name)")
    • .Join("table_name1@{FORCE_INDEX=index_name} ON table_name1.field_name = table_name2.field_name")
  • Index
    • .Index("index_name")
  • OrderBy
    • .OrderBy("field_name")
    • .OrderBy("field_name DESC")
  • Where
    • .Where("field_name <op> ?", varName)
    • .Where("field_name <op> @field_name", map[string]interface{}{"field_name": verName})
  • GroupBy
    • .Select("Sum(field_name1), field_name2", "field_name1", "field_name2"). GroupBy("group_by_expression")
  • Having (with GroupBy, Select)
    • .Select("Sum(field_name1), field_name2", "field_name1", "field_name2"). GroupBy("group_by_expression").Having("SUM(field_name1) > 0")
    • .Select("Sum(field_name1), field_name2", "field_name1", "field_name2"). GroupBy("group_by_expression").Having("SUM(field_name1) > ?", 1)
    • .Select("Sum(field_name1), field_name2", "field_name1", "field_name2"). GroupBy("group_by_expression").Having("SUM(field_name1) > @param0", map[string]interface{}{"param0": 1})
    • Having (with GroupBy, Select, Where)
      • .Select("Sum(field_name1), field_name2", "field_name1", "field_name2"). Where("field_name2 == ?", "something"). GroupBy("group_by_expression").Having("SUM(field_name1) > @param0", map[string]interface{}{"param0": 1})
  • Limit
    • .Limit(20)
  • Offset (with Limit)
    • .Limit(20).Offset(10)
  • From
    • .From("table_name")
    • .From("table_name@{FORCE_INDEX=index_name}")
  • TableSample
    • .TableSample("RESERVOIR (100 ROWS)"),
    • .TableSample("BERNOULLI (0.1 PERCENT)")
  • Statement
    • .Statement("SELECT * FROM users WHERE user_id = ?", "test")
    • .Statement("SELECT * FROM users WHERE user_id = '{0}'", "test")
    • .Statement("SELECT * FROM users WHERE user_id IN ({0}, {1})", 1, 2)
    • .Statement("SELECT * FROM users WHERE user_id = @userId", map[string]interface{}{"userId": "test"})
    • .Statement("SELECT * FROM users WHERE user_id = '{userId}'", map[string]interface{}{"userId": "test"})

SQL Logging

  • set DB_DEBUG=1 to output SQL Log

spannerbuilder's People

Contributors

s-you avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.