ORM
おーあーるえむ
一言で言うと
プログラムのコードでデータベースを操作できるようにする仕組み。SQLを直接書かずに、プログラミング言語の書き方でデータベースを扱える。
もう少し詳しく
一言で言うと
プログラムのコードでデータベースを操作できるようにする仕組み。SQLを直接書かずに、プログラミング言語の書き方でデータベースを扱える。
もう少し詳しく
ORMは「Object-Relational Mapping」の略で、プログラミング言語のオブジェクトとデータベースのテーブルを自動的に対応づける仕組みです。
通訳さんに例えるとわかりやすいです。あなた(プログラム)は日本語(Python, JavaScriptなど)しか話せません。相手(データベース)はSQL語しか話せません。ORMは、あなたの日本語をSQLに翻訳し、相手の返答を日本語に翻訳してくれる通訳です。
たとえば、SQLでSELECT * FROM users WHERE age > 20と書く代わりに、ORMを使えばDrizzleならdb.select().from(usersTable).where(gt(usersTable.age, 20))のようにプログラミング言語の書き方で同じことができます。
代表的なORMには、Drizzle(JavaScript/TypeScript)、Prisma(JavaScript/TypeScript)、SQLAlchemy(Python)、ActiveRecord(Ruby)などがあります。
実務でどう使うか
コードで見てみよう
// Drizzle ORM(このプロジェクトで使用)での例// テーブルの定義(設計図)
const usersTable = mysqlTable("users", {
id: int("id").primaryKey(),
name: varchar("name", { length: 255 }),
email: varchar("email", { length: 255 }),
});
// データの取得(SQLを書かなくてOK)
const users = await db.select().from(usersTable)
.where(eq(usersTable.name, "田中"));
// → 裏側で SELECT * FROM users WHERE name = '田中' が実行される