エッジでD1 SQLを使ってクエリする
サーバーレスSQLiteデータベースであるCloudflare D1を使い、エッジ上のWorkersからリレーショナルクエリを実行します。
「エッジでD1 SQLを使ってクエリする」はCoddyKit上の無料Edge Computing with Cloudflare Workers & Denoレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEdge Computing with Cloudflare Workers & Deno学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
What is D1?
Cloudflare D1 is a serverless SQL database built on SQLite. It brings relational queries to the edge, complementing key-value (KV) and Durable Objects.
KV vs D1
When to use which:
- KV: simple key-value, eventual consistency
- D1: structured data, joins, transactions, SQL
Creating a Database
Create a D1 database from the CLI, then bind it to your Worker.
wrangler d1 create my-dbBinding D1
Add the binding to wrangler.toml so the database appears on the env object.
# wrangler.toml
[[d1_databases]]
binding = 'DB'
database_name = 'my-db'
database_id = 'xxxx'Creating a Schema
Define tables with standard SQL, executed via the CLI or a migration file.
CREATE TABLE users (
id INTEGER PRIMARY KEY,
email TEXT NOT NULL UNIQUE
);Prepared Statements
Query D1 from your Worker using prepared statements with bound parameters to prevent SQL injection.
const row = await env.DB
.prepare('SELECT * FROM users WHERE id = ?')
.bind(userId)
.first();Reading Multiple Rows
Use .all() to fetch every matching row as an array of objects.
const { results } = await env.DB
.prepare('SELECT email FROM users LIMIT 10')
.all();Writing Data
Inserts and updates use the same prepared-statement API with .run().
await env.DB
.prepare('INSERT INTO users (email) VALUES (?)')
.bind('a@b.com')
.run();Batching Statements
Run several statements atomically in a single round trip with batch, reducing latency.
await env.DB.batch([
env.DB.prepare('INSERT INTO users (email) VALUES (?)').bind('x@y.com'),
env.DB.prepare('INSERT INTO users (email) VALUES (?)').bind('p@q.com')
]);Consistency & Replication
D1 offers strong consistency on its primary, with read replication for low-latency reads near users. Plan writes around the primary location.
When to Choose D1
Pick D1 when you need relational structure, transactions, and SQL at the edge; pick KV for fast simple lookups and Durable Objects for coordinated state.
Quick Check
Test your D1 knowledge.
Recap
You learned to create and bind a D1 database, define schemas, run safe parameterized queries, batch statements, and choose D1 over KV or Durable Objects when you need relational data at the edge.
よくある質問
「エッジでD1 SQLを使ってクエリする」レッスンは無料ですか?
はい。「エッジでD1 SQLを使ってクエリする」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Edge Computing with Cloudflare Workers & Denoコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。
「エッジでD1 SQLを使ってクエリする」で何を学びますか?
サーバーレスSQLiteデータベースであるCloudflare D1を使い、エッジ上のWorkersからリレーショナルクエリを実行します。 ブラウザで直接実行するハンズオンコードでEdge Computing with Cloudflare Workers & Denoを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Edge Computing with Cloudflare Workers & Denoを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEdge Computing with Cloudflare Workers & Denoは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「エッジでD1 SQLを使ってクエリする」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEdge Computing with Cloudflare Workers & Denoレッスンでコードを書いて実行できますか?
はい。すべてのEdge Computing with Cloudflare Workers & Denoレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cloudflare KVストア
- Durable Objectsの概要
- Denoとエッジストレージの統合
- エッジでD1 SQLを使ってクエリする