# SQL Snippets for Espanso matches: # Basic SELECT statement - trigger: "}sqls" replace: | SELECT [columns] FROM [table] [WHERE conditions] [ORDER BY column] [LIMIT n]; # SELECT with common clauses - trigger: "}sqlsel" replace: | SELECT $1$ -- columns FROM $2$ -- table $3$ -- optional: WHERE, GROUP BY, etc. $4$; -- optional: semicolon or other ending # INSERT statement - trigger: "}sqli" replace: | INSERT INTO [table] ([columns]) VALUES ([values]); # UPDATE statement - trigger: "}sqlu" replace: | UPDATE [table] SET [column] = [value] [WHERE conditions]; # DELETE statement - trigger: "}sqld" replace: | DELETE FROM [table] [WHERE conditions]; # CREATE TABLE - trigger: "}sqlct" replace: | CREATE TABLE [table] ( [column1] [type] [constraints], [column2] [type] [constraints], ... ); # Common WHERE clauses - trigger: "}sqlw" replace: | WHERE [conditions] # JOIN patterns - trigger: "}sqlj" replace: | [table1] [JOIN_TYPE] JOIN [table2] ON [table1].[key] = [table2].[key] # Aggregate functions - trigger: "}sqlagg" replace: | SELECT [GROUP_BY_COLUMN], COUNT(*) as count, SUM([numeric_column]) as total, AVG([numeric_column]) as average, MAX([column]) as max_value, MIN([column]) as min_value FROM [table] GROUP BY [GROUP_BY_COLUMN] # Subquery pattern - trigger: "}sqlsub" replace: | SELECT [columns] FROM [table1] WHERE [column] IN ( SELECT [column] FROM [table2] WHERE [conditions] ) # Common SQL comments - trigger: "}sqlc" replace: "-- $|$" - trigger: "}sqlcb" replace: "/* $|$ */" # Transaction wrapper - trigger: "}sqltr" replace: | BEGIN TRANSACTION; $|$ COMMIT; -- ROLLBACK; -- uncomment to rollback instead # CTE (Common Table Expression) - trigger: "}sqlcte" replace: | WITH [cte_name] AS ( SELECT [columns] FROM [table] WHERE [conditions] ) SELECT [columns] FROM [cte_name]; # CASE statement - trigger: "}sqlcase" replace: | CASE WHEN [condition1] THEN [result1] WHEN [condition2] THEN [result2] ELSE [default_result] END as [alias] # Window functions pattern - trigger: "}sqlwin" replace: | SELECT [columns], [function]() OVER ( PARTITION BY [partition_column] ORDER BY [order_column] [ROWS/RANGE frame] ) as [alias] FROM [table] # Placeholders guide (use these in your templates): # [columns] - list of columns (comma-separated or *) # [table] - table name(s) # [conditions] - WHERE clause conditions # [JOIN_TYPE] - INNER, LEFT, RIGHT, FULL, CROSS # [numeric_column] - column with numeric values for aggregates # [GROUP_BY_COLUMN] - column to group by # $1$, $2$ etc. - tab stops (use Tab to navigate) # $|$ - final cursor position