0% ont trouvé ce document utile (0 vote)
20 vues59 pages

Utilisation de SQL Avancé

Ce document décrit un module sur l'utilisation du langage de requête structuré avancé (SQL) pour un programme d'administration de base de données. Le module vise à enseigner aux étudiants comment écrire des instructions SQL avancées pour récupérer, trier, filtrer et agréger des données en utilisant des fonctions. Il couvrira également des concepts SQL tels que les jointures, les caractères génériques et les fonctions. Le module aborde des sujets tels que les commandes SQL de base, le tri avec ORDER BY et GROUP BY, ainsi que des fonctions spéciales pour les dates, les chaînes et les mathématiques.

Transféré par

ScribdTranslations
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
20 vues59 pages

Utilisation de SQL Avancé

Ce document décrit un module sur l'utilisation du langage de requête structuré avancé (SQL) pour un programme d'administration de base de données. Le module vise à enseigner aux étudiants comment écrire des instructions SQL avancées pour récupérer, trier, filtrer et agréger des données en utilisant des fonctions. Il couvrira également des concepts SQL tels que les jointures, les caractères génériques et les fonctions. Le module aborde des sujets tels que les commandes SQL de base, le tri avec ORDER BY et GROUP BY, ainsi que des fonctions spéciales pour les dates, les chaînes et les mathématiques.

Transféré par

ScribdTranslations
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Collège polytechnique d'Arbaminch

Modèle TTLM pourUtilisation du langage de requête structuré avancé

Basé sur
Norme Professionnelle Éthiopienne (NPE)

Utiliser le langage de requête structuré avancé


TITRE DU PROGRAMME EFTP : Administration des bases de données Niveau IV

MODULE TITLE:Utiliser le langage de requête structuré avancé

CODE DE MODULE :ICT DBA4 05 0411

NOMINAL DURATION:130hrs
MODULE DESCRIPTION:This unit covers the skills, knowledge and attitudes required to
utiliser le langage de requête structuré avancé (SQL) pour définir, créer et manipuler
structures de base de données et données associées dans une base de données relationnelle.

LEARNING OUTCOMES:

À la fin du module, l'apprenant sera capable de :

1. Écrire une requête SQL AVANCÉE pour récupérer et trier des données

2. Écrire des instructions SQL AVANCÉES qui utilisent des fonctions

Écrivez des requêtes SQL AVANCÉES qui utilisent des agrégations et des filtrages

Utilisation du langage de requête structuré avancé


CONTENU DU MODULE :
. Revue des commandes SQL de base
oSQL Avancé
oSQL Haut
oSQL Comme
Jokers oSQL
oSQL Dans
oSQL Entre
Alias oSQL
Jointures SQL
Jointure interne oSQL
Jointure gauche SQL complète
Jointure à droite oSQL
union oSQL
Sélectionner dans oSQL
Fonctions SQL
Aperçu des fonctions SQL
Commandes de tri
. ORDER BY
. REGROUPER PAR…
Fonctions SQL spéciales
. Fonctions mathématiques
. Fonctions de chaîne
. Fonctions de date
. Fonctions agrégées

Utilisation du langage de requête structuré avancé


SQL Avancé

Clause TOP SQL

La clause TOP
La clause TOP est utilisée pour spécifier le nombre d'enregistrements à retourner.

La clause TOP peut être très utile sur de grandes tables avec des milliers d'enregistrements.
Le retour d'un grand nombre d'enregistrements peut avoir un impact sur la performance.

Note : Tous les systèmes de base de données ne prennent pas en charge la clause TOP.

Syntaxe SQL Server

SÉLECTIONNER TOP nombre|pourcentage nom_de_la_colonne(s)

DE nom_de_table

Exemple SQL TOP

La table "Personnes" :

P_Id LastName Prénom Adresse City

1 Hansen Bonjour Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

4 Nilsen Tom Vingvn 23 Stavanger

Maintenant, nous voulons sélectionner uniquement les deux premiers enregistrements dans le tableau ci-dessus.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER TOP 2 * DE Persons

Utiliser le langage de requête structuré avancé


Le jeu de résultats apparaîtra comme ceci :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

Exemple de PERCENT SQL


La table des "Personnes" :

P_Id LastName Prénom Adresse Ville

Timothée
1 Hansen Ola Sandnes
10

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

4 Nilsen Tom Vingvn 23 Stavanger

Maintenant, nous voulons sélectionner seulement 50 % des enregistrements dans le tableau ci-dessus.

Nous utilisons la déclaration SELECT suivante :

Sélectionner les 50 POUR CENT supérieurs * DE Persons

Le jeu de résultats ressemblera à ceci :

P_Id LastName FirstName Address Ville

1 Hansen Salut Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

Utiliser le Langage de Requête Structuré Avancé


SQL Comme

Opérateur LIKE SQL

L'opérateur LIKE est utilisé dans une clause WHERE pour rechercher un modèle spécifié dans
une colonne.

L'opérateur LIKE

L'opérateur LIKE est utilisé pour rechercher un motif spécifié dans une colonne.

Syntaxe SQL LIKE

SÉLECTIONNER le nom_de_colonne(s)

DE nom_table

OÙ column_name LIKE motif

Exemple d'opérateur LIKE

La table des "Personnes" :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Nous voulons maintenant sélectionner les personnes vivant dans une ville qui commence par "s".
table ci-dessus.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Personnes

OÙ Ville LIKE 's%'

Le signe "%" peut être utilisé pour définir des jokers (lettres manquantes dans le modèle) des deux côtés.
avant et après le motif.
Utiliser le langage de requête structuré avancé
L'ensemble des résultats ressemblera à ceci :

P_IdLastName FirstName Adresse Ville

1 Hansen Salut Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Ensuite, nous voulons sélectionner les personnes vivant dans une ville qui se termine par un "s" de la
"Persons" table.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DES Personnes

OÙ Ville LIKE '%s'

Le jeu de résultats ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

Timoteivn
1 Hansen Bonjour Sandnes
10

2 Svendson Tove Borgvn 23 Sandnes

Ensuite, nous voulons sélectionner les personnes vivant dans une ville contenant le motif "tav".
de la table "Personnes".

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Personnes

OÙ Ville LIKE '%tav%'

Le jeu de résultats ressemblera à ceci :

P_Id LastName FirstName Adresse City


Utilisation du langage de requête structuré avancé
3 Pettersen Kari Storgt 20 Stavanger

Il est également possible de sélectionner les personnes vivant dans une ville qui ne contient PAS le
le motif "tav" de la table "Persons", en utilisant le mot-clé NOT.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Persons

OÙ la ville NE RESSEMBLE PAS à '%tav%'

L'ensemble des résultats ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

Timothée
1 Hansen Ola Sandnes
10

2 Svendson Tove Borgvn 23 Sandnes

Jokers SQL
Les caractères génériques SQL peuvent être utilisés lors de la recherche de données dans une base de données.

Jokers SQL
Les caractères génériques SQL peuvent remplacer un ou plusieurs caractères lors de la recherche de données
dans une base de données.

Les caractères génériques SQL doivent être utilisés avec l'opérateur SQL LIKE.

Avec SQL, les caractères de substitution suivants peuvent être utilisés :

Description
Caractère générique

% Un substitut pour zéro ou plusieurs caractères


Utilisation du langage de requête structuré avancé
_ Un substitut pour exactement un caractère

[charlist] Tout caractère unique dans charlist

Tout caractère unique qui n'est pas dans la liste de caractères

or

[!charlist]

Exemples de caractères génériques SQL

Nous avons le tableau "Personnes" suivant :

P_Id LastName Prénom Adresse Ville

1 Hansen Bonjour Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Utiliser le joker %

Nous voulons maintenant sélectionner les personnes vivant dans une ville qui commence par "sa".
table des "Personnes".

Nous utilisons la déclaration SELECT suivante :

SELECT * FROM Persons

OÙ la Ville COMME 'sa%'

Le jeu de résultats ressemblera à ceci :

P_Id NomDeFamille FirstName Adresse Ville


Utilisation du langage de requête structuré avancé
1 Hansen Salut Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

Ensuite, nous voulons sélectionner les personnes vivant dans une ville qui contient le motif "nes".
de la table "Persons".

Nous utilisons la requête SELECT suivante :

SÉLECTIONNER * DE Persons

OÙ Ville LIKE '%nes%'

L'ensemble de résultats ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

Utiliser le caractère générique _

Maintenant, nous voulons sélectionner les personnes dont le prénom commence par n'importe quel
personnage, suivi de "la" de la table "Persons".

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Personnes

OÙ FirstName COMME '_la'

L'ensemble des résultats ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timoteivn 10 Sandnes

Utiliser le langage de requête structuré avancé


Ensuite, nous voulons sélectionner les personnes dont le nom de famille commence par "S", suivi
par n'importe quel caractère, suivi de "fin", suivi de n'importe quel caractère, suivi de "sur"
de la table "Personnes".

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * À PARTIR DE Personnes

OÙ LastName LIKE 'S_end_on'

L'ensemble des résultats ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

2 Svendson Tove Borgvn 23 Sandnes

Utiliser le caractère générique [charlist]

Maintenant, nous voulons sélectionner les personnes dont le nom de famille commence par "b" ou "s" ou
"p" de la table "Persons".

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Personnes

OÙ LastName LIKE '[bsp]%'

Le jeu de résultats ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Ensuite, nous voulons sélectionner les personnes dont le nom de famille ne commence pas par "b" ou
"s" ou "p" de la table "Persons".

Utilisation du Langage de Requête Structuré Avancé


Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Personnes

WHERE LastName LIKE '[!bsp]%'

Le résultat ressemblera à ceci :

P_Id LastName FirstName Adresse Ville

1 Hansen Salut Timoteivn 10 Sandnes

Opérateur IN SQL

L'opérateur IN

L'opérateur IN vous permet de spécifier plusieurs valeurs dans une clause WHERE.

Syntaxe SQL IN

SÉLECTIONNER le nom_de_colonne(s)

DE nom_de_table

OÙ nom_de_colonne DANS (valeur1,valeur2,...)

Exemple de l'opérateur IN

La table des "Personnes" :

P_Id LastName FirstName Adresse Ville

1 Hansen Ola Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Utiliser le langage de requête structuré avancé


Maintenant, nous voulons sélectionner les personnes dont le nom de famille est égal à "Hansen" ou
Pettersen

Nous utilisons la déclaration SELECT suivante :

SELECT * FROM Persons

OÙ LastName IN ('Hansen','Pettersen')

Le jeu de résultats ressemblera à ceci :

P_Id LastName FirstName Adresse City

1 Hansen Bonjour Timoteivn 10 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

4.5. Opérateurs SQL BETWEEN


L'opérateur BETWEEN est utilisé dans une clause WHERE pour sélectionner une plage de données.
entre deux valeurs.

L'opérateur BETWEEN

L'opérateur BETWEEN sélectionne une plage de données entre deux valeurs. Les valeurs
can be numbers, text, or dates.

Syntaxe SQL BETWEEN

SÉLECTIONNER le nom_de_colonne(s)

DE nom_de_table

OÙ nom_de_colonne

ENTRE value1 ET value2

Exemple d'opérateur BETWEEN


Utilisation de SQL avancé
The "Persons" table:

P_Id LastName FirstName Address Ville

1 Hansen Bonjour Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Nous voulons maintenant sélectionner les personnes dont le nom de famille est alphabétiquement entre
"Hansen" et "Pettersen" de la table ci-dessus.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER * DE Personnes

WHERE LastName

ENTRE 'Hansen' ET 'Pettersen'

Le jeu de résultats ressemblera à ceci :

P_Id LastName Prénom Adresse Ville

Timothée
1 Hansen Salut Sandnes
10

Remarque : L'opérateur BETWEEN est traité différemment dans différentes bases de données.

Dans certaines bases de données, les personnes portant le nom de famille « Hansen » ou « Pettersen » vont
ne pas être répertorié,

Exemple 2

To display the persons outside the range in the previous example, use NOT
ENTRE :

SELECT * FROM Persons

OÙ NomDeFamille

Utilisation de SQL avancé


PAS ENTRE 'Hansen' ET 'Pettersen'

Le jeu de résultats ressemblera à ceci :

P_Id LastName FirstName Address Ville

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Alias SQL

Avec SQL, un nom d'alias peut être donné à une table ou à une colonne.

Alias SQL
Vous pouvez donner un autre nom à une table ou une colonne en utilisant un alias. Cela peut être un
bonne chose à faire si vous avez des noms de table ou des noms de colonnes très longs ou complexes.

Un nom d'alias peut être n'importe quoi, mais généralement il est court.

Syntaxe des alias SQL pour les tables

SÉLECTIONNER le nom_de_colonne(s)

DE table_name

AS alias_name

Syntaxe des alias SQL pour les colonnes

SÉLECTIONNER nom_de_colonne COMME alias_de_nom

DE nom_table

Exemple d'alias

Utiliser le langage de requête structuré avancé


Supposons que nous ayons une table appelée "Personnes" et une autre table appelée
"Commandes_Produits". Nous donnerons les alias de table de "p" et "po" respectivement.

Nous voulons maintenant répertorier toutes les commandes dont "Ola Hansen" est responsable.

Nous utilisons la déclaration SELECT suivante :

SELECT po.OrderID, p.LastName, p.FirstName

DE Persons COMME p,

Commandes_Produits EN po

WHERE p.LastName='Hansen'

OÙ p.FirstName='Ola'

La même instruction SELECT sans alias :

SÉLECTIONNER Product_Orders.OrderID, Persons.LastName


Persons.FirstName

DE Personnes,

Product_Orders

OÙ Persons.LastName='Hansen'

OÙ Persons.FirstName='Ola'

Comme vous le verrez dans les deux instructions SELECT ci-dessus, les alias peuvent rendre les requêtes
plus facile à écrire et à lire.

Jointures SQL

Les jointures SQL sont utilisées pour interroger des données provenant de deux tables ou plus, sur la base d'un

relation entre certaines colonnes dans ces tables.

SQL JOIN
Le mot clé JOIN est utilisé dans une instruction SQL pour interroger des données provenant de deux ou plusieurs

tables, basées sur une relation entre certaines colonnes de ces tables.

Les tables d'une base de données sont souvent liées entre elles par des clés.

Utiliser le langage de requête structuré avancé


Une clé primaire est une colonne (ou une combinaison de colonnes) avec une valeur unique pour
chaque ligne. Chaque valeur de clé primaire doit être unique au sein de la table. Le but
est de lier les données ensemble, à travers les tables, sans répéter toutes les données dans chaque
table.

Regardez le tableau "Personnes" :

P_Id LastName Prénom Adresse Ville

1 Hansen Bonjour Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Notez que la colonne "P_Id" est la clé primaire dans la table "Persons". Cela signifie
de sorte que deux lignes ne peuvent avoir le même P_Id. Le P_Id distingue deux personnes
même s'ils ont le même nom.

Utiliser le langage de requête structuré avancé


Ensuite, nous avons la table "Commandes" :

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Notez que la colonne "O_Id" est la clé primaire dans la table "Orders" et que la
"P_Id" fait référence aux personnes dans la table "Persons" sans utiliser leurs
noms.

Remarquez que la relation entre les deux tables ci-dessus est la colonne "P_Id".

Différents JOINs SQL


Avant de continuer avec des exemples, nous allons énumérer les types de JOIN que vous pouvez utiliser,
et les différences entre eux.

JOIN: Return rows when there is at least one match in both tables

LEFT JOIN : Retournez toutes les lignes de la table de gauche, même s'il n'y a pas
correspondances dans la table de droite

JOINTURE À DROITE : Retourne toutes les lignes de la table de droite, même s'il n'y a pas
correspondances dans la table de gauche

JOIN COMPLET : Retourner les lignes lorsqu'il y a une correspondance dans l'une des tables

Mot-clé SQL INNER JOIN

Mot-clé SQL INNER JOIN


Le mot-clé INNER JOIN retourne des lignes lorsqu'il y a au moins une correspondance dans les deux.
tables.
Utilisation du langage de requête structuré avancé
Syntaxe SQL INNER JOIN

SELECT nom_de_colonne(s)

DE table_name1

JOIN interne table_name2

SUR table_name1.column_name=table_name2.column_name

PS : INNER JOIN est la même chose que JOIN.

Exemple de SQL INNER JOIN

La table des "Personnes" :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

La table "Commandes" :

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Nous voulons maintenant lister toutes les personnes ayant des commandes.

Nous utilisons la déclaration SELECT suivante :

Utilisation du langage de requête structuré avancé


SELECT Personnes.NomDeFamille, Personnes.Prénom, Commandes.NuméroDeCommande

DE Personnes

JOIN INTERNE Commandes

ON Persons.P_Id=Orders.P_Id

ORDRE PAR Persons.LastName

Le jeu de résultats ressemblera à ceci :

LastName FirstName OrderNo

Hansen Bonjour 22456

Hansen Salut 24562

Pettersen Kari 77895

Pettersen Kari 44678

Le mot-clé INNER JOIN retourne des lignes lorsqu'il y a au moins une correspondance dans les deux.
tables. S'il y a des lignes dans "Persons" qui n'ont pas de correspondances dans "Orders", celles-ci
les lignes ne seront PAS listées.

Mot-clé SQL LEFT JOIN

Mot-clé SQL LEFT JOIN

Le mot-clé LEFT JOIN retourne toutes les lignes de la table de gauche (table_name1), même
s'il n'y a pas de correspondances dans la table de droite (table_name2).

Syntaxe SQL LEFT JOIN

SELECT nom_de_colonne(s)

DE table_name1
JOINTURE GAUCHE table_name2
Utilisation du langage de requête structuré avancé
SUR table_name1.column_name=table_name2.column_name

PS : Dans certaines bases de données, LEFT JOIN est appelé LEFT OUTER JOIN.

Exemple de SQL LEFT JOIN

La table "Personnes" :

P_Id LastName FirstName Address City

Timothée
1 Hansen Bonjour Sandnes
10

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

La table "Commandes" :

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Nous voulons maintenant lister toutes les personnes et leurs commandes - le cas échéant, à partir des tables.
au-dessus.

Nous utilisons la déclaration SELECT suivante :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

DE Personnes
JOIN GAUCHE Commandes

Utilisation du langage de requête structuré avancé


SUR Persons.P_Id=Orders.P_Id

ORDONNER PAR Persons.LastName

The result-set will look like this:

LastName FirstName OrderNo

Hansen Bonjour 22456

Hansen Bonjour 24562

Pettersen Kari 77895

Pettersen Kari 44678

Svendson Tove

Le mot-clé LEFT JOIN renvoie toutes les lignes de la table de gauche (Personnes), même si
il n'y a pas de correspondances dans la table de droite (Commandes).

Mot-clé SQL RIGHT JOIN

Mot-clé SQL RIGHT JOIN

Le mot-clé RIGHT JOIN renvoie toutes les lignes de la table de droite (table_name2),
même s'il n'y a pas de correspondances dans la table de gauche (table_name1).

Syntaxe de la jointure à droite SQL

SÉLECTIONNER le nom_de_colonne(s)

DE table_name1

JOINTURE DROITE table_name2

SUR table_name1.column_name=table_name2.column_name

PS : Dans certaines bases de données, le RIGHT JOIN est appelé RIGHT OUTER JOIN.

Exemple de JOIN DROIT SQL

La table "Personnes"

Utilisation du langage de requête structuré avancé


P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes


Le
3 Pettersen Kari Storgt 20 Stavanger

"Orders" table:

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Nous voulons maintenant lister toutes les commandes contenant des personnes - le cas échéant, à partir de
tables ci-dessus.

Nous utilisons la déclaration SELECT suivante :

SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo

DE Personnes
JOINTURE DROITE Commandes

ON Persons.P_Id=Orders.P_Id

ORDONNER PAR Persons.LastName

Le jeu de résultats ressemblera à ceci :

Utiliser le langage de requête structuré avancé


LastName FirstName OrderNo

Hansen Bonjour 22456

Hansen Salut 24562

Pettersen Kari 77895

Pettersen Kari 44678

34764

Le mot-clé RIGHT JOIN renvoie toutes les lignes de la table de droite (Commandes),
même s'il n'y a pas de correspondances dans la table de gauche (Personnes).

Mot clé SQL FULL JOIN

Mot-clé SQL FULL JOIN


Le mot-clé FULL JOIN renvoie des lignes lorsqu'il y a une correspondance dans l'une des tables.

Syntaxe de la jointure complète SQL

SÉLECTIONNER le nom_de_la_colonne(s)

DE table_name1
JOINDRE ENTIÈREMENT table_name2

SUR table_name1.column_name=table_name2.column_name

Exemple de FULL JOIN SQL

La table "Personnes" :

P_Id LastName FirstName Adresse Ville

1 Hansen Salut Timoteivn 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

Utilisation du langage de requête structuré avancé


3 Pettersen Kari Storgt 20 Stavanger

La table "Commandes" :

O_Id OrderNo P_Id

1 77895 3

2 44678 3

3 22456 1

4 24562 1

5 34764 15

Maintenant, nous voulons lister toutes les personnes et leurs commandes, et toutes les commandes avec leurs
personnes.

Nous utilisons la déclaration SELECT suivante :

SELECT Persons.NomDeFamille, Persons.Prénom, Orders.NuméroDeCommande

DE Personnes

FULL JOIN Commandes

ON Persons.P_Id=Orders.P_Id

ORDONNER PAR Persons.LastName

Le jeu de résultats ressemblera à ceci :

NomDeFamille FirstName OrderNo

Hansen Bonjour 22456

Hansen Bonjour 24562

Pettersen Kari 77895

Utiliser le langage de requête structuré avancé


Pettersen Kari 44678

Svendson Tove

34764

Le mot-clé FULL JOIN retourne toutes les lignes de la table de gauche (Personnes), et
toutes les lignes de la table de droite (Commandes). S'il y a des lignes dans "Personnes" qui ne
n'ont pas de correspondances dans "Commandes", ou s'il y a des lignes dans "Commandes" qui n'ont pas
les correspondances dans "Personnes", ces lignes seront également listées.

Opérateur SQL UNION

L'opérateur SQL UNION combine deux ou plusieurs instructions SELECT.

L'opérateur SQL UNION


L'opérateur UNION est utilisé pour combiner l'ensemble des résultats de deux ou plusieurs SELECT
déclarations.

Remarquez que chaque instruction SELECT dans l'UNION doit avoir le même
nombre de colonnes. Les colonnes doivent également avoir des types de données similaires. Aussi, le
les colonnes dans chaque instruction SELECT doivent être dans le même ordre.

Syntaxe de l'UNION SQL

SELECT nom_de_colonne(s) À PARTIR DE nom_de_table1

UNION
SÉLECTIONNER nom_de_colonne(s) FROM nom_de_table2

Remarque : L'opérateur UNION sélectionne uniquement des valeurs distinctes par défaut. Pour autoriser
valeurs dupliquées, utilisez UNION ALL.

Syntaxe SQL UNION ALL

SÉLECTIONNER nom_de_colonne(s) À PARTIR DE nom_de_table1

UNION TOUT
SÉLECTIONNER le nom_de_colonne(s) À PARTIR de nom_de_table2

Utiliser le langage de requête structuré avancé


PS : Les noms de colonnes dans le résultat d'un UNION sont toujours égaux à
noms de colonnes dans la première instruction SELECT dans l'UNION.

Exemple de SQL UNION

Regardez les tableaux suivants :

"Employees_Norway":

E_ID E_Name

01 Hansen, Ola

02 Svendson, Tove

03 Svendson, Stephen

04 Pettersen, Kari

"Employees_USA":

E_ID E_Name

01 Turner, Sally

02 Kent, Clark

03 Svendson, Stephen

04 Scott, Stephen

Nous voulons maintenant lister tous les différents employés en Norvège et aux États-Unis.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER E_Nom DE Employés_Norvège

UNION
SÉLECTIONNER E_Nom DE Employés_Etats-Unis

L'ensemble des résultats ressemblera à ceci :

Utiliser le langage de requête structuré avancé


E_Name

Hansen, Ola

Svendson, Tove

Svendson, Stephen

Pettersen, Kari

Turner, Sally

Kent, Clark

Scott, Stephen

Remarque : cette commande ne peut pas être utilisée pour lister tous les employés en Norvège et aux États-Unis.
l'exemple ci-dessus nous avons deux employés avec des noms identiques, et seulement un de
Ils seront listés. La commande UNION sélectionne uniquement les valeurs distinctes.

Exemple de SQL UNION ALL


Maintenant, nous voulons lister tous les employés en Norvège et aux États-Unis :

SÉLECTIONNER E_Nom DE Employés_Norvège

UNION TOUT

SÉLECTIONNER E_Nom DE Employés_EU

Result

E_Name

Hansen, Ola

Svendson, Tove

Svendson, Stephen

Utilisation du langage de requête structuré avancé


Pettersen, Kari

Turner, Sally

Kent, Clark

Svendson, Stephen

Scott, Stephen

Instruction SQL SELECT INTO


L'instruction SQL SELECT INTO peut être utilisée pour créer des copies de sauvegarde de
tables.

L'instruction SQL SELECT INTO

L'instruction SELECT INTO sélectionne des données d'une table et les insère dans une
table différente.

L'instruction SELECT INTO est le plus souvent utilisée pour créer des copies de sauvegarde de
tables.

Syntaxe SQL SELECT INTO


Nous pouvons sélectionner toutes les colonnes dans la nouvelle table :

SÉLECTIONNER *

DANS nouveau_nom_table [DANS base_de_données_externe]

DE ancien_nom_table

Ou nous pouvons sélectionner uniquement les colonnes que nous voulons dans la nouvelle table :

SÉLECTIONNER le nom_de_la_colonne(s)

DANS new_table_name [DANS externaldatabase]

DE ancien_nom_table

Utiliser le langage de requête structuré avancé


Exemple de SQL SELECT INTO
Faire une copie de sauvegarde - Maintenant, nous voulons faire une copie exacte des données dans notre
Table des "Personnes".

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER *

DANS Persons_Backup

DE Personnes

Nous pouvons également utiliser la clause IN pour copier la table dans une autre base de données :

SÉLECTIONNER *

DANS Persons_Backup DANS 'Backup.mdb'

DE Personnes

Nous pouvons également copier seulement quelques champs dans la nouvelle table :

SÉLECTIONNER NomDeFamille, Prénom

DANS Persons_Backup

DE Personnes

SQL SELECT INTO - Avec une clause WHERE


Nous pouvons également ajouter une clause WHERE.

La déclaration SQL suivante crée une table "Persons_Backup" contenant uniquement les
personnes qui vivent dans la ville "Sandnes" :

SÉLECTIONNER NomDeFamille, Prénom

Utiliser le langage de requête structuré avancé


DANS Persons_Backup

DE Personnes

OÙ Ville='Sandnes'

SQL SELECT INTO - Tables jointes


Il est également possible de sélectionner des données à partir de plusieurs tables.

L'exemple suivant crée une table « Persons_Order_Backup » contenant des données


des deux tableaux "Personnes" et "Commandes" :

SÉLECTIONNER Persons.LastName, Orders.OrderNo

DANS Persons_Order_Backup

DE Personnes

JOIN INTERNE Commandes

ON Persons.P_Id=Orders.P_Id

Fonctions SQL
SQL a de nombreuses fonctions intégrées pour effectuer des calculs sur les données.

Fonctions d'agrégation SQL

Les fonctions d'agrégation SQL retournent une seule valeur, calculée à partir des valeurs dans un
colonne.

Fonctions d'agrégation utiles :

AVG() - Renvoie la valeur moyenne

COUNT() - Renvoie le nombre de lignes

PREMIER() - Renvoie la première valeur

Utiliser le langage de requête structuré avancé


DERNIER() - Renvoie la dernière valeur

MAX() - Renvoie la plus grande valeur

MIN() - Renvoie la plus petite valeur

SOMME() - Renvoie la somme

Fonctions scalaires SQL

Les fonctions scalaires SQL renvoient une seule valeur, basée sur la valeur d'entrée.

Fonctions scalaires utiles :

UCASE() - Convertit un champ en majuscules

LCASE() - Convertit un champ en minuscules

MID() - Extraire des caractères d'un champ de texte

LEN() - Renvoie la longueur d'un champ de texte

ROUND() - Arrondit un champ numérique au nombre de décimales spécifié

MAINTENANT() - Renvoie la date et l'heure système actuelles

FORMAT() - Formate la façon dont un champ doit être affiché

Astuce : Les fonctions agrégées et les fonctions scalaires seront expliquées en détail.
dans les chapitres suivants.

Fonction SQL AVG()

La fonction AVG()

La fonction AVG() retourne la valeur moyenne d'une colonne numérique.

Syntaxe SQL AVG()

SELECT AVG(column_name) FROM table_name

Exemple de SQL AVG()


Utiliser le langage de requête structuré avancé
Nous avons la table « Commandes » suivante :

O_Id OrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Now we want to find the average value of the "OrderPrice" fields.

Nous utilisons la déclaration SQL suivante :

SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

Le jeu de résultats ressemblera à ceci :

OrderAverage

950

Nous voulons maintenant trouver les clients qui ont une valeur OrderPrice supérieure à
la valeur moyenne du prix de commande.

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER Client DE Commandes

OÙ OrderPrice > (SÉLECTIONNER AVG(OrderPrice) DE Orders)

Le jeu de résultats ressemblera à ceci :

Client
Utiliser le langage de requête structuré avancé
Hansen

Nilsen

Jensen

Fonction SQL COUNT()

La fonction COUNT() renvoie le nombre de lignes correspondant à un spécifié


critères.

Syntaxe SQL COUNT(column_name)

La fonction COUNT(column_name) renvoie le nombre de valeurs (NULL


les valeurs ne seront pas comptées) de la colonne spécifiée :

SELECT COUNT(nom_colonne) FROM nom_table

Syntaxe SQL COUNT(*)

La fonction COUNT(*) retourne le nombre d'enregistrements dans une table :

SELECT COUNT(*) FROM nom_table

Syntaxe SQL COUNT(DISTINCT nom_colonne)

La fonction COUNT(DISTINCT column_name) renvoie le nombre de valeurs distinctes


valeurs de la colonne spécifiée :

SELECT COUNT(DISTINCT nom_de_colonne) FROM nom_de_table

Remarque : COUNT(DISTINCT) fonctionne avec ORACLE et Microsoft SQL Server, mais


not with Microsoft Access.

Exemple de SQL COUNT(column_name)

Nous avons la table "Commandes" suivante :

Utilisation du langage de requête structuré avancé


O_Id OrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Nous voulons maintenant compter le nombre de commandes du "Client Nilsen".

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER COUNT(Client) COMME CustomerNilsen DE Commandes

OÙ Client='Nilsen'

Le résultat de l'instruction SQL ci-dessus sera 2, car le client Nilsen a


a fait 2 commandes au total :

ClientNilsen

Exemple de SQL COUNT(*)

Si nous omettons la clause WHERE, comme ceci :

SELECT COUNT(*) AS NumberOfOrders FROM Orders

Le jeu de résultats ressemblera à ceci :

NumberOfOrders

Utilisation du langage de requête structuré avancé


6

quel est le nombre total de lignes dans le tableau.

Exemple de SQL COUNT(DISTINCT nom_de_colonne)

Nous voulons maintenant compter le nombre de clients uniques dans la table "Commandes".

Nous utilisons la déclaration SQL suivante :

SELECT COUNT(DISTINCT Client) AS NombreDeClients


DE Commandes

Le jeu de résultats ressemblera à ceci :

NumberOfCustomers

quel est le nombre de clients uniques (Hansen, Nilsen et Jensen) dans le


table des "Commandes".

Fonction SQL FIRST()

La fonction FIRST()

La fonction FIRST() renvoie la première valeur de la colonne sélectionnée.

Syntaxe de SQL FIRST()

SÉLECTIONNER PREMIER(column_name) DE table_name

Exemple de SQL FIRST()

Nous avons le tableau "Commandes" suivant :

O_Id OrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

Utilisation du langage de requête structuré avancé


2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Maintenant, nous voulons trouver la première valeur de la colonne "OrderPrice".

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER PREMIER(OrderPrice) COMME PremierPrixCommande DE Commandes

L'ensemble des résultats ressemblera à ceci :

FirstOrderPrice

1000

Fonction SQL LAST()

La fonction LAST()

La fonction LAST() renvoie la dernière valeur de la colonne sélectionnée.

Syntaxe de SQL LAST()

SÉLECTIONNER DERNIER(nom_de_colonne) DE nom_de_table

Exemple de SQL LAST()

Nous avons la table "Commandes" suivante :

O_Id OrderDate OrderPrice Client

Utiliser le langage de requête structuré avancé


1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Maintenant, nous voulons trouver la dernière valeur de la colonne "OrderPrice".

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER DERNIER(OrderPrice) COMME DernierPrixDeCommande DE Commandes

Le jeu de résultats ressemblera à ceci :

LastOrderPrice

100

Fonction SQL MAX()

La fonction MAX()

La fonction MAX() retourne la plus grande valeur de la colonne sélectionnée.

Syntaxe de SQL MAX()

SÉLECTIONNEZ MAX(nom_colonne) FROM nom_table

Exemple de SQL MAX()

Nous avons le tableau suivant "Commandes" :

O_Id OrderDate OrderPrice Client

Utiliser le langage de requête structuré avancé


1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Nous voulons maintenant trouver la plus grande valeur de la colonne "OrderPrice".

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER MAX(OrderPrice) COMME LargestOrderPrice DE Orders

Le jeu de résultats ressemblera à ceci :

LargestOrderPrice

2000

Fonction SQL MIN()

La fonction MIN()

La fonction MIN() retourne la plus petite valeur de la colonne sélectionnée.

Syntaxe de SQL MIN()

SELECT MIN(nom_de_colonne) FROM nom_de_table

Exemple de SQL MIN()

Nous avons le tableau suivant "Commandes" :

Utiliser le langage de requête structuré avancé


O_Id OrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Maintenant, nous voulons trouver la plus petite valeur de la colonne "OrderPrice".

Nous utilisons la déclaration SQL suivante :

SELECT MIN(PriceCommande) AS PrixCommandeLePlusPetit DE


Orders

Le jeu de résultats aura l'apparence suivante :

SmallestOrderPrice

100

Fonction SQL SUM()

La fonction SUM()

La fonction SUM() renvoie la somme totale d'une colonne numérique.

Syntaxe de SQL SUM()

SELECT SUM(nom_de_colonne) FROM nom_de_table

Exemple de SQL SUM()


Utilisation du langage de requête structuré avancé
Nous avons la table "Commandes" suivante :

O_Id OrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Nous voulons maintenant trouver la somme de tous les champs "OrderPrice".

Nous utilisons la déclaration SQL suivante :

SÉLECTIONNER SOMME(OrderPrice) COMME OrderTotal DE Commandes

Le jeu de résultats ressemblera à ceci :

OrderTotal

5700

Instruction SQL GROUP BY


Les fonctions d'agrégation nécessitent souvent une instruction GROUP BY supplémentaire.

La déclaration GROUP BY

L'instruction GROUP BY est utilisée en conjonction avec les fonctions agrégées pour
regrouper le jeu de résultats par une ou plusieurs colonnes.

Syntaxe SQL GROUP BY

SÉLECTIONNEZ nom_colonne, fonction_aggrégée(nom_colonne)


Utiliser le langage de requête structuré avancé
DE table_name

Où nom_de_colonne opérateur valeur

GROUPE PAR nom_de_colonne

Exemple de GROUP BY en SQL

Nous avons le tableau 'Commandes' suivant :

O_IdOrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen

5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Maintenant, nous voulons trouver le montant total (commande totale) de chaque client.

Nous devrons utiliser l'instruction GROUP BY pour regrouper les clients.

Nous utilisons la requête SQL suivante :

SÉLECTIONNER Client, SOMME( PrixDeCommande) DE Commandes

GROUPER PAR Client

Le jeu de résultats ressemblera à ceci :

Client SUM(PriceOrder)

Hansen 2000

Using Advanced Structured Query Language


Nilsen 1700

Jensen 2000

Voyons ce qui se passe si nous omettons la clause GROUP BY :

SÉLECTIONNER Client, SOMME(PrixCommande) DE Commandes

Le jeu de résultats ressemblera à ceci :

Client SOMME(OrdrePrix)

Hansen 5700

Nilsen 5700

Hansen 5700

Hansen 5700

Jensen 5700

Nilsen 5700

Le jeu de résultats ci-dessus n'est pas ce que nous voulions.

Explication des raisons pour lesquelles la déclaration SELECT ci-dessus ne peut pas être utilisée : La SELECT
La déclaration ci-dessus a deux colonnes spécifiées (Client et SOMME(PriceCommande).
La "SUM(OrderPrice)" retourne une seule valeur (c'est-à-dire le montant total de la
"Colonne OrderPrice", tandis que "Customer" renvoie 6 valeurs (une valeur pour chaque ligne)
dans la table "Commandes"). Cela ne nous donnera donc pas le bon résultat. Cependant,
vous avez vu que l'instruction GROUP BY résout ce problème.

GROUPE PAR Plus D'une Colonne


Nous pouvons également utiliser l'instruction GROUP BY sur plus d'une colonne, comme ceci :

SÉLECTIONNER Client, DateDeCommande, SOMME(PrixCommande) DE


Commandes

GROUP BY Client, DateDeCommande


Utiliser le langage de requête structuré avancé
Clause HAVING SQL

La clause HAVING

La clause HAVING a été ajoutée à SQL parce que le mot-clé WHERE ne pouvait pas
être utilisé avec des fonctions d'agrégation.

Syntaxe SQL HAVING

SÉLECTIONNER nom_de_colonne, fonction_agrégée(nom_de_colonne)

DE nom_de_table

OÙ column_name opérateur valeur

GROUPE PAR nom_colonne

AYANT fonction_aggrégée(nom_de_colonne) opérateur


value

Exemple SQL HAVING

Nous avons la table suivante 'Commandes' :

O_Id OrderDate OrderPrice Client

1 2008/11/12 1000 Hansen

2 2008/10/23 1600 Nilsen

3 2008/09/02 700 Hansen

4 2008/09/03 300 Hansen


Utiliser le langage de requête structuré avancé
5 2008/08/30 2000 Jensen

6 2008/10/04 100 Nilsen

Nous voulons maintenant vérifier si l'un des clients a un total de commandes inférieur à 2000.

Nous utilisons la déclaration SQL suivante :

SELECT Client, SUM(PrixCommande) FROM Commandes

GROUPE PAR Client

AYANT SOMME(OrderPrice)<2000

L'ensemble des résultats aura l'apparence suivante :

Client SOMME(OrdrePrix)

Nilsen 1700

Nous voulons maintenant savoir si les clients "Hansen" ou "Jensen" ont un total de commandes de
plus de 1500.

Nous ajoutons une clause WHERE ordinaire à l'instruction SQL :

SÉLECTIONNER Client, SOMME(PrixCommande) DE Commandes

OÙ Client='Hansen' OU Client='Jensen'

GROUPE PAR Client

AVOIR SOMME(OrderPrice)>1500

L'ensemble des résultats aura l'apparence suivante :

Client SOMME(OrdrePrix)

Utiliser le langage de requête structuré avancé


Hansen 2000

Jensen 2000

Fonction SQL UCASE()

La fonction UCASE()

La fonction UCASE() convertit la valeur d'un champ en majuscules.

Syntaxe de SQL UCASE()

SÉLECTIONNER UPPER(nom_colonne) DE nom_table

Exemple de SQL UCASE()

Nous avons la table "Personnes" suivante :

P_Id NomDeFamillePrénom Adresse City

1 Hansen Ola Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Nous voulons maintenant sélectionner le contenu des colonnes "Nom" et "Prénom".


au-dessus, et convertir la colonne "LastName" en majuscules.

Nous utilisons la déclaration SELECT suivante :

SELECT UPPER(NomDeFamille) as NomDeFamille, Prénom


DE Personnes

Le jeu de résultats ressemblera à ceci :

LastName FirstName

HANSEN Bonjour

Utilisation du langage de requête structuré avancé


SVENDSON Tove

PETTERSEN Kari

Fonction SQL LCASE()

La fonction LCASE()

La fonction LCASE() convertit la valeur d'un champ en minuscules.

Syntaxe LCASE() SQL

SÉLECTIONNER LCASE(nom_de_colonne) À PARTIR DE nom_de_table

Exemple de SQL LCASE()

Nous avons la table "Personnes" suivante :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Nous voulons maintenant sélectionner le contenu des colonnes "NomDeFamille" et "Prénom".


above, and convert the "LastName" column to lowercase.

Nous utilisons la déclaration SELECT suivante :

SELECT LCASE(LastName) as LastName, FirstName FROM


Personnes

Le jeu de résultats ressemblera à ceci :

Utilisation du langage de requête structuré avancé


LastName FirstName

hansen Salut

svendson Tove

Pettersen Kari

Fonction SQL MID()

La fonction MID()

La fonction MID() est utilisée pour extraire des caractères d'un champ de texte.

Syntaxe de SQL MID()

SÉLECTIONNER MID(nom_colonne,début[,longueur]) À PARTIR DE nom_table

Paramètre Description

column_nameRequired. The field to extract characters from.

commencer Requis. Spécifie la position de départ (commence à 1).

length Facultatif. Le nombre de caractères à retourner. Si


omise, la fonction MID() renvoie le reste du texte.

Exemple de SQL MID()

Nous avons la table "Personnes" suivante :

P_Id LastName FirstName Adresse Ville

1 Hansen Bonjour Timothée 10 Sandnes

Utiliser le langage de requête structuré avancé


2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Nous voulons maintenant extraire les quatre premiers caractères de la colonne "Ville" ci-dessus.

Nous utilisons la déclaration SELECT suivante :

Sélectionner MID(Ville,1,4) comme PetiteVille de Personnes

L'ensemble de résultats ressemblera à ceci :

PetiteVille

Sable

Sable

Stav

Fonction SQL LEN()

La fonction LEN()

La fonction LEN() renvoie la longueur de la valeur dans un champ de texte.

Syntaxe de SQL LEN()

SÉLECTIONNER LEN(nom_de_colonne) DE nom_de_table

Exemple de SQL LEN()

Nous avons la table "Personnes" suivante :


Utilisation du langage de requête structuré avancé
P_IdLastName Prénom Adresse Ville

1 Hansen Ola Timothée 10 Sandnes

2 Svendson Tove Borgvn 23 Sandnes

3 Pettersen Kari Storgt 20 Stavanger

Nous voulons maintenant sélectionner la longueur des valeurs dans la colonne "Adresse" ci-dessus.

Nous utilisons la déclaration SELECT suivante :

SELECT LEN(Adresse) as LongueurDeLAdresse FROM Persons

Le jeu de résultats ressemblera à ceci :

LengthOfAddress

12

Fonction SQL ROUND()

La fonction ROUND()

La fonction ROUND() est utilisée pour arrondir un champ numérique au nombre de


décimales spécifiés.

Syntaxe de SQL ROUND()

SÉLECTIONNER ARRONDI(nom_colonne,décimales) DE nom_table

Paramètre Description

column_nameRequired. The field to round.


Utilisation du langage de requête structuré avancé
décimales Requis. Spécifie le nombre de décimales à être
retourné.

Exemple de SQL ROUND()

Nous avons le tableau "Produits" suivant :

Prod_Id ProductNameUnit UnitPrice

1 Jarlsberg 1000 g 10.45

2 Mascarpone 1000 g 32,56

3 Gorgonzola 1000 g 15,67

Nous voulons maintenant afficher le nom du produit et le prix arrondi au nombre entier le plus proche.
entier.

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER NomDuProduit, ARRONDI(PrixUnitaire,0) comme PrixUnitaire


DE Produits

L'ensemble des résultats ressemblera à ceci :

ProductName UnitPrice

Jarlsberg 10

Mascarpone 33

Gorgonzola 16

Utilisation du langage de requête structuré avancé


Fonction SQL NOW()

La fonction NOW()

La fonction NOW() renvoie la date et l'heure actuelles du système.

Syntaxe de SQL NOW()

SÉLECTIONNER MAINTENANT() DE nom_de_table

Exemple de SQL NOW()

Nous avons la table "Produits" suivante :

Prod_Id ProductName Unité PrixUnitaire

1 Jarlsberg 1000 g 10.45

2 Mascarpone 1000 g 32,56

3 Gorgonzola 1000 g 15,67

Nous voulons maintenant afficher les produits et les prix à la date d'aujourd'hui.

Nous utilisons la déclaration SELECT suivante :

Sélectionnez NomDuProduit, PrixUnitaire, Maintenant() comme DatePer FROM


Produits

L'ensemble des résultats ressemblera à ceci :

ProductName UnitPrice PerDate

Jarlsberg 10.45 10/07/2008 11:25:02 AM

Mascarpone 32.56 10/7/2008 11:25:02 AM

Gorgonzola 15.67 10/7/2008 11:25:02 AM

Utiliser le Langage de Requête Structuré Avancé


Fonction FORMAT() SQL

La fonction FORMAT()
La fonction FORMAT() est utilisée pour formater la manière dont un champ doit être affiché.

Syntaxe de FORMAT() en SQL

SÉLECTIONNER FORMAT(column_name, format) DE table_name

Paramètre Description

column_name Required. The field to be formatted.

format requis. Spécifie le format.

Exemple de FORMAT() SQL

Nous avons la table "Produits" suivante :

Prod_Id ProductName Unité PrixUnitaire

1 Jarlsberg 1000 g 10h45

2 Mascarpone 1000 g 32,56

3 Gorgonzola 1000 g 15,67

Maintenant, nous voulons afficher les produits et les prix à la date d'aujourd'hui (avec la date d'aujourd'hui

date affichée au format suivant "AAAA-MM-JJ".

Nous utilisons la déclaration SELECT suivante :

SÉLECTIONNER NomDuProduit, PrixUnitaire, FORMAT(Aujourd'hui(),'AAAA-MM-


DD') en tant que PerDate

DE Produits

Utiliser le langage de requête structuré avancé


Le jeu de résultats ressemblera à ceci :

ProductName PrixUnitaire ParDate

Jarlsberg 10.45 2008-10-07

Mascarpone 32,56 2008-10-07

Gorgonzola 15,67 2008-10-07

Référence SQL rapide

SQL Syntaxe
Déclaration

ET / OU SÉLECTIONNER le(s) nom(s) de colonne

DE nom_de_table
CONDITION WHERE
CONDITION ET|OU

ALTÉRER MODIFIER LA TABLE table_name


TABLE AJOUTER nom_de_colonne type_de_données

ou

MODIFIER LA TABLE nom_de_table


SUPPRIMER LA COLONNE column_name

AS (alias) SELECT nom_colonne AS alias_colonne


DE table_name

ou

SÉLECTIONNER nom_de_colonne
DE table_name COMME table_alias

ENTRE SÉLECTIONNER nom_de_colonne(s)


DE nom_de_table
Où nom_de_colonne
Utiliser le langage de requête structuré avancé
ENTRE la valeur1 ET la valeur2

CRÉER CRÉER UNE BASE DE DONNÉES nom_de_la_base_de_données

BASE DE DONNÉES
E

CRÉER UNE TABLE table_name


TABLE (
nom_de_colonne1 type_de_données
nom_de_colonne2 type_de_données,
nom_colonne2 type_de_données
...
)

CRÉER CRÉER UN INDEX nom_de_l_index


INDEX SUR table_nom (colonne_nom)

ou

CRÉER UN INDEX UNIQUE index_name


SUR table_name (column_name)

CRÉER UNE VUE view_name COMME


VUE SÉLECTIONNER le_nom_de_colonne(s)

DE nom_table
OÙ condition

SUPPRIMERSUPPRIMER DE table_name
OÙ some_column=some_value

ou

SUPPRIMER DE table_name
(Remarque : Supprime toute la table !!)

SUPPRIMER * DE nom_de_table
(Remarque: Supprime l'intégralité du tableau !!)

SUPPRIMER LA BASE DE DONNÉES nom_de_la_base_de_données


LAISSER TOMBER
BASE DE DONNÉES
E

SUPPRIMER INDEX table_name.index_name (SQL Server)


LAISSER TOMBER
Utilisation du langage de requête structuré avancé
INDEX SUPPRIMER L'INDEX index_name SUR table_name (MS
Accès)
SUPPRIMER L'INDEX index_name (DB2/Oracle)
MODIFIER LA TABLE nom_table
SUPPRIMER INDEX index_name (MySQL)

SUPPRIMERSUPPRIMER TABLE table_name


TABLE

GROUPE PAR SÉLECTIONNER nom_de_la_colonne,

fonction_agrégée(nom_colonne)
DE nom_de_table
OÙ nom_de_colonne opérateur valeur
GROUPE PAR nom_de_colonne

AVOIR SÉLECTIONNER nom_colonne,


fonction_agregat(nom_colonne)
DE nom_de_table
OÙ nom_de_colonne opérateur valeur
GROUPE PAR nom_colonne
AVOIR fonction_agrégée(nom_de_colonne)
valeur opérateur

DANS SÉLECTIONNER le nom_de_colonne(s)

DE table_name
OÙ nom_de_colonne
DANS (valeur1,valeur2,..)

INSÉRER INSÉRER DANS le_nom_de_table


DANS VALEURS (valeur1, valeur2, valeur3,....)

ou

INSÉRER DANS table_name


(column1, column2, column3,...)
VALEURS (valeur1, valeur2, valeur3,....)

INTÉRIEUR SELECT nom_de_colonne(s)


Utiliser le langage de requête structuré avancé
REJOINDREDE table_name1
JOIN interne table_name2
ON
table_name1.column_name=table_name2.column_n
prénom

LEFT JOIN SÉLECTIONNER nom_de_colonne(s)


DE table_name1
LEFT JOIN table_name2
SUR
table_name1.column_name=table_name2.column_n
nom

DROIT SÉLECTIONNER nom_de_colonne(s)


JOINDRE DE table_name1
JOIGNEZ DROIT table_name2
SUR
table_name1.column_name=table_name2.column_n
nom

FULL JOIN SÉLECTIONNER nom_de_colonne(s)


DE table_name1
FULL JOIN nom_table2
SUR
table_name1.column_name=table_name2.column_n
nom

LIKE SÉLECTIONNER le nom_de_colonne(s)

DE nom_de_table
OÙ column_name LIKE motif

ORDONNER PAR SÉLECTIONNER nom_de_colonne(s)


DE nom_de_table
ORDER BY nom_de_colonne [ASC|DESC]

SÉLECTIONNER le nom_de_colonne(s)
SÉLECTIONNER
DE nom_de_table

SÉLECTIONNER * SÉLECTIONNER *

DE nom_table

SÉLECTIONNER DISTINCT colonne_nom(s)


SÉLECTIONNER
Utilisation du langage de requête structuré avancé
DISTINCT DE nom_de_table

SÉLECTIONNER *
SÉLECTIONNER
DANS DANS nouveau_nom_de_table [DANS base_de_données_externe]
DE old_table_name

ou
SÉLECTIONNER le_nom_de_colonne(s)
DANS nouveau_nom_de_table [DANS externaldatabase]
DE old_table_name

SÉLECTIONNER TOP nombre|pourcentage nom_de_colonne(s)


SÉLECTIONNER
Haut DE nom_de_table

TRUNCAT TRUNCATE TABLE nom_de_table


E TABLE

UNION SÉLECTIONNER le_nom_de_colonne(s) DE table_nom1


UNION
SÉLECTIONNER nom_de_colonne(s) DE table_nom2

UNION SÉLECTIONNER nom_de_colonne(s) À PARTIR DE nom_de_table1

TOUT UNION TOUT


SÉLECTIONNER nom_de_colonne(s) DE nom_de_table2

METTRE À JOUR METTRE À JOUR nom_de_table


DEFINIR colonne1=valeur, colonne2=valeur,...
OÙ some_column=some_value

OÙ SÉLECTIONNER le nom_de_colonne(s)

DE nom_de_table
OÙ nom_colonne opérateur valeur

Utilisation du langage de requête structuré avancé


Référence
1. Fondamentaux de la conception de bases de données relationnelles

2. Fondamentaux de SQL Server 2005

3. Référence SQL de base

4. www.Microsoft .com

Utiliser le Langage de requête structuré avancé

Vous aimerez peut-être aussi