\documentclass[a4paper,10pt]{article}

\usepackage[utf8]{inputenc}   % accents dans la source
\usepackage[T1]{fontenc}
\usepackage[french]{babel}

\usepackage{geometry}
\geometry{ hmargin=2.5cm, vmargin=2cm }% marges

\usepackage{graphicx} % images


\renewcommand{\familydefault}{\sfdefault}
\title{SQL}
\author{Guillaume}
\date{\today}

\begin{document}

\begin{center}
\Huge{SQL}

\small{par Guillaume Andrieu, d'après le cours de Frédéric Hoogstoel}
\end{center}

\section{Requête simple}

 \begin{verbatim}
SELECT [DISTINCT] {liste_d'expressions | *}
FROM liste_de_noms_de_table_ou_vue
[WHERE {condition de sélection | jointure}]
[GROUP BY liste_de_champs [HAVING
condition_de_sélection_de_groupement ]
 ]
[ORDER BY liste_de_champs]
\end{verbatim}

\subsection{Conditions de sélection}

\begin{itemize}
   \item Comparaison
\begin{verbatim}
lieu = "Paris"
prix < 40
\end{verbatim}


   \item Bornes
\begin{verbatim}
prix BETWEEN 35 AND 57
\end{verbatim}


   \item Condition LIKE

Le caractère \% remplace une chaîne, le caractère \_ un caractère
\begin{verbatim}
prenom LIKE "G%"
prenom LIKE "Dupon_"
\end{verbatim}

\end{itemize}

\subsection{Fonctions statistiques}

Elles prennent place dans la liste d'expressions

\begin{verbatim}
COUNT(*), MIN(prix), MAX(prix), AVG(prix), SUM(prix)
\end{verbatim}

\section{Les jointures}

Les jointures sont utilisés lors qu'une colonne est présente dans deux tables, et qu'on souhaite relier ces deux tables.

Exemple : on affiche les auteurs ayant écrit des livres de type "S".

Ici pour 3 tables, on a 2 jointures (ligne 3 et 4).
\begin{verbatim}
SELECT Auteur.*
FROM   Auteur, Livre, Ecrit
WHERE  Auteur.n_aut = Ecrit.n_aut
AND    Ecrit.n_liv = Livre.n_liv
AND    Livre.type= « S » ;
\end{verbatim}

\section{Les vues}

\subsection{Créer une vue}
\begin{verbatim}
CREATE VIEW nom_de_la_vue
 [ (nom_colonne1, nom_colonne2, .......)]
      AS requête SELECT
\end{verbatim}

\subsection{Supprimer une vue}
\begin{verbatim}
DROP VIEW nom_de_la_vue
\end{verbatim}

\end{document}
