161 lines
3.4 KiB
YAML
161 lines
3.4 KiB
YAML
# 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
|