рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреА рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдВрдкрддреНрддрд┐ рд╣реИред рдХреЗрд╡рд▓ рднрд╛рд╡реЛрдВ рдХреЗ рд╕рдВрдпреЛрдЬрди рд╕реЗ, рдЖрдк рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреБрдЫ рднрд╛рд╖рд╛рдПрдБ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЛрдЯрд▓рд┐рди рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдРрд╕реА рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИред
рдмреБрдирд┐рдпрд╛рджреА рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдФрд░ рдереЛрдбрд╝реА рдЪреАрдиреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдХреЛрдЯрд▓рд┐рди рд╕рд┐рдВрдЯреИрдХреНрд╕ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдХрд░реАрдм рд╕реЗ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рдЕрдзреАрд░ рдХреЗ рд▓рд┐рдП GitHub рд▓рд┐рдВрдХ
рд╣рдорд╛рд░рд╛ рд▓рдХреНрд╖реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЛ рд╕рдВрдХрд▓рди рдЪрд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдмрд╕реЗрдЯ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рд╣реИред рдХреЛрдЯрд▓рд┐рди, рдПрдХ рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЧрдИ рднрд╛рд╖рд╛ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рд╣рдореЗрдВ SQL рдХреНрд╡реЗрд░реА рдХреА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рдЕрдорд╛рдиреНрдп рднрд╛рд╡реЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧреАред рдПрдХ рдмреЛрдирд╕ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдореЗрдВ рдЕрдиреБрд░реЛрдз рд▓рд┐рдЦрдиреЗ рдореЗрдВ IDE рд╕реЗ рдЕрдзрд┐рдХ рдЯрд╛рдЗрдкреЛрд╕ рд╕реБрд░рдХреНрд╖рд╛ рдорд┐рд▓реЗрдЧреА рдФрд░ рдорджрдж рдорд┐рд▓реЗрдЧреАред SQL рджреЛрд╖реЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╕рдорд╕реНрдпрд╛ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рдВрднрд╡ рд╣реИред
рдпрд╣ рд▓реЗрдЦ рдЖрдкрдХреЛ рдХреЛрдЯрд▓рд┐рди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдЧрд╛, рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдЯрд▓рд┐рди рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдореЗрдВ рдПрд╕рдХреНрдпреВрдПрд▓ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЗрдирд╕рд╛рдЗрдЯреНрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓рддреЗ рд╣реИрдВред
рд╕рд┐рджреНрдзрд╛рдВрдд рдХреА рдмрд┐рдЯ
SQL рд╕реНрдЯреНрд░рдХреНрдЪрд░реНрдб рдХреНрд╡реЗрд░реА рд▓реИрдВрдЧреНрд╡реЗрдЬ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЕрд░реНрдерд╛рдд рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдореМрдЬреВрдж рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдЦрд░рд╛рдм рд╣реИ - рднрд╛рд╖рд╛ рдмрдирд╛рдИ рдЧрдИ рдереА рддрд╛рдХрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреМрд╢рд▓ рднреА рдирд╣реАрдВ рд╣реИред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдПрд╕рдХреНрдпреВрдПрд▓ рдХреЗ рддрд╣рдд рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдмрд▓реНрдХрд┐ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдиреАрдВрд╡ рдирд┐рд╣рд┐рдд рд╣реИ - рд╡рд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рддрд╛рд░реНрдХрд┐рдХ рд╣реИред рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рд╕рд░рд▓ рдЪрдпрди рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ:
SELECT id, name
рдХреНрдпрд╛ рд╕рдордЭрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рдЕрдиреБрд░реЛрдз рдореЗрдВ рд▓рдЧрд╛рддрд╛рд░ рддреАрди рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдЗрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рднрд╛рдЧ, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдкрд┐рдЫрд▓реЗ рдПрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛, рдЕрдиреБрд░реЛрдз рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕реАрдорд┐рдд рд╕реЗрдЯ рдХрд╛ рдЕрд░реНрде рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╣реИ: рдпрд╣рд╛рдВ рд╕реЗ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдХрд┐рди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕ рддрд╛рд▓рд┐рдХрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВред

рдХреЛрдЯрд▓рд┐рди рдХреЗ рд▓рд┐рдП рдкреЛрд░реНрдЯрд┐рдВрдЧ
рдЗрд╕рд▓рд┐рдП, FROM рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд╡реЗрд░реА рднрд╛рд╖рд╛ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рдкреНрд░рд╛рдердорд┐рдХ рд╣реИред рдпрд╣ рдЗрд╕ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╕реЗ рд╣реИ рдХрд┐ рдХреНрд╡реЗрд░реА рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рд╕рдВрднрд╡ рд╡рд┐рдХрд▓реНрдк рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдХреЛрдЯрд▓рд┐рди рдореЗрдВ, рд╣рдо рдЗрд╕реЗ (рдЯреА) рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдПрдХ рдЗрдирдкреБрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЗрдЧрд╛, рдЬреЛ рдПрдХ рдЯреЗрдмрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЙрд▓рдо рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИред
object Employees : Table("employees") { val id = Column("id") val name = Column("name") val organizationId = Column("organization_id") }
рдлрд╝рдВрдХреНрд╢рди рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдРрд╕реЗ рддрд░реАрдХреЗ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреЛ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рдВрднрд╛рд╡рд┐рдд рдирд┐рд░рдВрддрд░рддрд╛ рдХреЛ рджрд░реНрд╢рд╛рддреЗ рд╣реИрдВред рдирд┐рд░реНрдорд╛рдг рд╕реЗ рд╣рдореЗрд╢рд╛ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпреЛрдВ рд╕реЗ рдкрд╣рд▓реЗ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдореЗрдВ рдЕрдВрддрд┐рдо рдЪрдпрди (SQL рдХреЗ рд╡рд┐рдкрд░реАрдд, рдЬрд╣рд╛рдВ SELECT рд╣рдореЗрд╢рд╛ FROM рд╕реЗ рдкрд╣рд▓реЗ рдЖрддрд╛ рд╣реИ) рд╕рд╣рд┐рдд рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдКрдкрд░ SQL рдХреНрд╡реЗрд░реА рдХреЗ рдмрд░рд╛рдмрд░ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
from(Employees) .where { e -> e.organizationId eq 1 } .select { e -> e.id .. e.name }
рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рд╣рдо рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рднреА рдЕрд╡реИрдз SQL рдХреЛ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐, рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХрд╛ рдЕрд░реНрде рд╣реИ рд╕реАрдорд┐рдд рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдПрдХреНрд╕рдЯреЗрдВрд╢рдиред рд╣рдо рдХреЛрдЯрд▓рд┐рди рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЕрдиреБрд░реЛрдз рдХреА рд╡реИрдзрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЬрд╣рд╛рдВ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдПрдХ рдФрд░ рдЬрд╣рд╛рдВ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдирд┐рд░реНрдорд╛рдг groupBy, рд╣реЛрдиреЗ, рдЖрджреЗрд╢, рд╕реАрдорд╛, рдСрдлрд╕реЗрдЯ рдФрд░ рдЕрдВрддрд┐рдо рдЪрдпрди рд╕рднреА рдорд╛рдиреНрдп рд╣реИрдВред

рд▓реИрдореНрдмреНрдбрд╛ рдиреЗ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдХрд┐ рдХрд╣рд╛рдВ рдФрд░ рдЪреБрдирд┐рдВрджрд╛ рдмрдпрд╛рдиреЛрдВ рдХреЛ рдХреНрд░рдорд╢рдГ рд╡рд┐рдзреЗрдп рдФрд░ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рд╣рдордиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╣рд▓реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛)ред рдПрдХ рдЯреЗрдмрд▓ рдХреЛ рд▓реИрдореНрдмреНрдбрд╛ рдЗрдирдкреБрдЯ рдореЗрдВ рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рдХреЙрд▓рдо рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХреЗрдВред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕ рд╕реНрддрд░ рдкрд░ рднреА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдмрдирд╛рдП рд░рдЦреА рдЬрд╛рддреА рд╣реИ - рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХреА рд╕рд╣рд╛рдпрддрд╛ рд╕реЗ рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╡рд┐рдзреЗрдп рдЕрдВрддрддрдГ рдПрдХ рдЫрджреНрдо-рдмреВрд▓рд┐рдпрди рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рддреНрд░реБрдЯрд┐ рдпрд╛ рдПрдХ рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддреНрд░реБрдЯрд┐ рд╣реЛрдиреЗ рдкрд░ рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╣реА рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред
fun where(predicate: (T) -> Predicate): WhereClause<T> fun select(projection: (T) -> Iterable<Projection>): SelectStatement<T>
рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ
рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдкрдХреЛ рдХрдИ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╣рдорд╛рд░реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рдЬреЙрдЗрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╕рдВрдмрдВрдзрдкрд░рдХ рдореЙрдбрд▓ рдЙрд╕ рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рдЖрдкрдХреЛ рдмрд╕ рд╕рдореНрдорд┐рд▓рд┐рдд рд╡рд┐рдзрд┐ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реА рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдореЗрдВ рдПрдХ рджреВрд╕рд░реА рддрд╛рд▓рд┐рдХрд╛ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред
fun <T2: Table> join(table2: T2): JoinClause<T, T2>
JOIN, рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, FROM рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗ, рдПрдХрдорд╛рддреНрд░ рдЕрдВрддрд░ рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рдкреНрд░рдХреНрд╖реЗрдкрдг рдФрд░ рд╡рд┐рдзреЗрдп рд▓реИрдореНрдмреНрдбрд╛ рджреЛрдиреЛрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕реНрддрдВрднреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рдкреИрд░рд╛рдореАрдЯрд░ рд▓реЗрдВрдЧреЗред
from(Employees) .join(Organizations).on { e, o -> o.id eq e.organizationId } .where { e, o -> e.organizationId eq 1 } .select { e, o -> e.id .. e.name .. o.name }
рдбреЗрдЯрд╛ рдкреНрд░рдмрдВрдзрди
рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рднрд╛рд╖рд╛ рдПрдХ SQL рднрд╛рд╖рд╛ рдЙрдкрдХрд░рдг рд╣реИ, рдЬреЛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдиреЗ, рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпреЗ рдбрд┐рдЬрд╛рдЗрди рд╣рдорд╛рд░реЗ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдлрд┐рдЯ рд╣реЛрддреЗ рд╣реИрдВред рдЕрдкрдбреЗрдЯ рдФрд░ рдбрд┐рд▓реАрдЯ рдХреЛ рд╕рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдФрд░ рдЬрд╣рд╛рдБ рдЙрдкрдпреБрдХреНрдд рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐ рдХреЛ рдкреВрд░рдХ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░рд┐рдЪрдп рджреЗрддреЗ рд╣реИрдВред
from(Employees) .where { e -> e.id eq 1 } .update { e -> e.name("John Doe") } from(Employees) .where { e -> e.id eq 0 } .delete() into(Employees) .insert { e -> e.name("John Doe") .. e.organizationId(1) }
рдбреЗрдЯрд╛ рд╡рд┐рд╡рд░рдг
SQL рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрд░рдЪрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рдПрдХ рд╡рд┐рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рднрд╛рд╖рд╛ рдХреЗ рдЗрд╕ рднрд╛рдЧ рдХреЛ рдбреЗрдЯрд╛ рдкрд░рд┐рднрд╛рд╖рд╛ рднрд╛рд╖рд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреНрд░рд┐рдПрдЯ рдЯреЗрдмрд▓ рдФрд░ рдбреНрд░реЙрдк рдЯреЗрдмрд▓ рд╕реНрдЯреЗрдЯрдореЗрдВрдЯ рдХреЛ рд╕рдорд╛рди рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдУрд╡рд░ рдлрдВрдХреНрд╢рди рд╢реБрд░реБрдЖрддреА рдмрд┐рдВрджреБ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
over(Employees) .create { integer(it.id).primaryKey(autoIncrement = true).. text(it.name).unique().notNull().. integer(it.organizationId).foreignKey(references = Organizations.id) }
over(Employees).drop()