ブラインドタッチはプログラミングにおいて重要です。 高速入力テクニックを使用して、SQL プログラミング言語でコードを記述すると、より効率的になります。
SQL とブラインドタッチでのプログラミング
SQLを学ぶこととブラインドタッチを練習することは自然に結びついています。SQLのクエリは括弧、カンマ、演算子、引用符でいっぱいです。小さな間違い、例えば引用符の打ち間違いやセミコロンの付け忘れは、クエリ全体を失敗させてしまいます。SQLを書くときには、どの部分の構文が異なるデータベースで共通で、どの部分が特定のシステム固有であるかを知ることが役立ちます。この記事では主にPostgreSQLに焦点を当てますが、構文が異なるところではMySQL、SQLite、SQL Serverについても触れます。
SQL構文の特徴は何か?
SQL(Structured Query Language)は宣言型言語です。データをどう取得するかを手順で説明する代わりに、欲しいデータを宣言します。ほとんどの文はSELECT
、INSERT
、UPDATE
といったキーワードで始まります。句の順序は固定されていて、SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY ...
です。PostgreSQLとMySQLはこの順序を共有しているため、一方で学べば他方にも応用できます。
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
よく使う特殊文字
SQLは多くの句読点を含みます。括弧 ()
は関数や条件を囲みます。カンマ ,
は列を区切ります。ピリオド .
はスキーマやテーブル名で使われます(例: public.users
)。シングルクォート '...'
は文字列リテラルを表します。PostgreSQLは識別子にダブルクォート "..."
を使い、MySQLはバッククォート `...`
を使います。SQL Serverでは角括弧 [...]
が使われることもあります。これらの記号を練習することは、クエリを壊さずに正しく書く助けになります。
-- 文字列リテラル
SELECT * FROM books WHERE title = 'War and Peace';
-- 空白を含む識別子 (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
大文字と小文字
慣習的に、SQLのキーワードは大文字で書かれることが多いです:SELECT
、FROM
、WHERE
。これによりクエリ内で目立ちやすくなりますが、必須ではありません。PostgreSQLでは引用符なしの識別子は自動的に小文字化されるので、MyTable
とmytable
は同じ扱いです。MySQLでは動作がOSに依存します。練習のためには、キーワードを大文字で書くのが一般的で、クエリの構造を強調できます。
セミコロンと文の終わり
PostgreSQLでは、すべての文は通常セミコロン ;
で終わります。忘れるとpsql
のようなツールで実行が止まることがあります。MySQLやSQLiteは対話モードで寛容ですが、セミコロンは依然として推奨されます。この小さな記号が、クエリ失敗の原因になることがよくあります。
SELECTクエリとJOIN
クエリを書くことはしばしばJOINを書くことを意味します。PostgreSQLはINNER JOIN
、LEFT JOIN
、RIGHT JOIN
を使用します。各JOINにはキーワードON
と条件が必要です。スペース不足や条件のタイプミスでクエリは失敗します。JOINを練習することは、=
や.
などの記号を正確に入力する練習になります。
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
関数と式
PostgreSQLには多くの組み込み関数があります。COUNT()
、SUM()
、AVG()
などです。括弧は常に必要です。日付と時間の関数NOW()
やDATE_TRUNC()
はPostgreSQL特有です。MySQLにはCURDATE()
やDATE_FORMAT()
といった同等の関数があります。正確に入力するには、アンダースコアやカンマ、括弧に注意が必要です。
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT、UPDATE、DELETE
データを変更するコマンドには多くの句読点が含まれます。INSERT
は列と値をリスト化するために括弧とカンマを使用します。UPDATE
はカンマで区切られた=
を使います。DELETE
はキーワードと条件を組み合わせます。これらの構造はPostgreSQL、MySQL、SQLite、SQL Serverでほぼ同じですが、引用ルールは異なります。
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'a@example.com');
UPDATE users
SET name = 'Bob', email = 'bob@example.com'
WHERE id = 1;
DELETE FROM users WHERE id = 2;
Common Table Expressions (CTE)
PostgreSQLはWITH
で始まるCTEをよく使います。CTEには多くの括弧やカンマが含まれ、タイピング練習に最適です。MySQLやSQLiteの新しいバージョンもサポートしており、SQL Serverも対応しています。括弧の正しい配置が最もよくある難点です。
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '30 days'
)
SELECT customer_id, COUNT(*) AS order_count
FROM recent_orders
GROUP BY customer_id;
ウィンドウ関数
PostgreSQLは高度なウィンドウ関数で有名です。典型的な構文OVER (PARTITION BY ... ORDER BY ...)
は括弧やキーワードを正確に入力する必要があります。MySQLやSQL Serverもサポートしていますが、PostgreSQLが基準とされることが多いです。
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
パラメータとプレースホルダー
アプリケーションでSQLを使うとき、プレースホルダーはデータベースごとに異なります。PostgreSQLは$1, $2
、MySQLやSQLiteは?
、SQL Serverは@p1
を使います。これらの小さな記号は入力ミスしやすいですが、実行には不可欠です。
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
まとめ
慣習的に、SQLキーワードは大文字で入力され、識別子は引用しない限り小文字のままです。PostgreSQLは識別子にダブルクォートを使用し、$n
プレースホルダー、CTE、ウィンドウ関数を提供します。MySQLはバッククォートと?
プレースホルダーを使います。SQL Serverは角括弧と@
パラメータを導入します。SQLiteはシンプルな構文を維持しますが、正確さが求められます。SQLクエリを練習することで、記号やキーワードの正確な入力が鍛えられ、PostgreSQLに集中することで、最も広く使われるモダンなデータベースのひとつに習熟できます。