SQL
SQL helps you build SQL literal with
SQL Interpolation.
For example:
try dbQueue.write { db in
    let name: String = ...
    let id: Int64 = ...
    let query: SQL = "UPDATE player SET name = \(name) WHERE id = \(id)"
    try db.execute(literal: query)
}
          - 
                  
                  
Creates an
SQLliteral from a plain SQL string, and eventual arguments.For example:
let query = SQL( sql: "UPDATE player SET name = ? WHERE id = ?", arguments: [name, id]) - 
                  
                  
Creates an
SQLliteral from an SQL expression.For example:
let columnLiteral = SQL(Column("username")) let suffixLiteral = SQL("@example.com".databaseValue) let emailLiteral = [columnLiteral, suffixLiteral].joined(separator: " || ") let request = User.select(emailLiteral.sqlExpression) let emails = try String.fetchAll(db, request) - 
                  
                  
Returns true if this literal generates an empty SQL string
 - 
                  
                  
Turn a
SQLliteral into raw SQL and arguments. - 
                  
                  
Returns the
SQLliteral produced by the concatenation of two literals.let name = "O'Brien" let selection: SQL = "SELECT * FROM player " let condition: SQL = "WHERE name = \(name)" let query = selection + condition - 
                  
                  
Appends an
SQLliteral to the receiver.let name = "O'Brien" var query: SQL = "SELECT * FROM player " query += "WHERE name = \(name)" - 
                  
                  
Appends an
SQLliteral to the receiver.let name = "O'Brien" var query: SQL = "SELECT * FROM player " query.append(literal: "WHERE name = \(name)") - 
                  
                  
Appends a plain SQL string to the receiver, and eventual arguments.
let name = "O'Brien" var query: SQL = "SELECT * FROM player " query.append(sql: "WHERE name = ?", arguments: [name]) - 
                  
                  
Creates a literal SQL expression.
Use this property when you need an explicit
SQLExpression. For example:func date(_ value: some SQLExpressible) -> SQLExpression { SQL("DATE(\(value))").sqlExpression } // SELECT * FROM "player" WHERE DATE("createdAt") = '2020-01-23' let createdAt = Column("createdAt") let request = Player.filter(date(createdAt) == "2020-01-23") - 
                  
                  
Creates a literal SQL expression.
Use this property when you need an explicit
SQLSelection. For example:// SELECT firstName AS givenName, lastName AS familyName FROM player let selection = SQL("firstName AS givenName, lastName AS familyName").sqlSelection let request = Player.select(selection) - 
                  
                  
Creates a literal SQL ordering.
Use this property when you need an explicit
SQLOrdering. For example:// SELECT * FROM player ORDER BY name DESC let ordering = SQL("name DESC").sqlOrdering let request = Player.order(ordering) 
- 
                  
                  
:nodoc
 
View on GitHub
Install in Dash
        SQL Structure Reference