0Pricing
Edge Computing with Cloudflare Workers & Deno · レッスン

エッジで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-db

Binding 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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Cloudflare KVストア
  2. Durable Objectsの概要
  3. Denoとエッジストレージの統合
  4. エッジでD1 SQLを使ってクエリする
← Edge Computing with Cloudflare Workers & Denoに戻る