


ecto interroge dans Elixir: A débutant Guide
Cet article présente Ecto, le langage de requête d'Elixir, vous guidant à travers des techniques de requête de base. Nous couvrirons les jointures, les associations, l'agrégation, etc., en supposant une compréhension de base des principes fondamentaux de l'élixir et de l'Ecto.
Concepts clés:
- ecto est le DSL d'Elixir pour les interactions de base de données, reflétant étroitement SQL.
- Il propose des syntaxes de mots clés et de macro, fonctionnellement équivalent mais différents en style.
- Fonctions de base comme
where
,limit
,offset
etdistinct
permettent une sélection précise de données. - Les fonctions d'agrégation (
group_by
,having
,count
,avg
,sum
,min
,max
) permettent des calculs de données complexes.
En démarrage avec l'application ectoing
:
Les exemples utilisent l'application ectoing
. Clone, configurer et migrer la base de données comme suit:
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
(MySQL est utilisé ici; Bien que adaptable à d'autres bases de données, certains exemples ultérieurs pourraient être spécifiques à MySQL.)
Le schéma de base de données:
requêtes de base:
Commen?ons par des requêtes simples. N'oubliez pas d'importer Ecto.Query
dans la coquille d'élixir (iex -S mix
).
Remplir tous les utilisateurs:
SQL:
SELECT * FROM users;
ecto (syntaxe des mots clés):
query = Ectoing.User Ectoing.Repo.all(query)
ecto (syntaxe macro):
query = Ectoing.User |> Ecto.Query.all() Ectoing.Repo.all(query)
Sélection de champs spécifiques (premier nom, nom de famille):
SQL:
SELECT firstname, surname FROM users;
ecto (syntaxe des mots clés):
query = from u in Ectoing.User, select: [u.firstname, u.surname] Ectoing.Repo.all(query)
ecto (syntaxe macro):
query = Ectoing.User |> Ecto.Query.select([u], [u.firstname, u.surname]) Ectoing.Repo.all(query)
Les résultats seront des listes de listes, de tuples ou de cartes en fonction de la structure de la clause select
.
Filtrage et personnalisation des résultats:
Affinons les requêtes pour sélectionner des sous-ensembles de données.
Sélection des utilisateurs avec nom de famille "Doe":
SQL:
SELECT * FROM users WHERE surname = "doe";
ecto (syntaxe des mots clés):
surname = "doe" query = from u in Ectoing.User, where: u.surname == ^surname Ectoing.Repo.all(query)
ecto (syntaxe macro):
surname = "doe" query = Ectoing.User |> Ecto.Query.where([u], u.surname == ^surname) Ectoing.Repo.all(query)
Sélection des noms de famille distincts, ordonnés et limités:
SQL:
SELECT DISTINCT surname FROM users LIMIT 3 ORDER BY surname;
ecto (syntaxe des mots clés):
query = from u in Ectoing.User, select: u.surname, distinct: true, limit: 3, order_by: u.surname Ectoing.Repo.all(query)
ecto (syntaxe macro):
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)
Requêtes d'agrégation:
ecto prend en charge les fonctions d'agrégation.
trouver des utilisateurs avec une note d'amie moyenne de 4 ou plus:
SQL:
SELECT friend_id, avg(friend_rating) AS avg_rating FROM friends GROUP BY friend_id HAVING avg_rating >= 4 ORDER BY avg_rating DESC;
ecto (syntaxe des mots clés):
query = from f in Ectoing.Friend, select: %{friend_id: f.friend_id, avg_rating: avg(f.friend_rating)}, group_by: f.friend_id, having: avg(f.friend_rating) >= 4, order_by: [desc: avg(f.friend_rating)] Ectoing.Repo.all(query)
ecto (syntaxe macro): (structure similaire à la syntaxe des mots clés, en utilisant l'opérateur de tuyau)
Conclusion:
Cette introduction couvre les bases de requête d'Ecto. Les étapes suivantes impliquent d'explorer les jointures, les requêtes complexes et les techniques avancées. Reportez-vous à la documentation Ecto pour un guide complet.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Lors du développement de plateformes d'apprentissage similaires à Udemy, l'accent n'est pas seulement mis sur la qualité du contenu. Tout aussi important est la fa?on dont ce contenu est livré. En effet, les plateformes éducatives modernes reposent sur des médias accessibles, rapides et faciles à digérer.

Dans un monde où la confiance en ligne n'est pas négociable, les certificats SSL sont devenus essentiels pour chaque site Web. La taille du marché de la certification SSL était évaluée à 5,6 milliards USD en 2024 et se développe toujours fortement, alimentée par la montée en puissance du commerce électronique

Une passerelle de paiement est un élément crucial du processus de paiement, permettant aux entreprises d'accepter les paiements en ligne. Il agit comme un pont entre le client et le marchand, transférant en toute sécurité les informations de paiement et facilitant les transactions. Pour

Un nouveau modèle d'intelligence artificielle (IA) a démontré la capacité de prédire les principaux événements météorologiques plus rapidement et avec une plus grande précision que plusieurs des systèmes de prévision mondiaux les plus utilisés. Ce modèle, nommé Aurora, a été formé u

Dans ce qui semble encore un autre revers pour un domaine où nous pensions que les humains dépasseraient toujours les machines, les chercheurs proposent maintenant que l'IA comprend mieux les émotions que nous.

Qu'on le veuille ou non, l'intelligence artificielle fait partie de la vie quotidienne. De nombreux appareils - y compris les rasoirs électriques et les brosses à dents - sont devenus alimentés par l'IA, "en utilisant des algorithmes d'apprentissage automatique pour suivre comment une personne utilise l'appareil, comment le Devi

L'intelligence artificielle (IA) a commencé comme une quête pour simuler le cerveau humain, est-ce maintenant en train de transformer le r?le du cerveau humain dans la vie quotidienne? La révolution industrielle a réduit la dépendance à l'égard du travail manuel. En tant que personne qui fait des recherches sur l'application

Plus nous essayons de faire fonctionner les modèles d'IA, plus leurs émissions de carbone deviennent grandes - certaines invites générant jusqu'à 50 fois plus de dioxyde de carbone que d'autres, selon une étude récente.
