首頁 > 科技週邊 > IT業界 > 了解長生不老藥的ecto查詢DSL:基礎知識

了解長生不老藥的ecto查詢DSL:基礎知識

William Shakespeare
發布: 2025-02-18 12:03:10
原創
1022 人瀏覽過

長生不老藥中的

> ecto查詢:初學者指南

>

>本文介紹了Ecto,Ecto,Ecto,Ecto的查詢語言,為您提供基本的查詢技術。 我們將介紹對長生不老藥和ecto基本面的基本了解,聯合,協會,聚合等等。

密鑰概念:

    ecto是用於數據庫交互的Elixir的DSL,緊密鏡像SQL。
  • >它提供關鍵字和宏查詢語法,在功能上等效但樣式不同。
  • 核心功能,例如
  • >,wherelimitoffset>允許精確的數據選擇。 distinct>
  • 聚集函數(
  • group_byhavingcountavgsumminmax)啟用複雜的數據計算。
>

開始使用>應用程序:ectoing> 示例使用

>應用程序。 克隆,設置和遷移數據庫如下:

> ectoing

(在這裡使用mySQL;雖然適應其他數據庫,但一些以後的示例可能是特定於mySQL的。)
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
登入後複製
>

數據庫架構:

Understanding Elixir's Ecto Querying DSL: The Basics

基本查詢:

>讓我們從簡單的查詢開始。 切記在Elixir Shell()中導入

獲取所有用戶:Ecto.Query iex -S mix> sql:

ecto(關鍵字語法):

ecto(宏語法):
SELECT * FROM users;
登入後複製

選擇特定字段(firstName,姓氏):

>
query = Ectoing.User
Ectoing.Repo.all(query)
登入後複製
> sql:

query = Ectoing.User |> Ecto.Query.all()
Ectoing.Repo.all(query)
登入後複製
ecto(關鍵字語法):

ecto(宏語法):

結果將是列表,元組或地圖的列表,具體取決於
SELECT firstname, surname FROM users;
登入後複製
子句結構。

>過濾和自定義結果:
query = from u in Ectoing.User, select: [u.firstname, u.surname]
Ectoing.Repo.all(query)
登入後複製
>

讓我們完善查詢以選擇數據的子集。

>
query = Ectoing.User |> Ecto.Query.select([u], [u.firstname, u.surname])
Ectoing.Repo.all(query)
登入後複製
選擇姓氏“ doe”的用戶:

select> sql:

ecto(關鍵字語法):

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(關鍵字語法):

> 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查詢DSL:基礎知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板