首页 > 科技周边 > IT业界 > 了解长生不老药的ecto查询DSL:基础知识

了解长生不老药的ecto查询DSL:基础知识

William Shakespeare
发布: 2025-02-18 12:03:10
原创
1001 人浏览过

长生不老药中的

> 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)
登录后复制
让我们完善查询以选择数据的子集。

> select选择姓氏“ doe”的用户:

> sql:

ecto(关键字语法):

> ecto(宏语法):

选择不同的姓氏,有序并有限:

> sql:
SELECT * FROM users WHERE surname = "doe";
登录后复制

ecto(关键字语法):
surname = "doe"
query = from u in Ectoing.User, where: u.surname == ^surname
Ectoing.Repo.all(query)
登录后复制

> ecto(宏语法):

surname = "doe"
query = Ectoing.User |> Ecto.Query.where([u], u.surname == ^surname)
Ectoing.Repo.all(query)
登录后复制

聚合查询:

ecto支持聚合函数。
SELECT DISTINCT surname FROM users LIMIT 3 ORDER BY surname;
登录后复制

>找到一个普通朋友评级为4或更高的用户:

>
query = from u in Ectoing.User, select: u.surname, distinct: true, limit: 3, order_by: u.surname
Ectoing.Repo.all(query)
登录后复制
> sql:

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的查询基础知识。 下一步涉及探索连接,复杂的查询和高级技术。 有关综合指南,请参阅ECTO文档。

以上是了解长生不老药的ecto查询DSL:基础知识的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板