検索
ホームページテクノロジー周辺機器IT業界Elixir' s cecto Querying DSL:The Basics

Elixirでのecto Querying:初心者のガイド

重要な概念:

Ectoは、SQLを密接に反映したデータベースインタラクション用のElixirのDSLです。 機能的には同等ですが、スタイルは異なるキーワードとマクロクエリの構文を提供します。

  • などのコア関数は、正確なデータ選択を許可します。
  • 集約関数(
  • wherelimitoffsetdistinct
  • )複雑なデータ計算を有効にします。 group_by havingcountavgアプリケーションの開始:summin max例では、
  • アプリケーションを使用します。 次のように、データベースをクローン、セットアップ、および移行します

(ここではMySQLが使用されています。他のデータベースに適応できますが、後の例のいくつかはMySQL固有の場合があります。) ectoingデータベーススキーマ:

ectoing

git clone https://github.com/tpunt/ectoing
cd ectoing
mix deps.get
# Update credentials in config/config.exs
mix ecto.create
mix ecto.migrate
mix run priv/repo/seeds.exs
基本的なクエリ:

簡単なクエリから始めましょう。 Elixir Shell(

) すべてのユーザーの取得:

Understanding Elixir's Ecto Querying DSL: The Basics sql:

ecto(キーワード構文):

ecto(マクロ構文):Ecto.Query iex -S mix

特定のフィールドの選択(FirstName、姓):

sql:

SELECT * FROM users;
ecto(キーワード構文):

query = Ectoing.User
Ectoing.Repo.all(query)
ecto(マクロ構文):

query = Ectoing.User |> Ecto.Query.all()
Ectoing.Repo.all(query)
結果は、結果のフィルタリングとカスタマイズ:

SELECT firstname, surname FROM users;
データのサブセットを選択するためにクエリを調整しましょう。

姓「DOE」でユーザーを選択:
query = from u in Ectoing.User, select: [u.firstname, u.surname]
Ectoing.Repo.all(query)

sql:

query = Ectoing.User |> Ecto.Query.select([u], [u.firstname, u.surname])
Ectoing.Repo.all(query)

ecto(キーワード構文):select

ecto(マクロ構文):

異なる姓の選択、順序付け、および制限:

sql:

ecto(キーワード構文):

SELECT * FROM users WHERE surname = "doe";

ecto(マクロ構文):

surname = "doe"
query = from u in Ectoing.User, where: u.surname == ^surname
Ectoing.Repo.all(query)

集約クエリ:
surname = "doe"
query = Ectoing.User |> Ecto.Query.where([u], u.surname == ^surname)
Ectoing.Repo.all(query)

ectoは集約関数をサポートしています。

平均的な友人評価を持つユーザーを見つける4以上:
SELECT DISTINCT surname FROM users LIMIT 3 ORDER BY surname;

sql:

query = from u in Ectoing.User, select: u.surname, distinct: true, limit: 3, order_by: u.surname
Ectoing.Repo.all(query)

ecto(キーワード構文):

query = Ectoing.User
|> Ecto.Query.select([u], u.surname)
|> Ecto.Query.distinct(true)
|> Ecto.Query.limit(3)
|> Ecto.Query.order_by([u], u.surname)
Ectoing.Repo.all(query)

ecto(マクロ構文):(キーワードの構文と同様の構造、パイプオペレーターを使用)

結論:

この紹介では、Ectoのクエリの基本をカバーしています。 次のステップでは、参加、複雑なクエリ、高度なテクニックの探索が含まれます。 包括的なガイドについては、ECTOドキュメントを参照してください

以上がElixir' s cecto Querying DSL:The Basicsの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
AWS ECSとLambdaを備えたサーバーレス画像処理パイプラインAWS ECSとLambdaを備えたサーバーレス画像処理パイプラインApr 18, 2025 am 08:28 AM

このチュートリアルは、AWSサービスを使用してサーバーレスイメージ処理パイプラインを構築することをガイドします。 APIゲートウェイ、Lambda関数、S3バケット、およびDynamoDBと対話するECS Fargateクラスターに展開されたnext.jsフロントエンドを作成します。 th

CNCF ARM64パイロット:インパクトと洞察CNCF ARM64パイロット:インパクトと洞察Apr 15, 2025 am 08:27 AM

このパイロットプログラム、CNCF(クラウドネイティブコンピューティングファンデーション)、アンペアコンピューティング、Equinix Metal、およびActuatedのコラボレーションであるCNCF GithubプロジェクトのARM64 CI/CDが合理化されます。 このイニシアチブは、セキュリティの懸念とパフォーマンスリムに対処します

GOでネットワークの脆弱性スキャナーを構築しますGOでネットワークの脆弱性スキャナーを構築しますApr 01, 2025 am 08:27 AM

このGOベースのネットワーク脆弱性スキャナーは、潜在的なセキュリティの弱点を効率的に識別します。 Goの同時機能機能を速度で活用し、サービスの検出と脆弱性のマッチングが含まれます。その能力と倫理を探りましょう

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。