2. Télécharger ce cours sur www.krymo.com
Tutoriel SQL
SQL est un langage standard d'accès aux bases de données.
Notre tutoriel SQL va vous apprendre comment utiliser SQL pour accéder et manipuler des données dans:
MySQL, SQL Server, Access, Oracle, Sybase, DB2 et les autres bases.
Syntaxe SQL:
SELECT Company, Country FROM Customers WHERE Country <> 'USA'
Résultat SQL:
Company Country
Royaume-
Island Trading
Uni
Galería del Gastronomo Espagne
Rire Bacchus Wine
Canada
Cellars
Paris Spécialités France
Simons bistro Danemark
Wolski Zajazd Pologne
3. Télécharger ce cours sur www.krymo.com
Introduction
SQL est un langage standard pour accéder et manipuler des bases de données.
Qu'est-ce que SQL?
•SQL signifie Structured Query Language
•SQL vous permet d'accéder et de manipuler des bases de données
•SQL est une norme ANSI (American National Standards Institute) standard
Que pouvez-faire avec SQL?
•SQL Server peut exécuter des requêtes sur une base de données
•SQL Server peut récupérer des données à partir d'une base de données
•SQL peut insérer des enregistrements dans une base de données
•SQL peut mettre à jour des enregistrements dans une base de données
•SQL peut supprimer des enregistrements d'une base de données
•SQL peut créer de nouvelles bases
•SQL permet de créer de nouvelles tables dans une base de données
•SQL permet de créer des procédures stockées dans une base de données
•SQL Server peut créer des vues dans une base de données
•SQL peut définir des autorisations sur les tables, les procédures, et les vues
4. Télécharger ce cours sur www.krymo.com
SQL est un standard - MAIS ....
Bien que SQL soit une norme ANSI (American National Standards Institute) standard, il existe de nombreuses versions différentes du langage.
Toutefois, pour être conforme à la norme ANSI, elles ont toutes un soutien au moins pour les commandes principales (telles que SELECT, UPDATE, DELETE,
INSERT, WHERE) de la même manière.
Remarque: La plupart des programmes de base de données SQL ont aussi leurs propres extensions propriétaires, en plus de la norme SQL!
Utilisation de SQL dans votre site Web
Pour construire un site web qui montre des données provenant d'une base de données, vous aurez besoin des éléments suivants:
•Un programme de base de données SGBDR (MS Access, SQL Server, MySQL)
•Un langage de script côté serveur, comme PHP ou ASP
•SQL
•HTML / CSS
SGBDR
SGBDR représente le système relationnel de gestion de base de données.
SGBDR est à la base SQL, et pour toutes les bases de données modernes tels que MS SQL Server, IBM DB2, Oracle, MySQL et Microsoft Access.
Les données du SGBDR sont stockées dans la base de données des objets appelés tables.
Une table est un ensemble d'entrées de données correspondantes et se compose de colonnes et de lignes.
5. Télécharger ce cours sur www.krymo.com
Syntaxe
Les tableaux de base de données
Une base de données contient le plus souvent une ou plusieurs tables. Chaque tableau est identifié par un nom (eg "Clients" ou "commandes"). Les tableaux
contiennent des enregistrements (lignes) avec des données.
Voici un exemple d'une table appelée «persons»:
P_ID LastName FirstName Adress City
Timoteivn
1 Hansen Ola Sandnes
10
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Le tableau ci-dessus contient trois disques (un pour chaque personne) et cinq colonnes (P_ID, LastName, FirstName, Adress et City).
Instructions SQL
La plupart des actions que vous devez effectuer sur une base de données se font avec des instructions SQL.
L'instruction SQL suivante sélectionne tous les enregistrements de la table «Persons»:
SELECT * FROM Persons
Dans ce tutoriel, nous allons vous apprendre tout sur les différentes déclarations SQL.
6. Télécharger ce cours sur www.krymo.com
Gardez à l'esprit que ...
•SQL n'est pas sensible à la casse
Un point-virgule après les instructions SQL?
Certains systèmes de bases de données nécessitent un point-virgule à la fin de chaque instruction SQL.
Le point-virgule est le moyen standard pour séparer chaque instruction SQL dans la base de données des systèmes qui permettent plus d'une instruction SQL à
être exécutée dans le même appel au serveur.
Quand nous utilisons MS Access et SQL Server 2000, nous n'avons pas de mettre une virgule après chaque instruction SQL, mais certains programmes de
bases de données nous forcent à en utiliser.
SQL DML et DDL
SQL peut être divisé en deux parties: Le langage de manipulation de données (DML) et le langage de définition de données (DDL).
La requête et les commandes de mise à jour forment la partie de SQL DML:
•SELECT - extrait des données d'une base
•UPDATE - mettre à jour des données dans une base
•DELETE - efface les données d'une base
•INSERT INTO - insérer des données dans une base
La partie DDL des tables de base de données SQL permet de créer ou de supprimer une base. Il définit également les index (clés), précise les liens entre les
tables, et impose des contraintes entre les tables. Les déclarations les plus importantes dans SQL DDL sont les suivantes:
•CREATE DATABASE - crée une nouvelle base de données
•ALTER DATABASE - modifie une base de données
•CREATE TABLE - crée une nouvelle table
•ALTER TABLE - modifie une table
•DROP TABLE - supprime une table
•CREATE INDEX - crée un index (clé de recherche)
•DROP INDEX - supprime un index
7. Télécharger ce cours sur www.krymo.com
Ce chapitre explique la commande SELECT et les requêtes SELECT *.
L'instruction SQL SELECT
L'instruction SELECT est utilisé pour sélectionner des données dans une base de données.
Le résultat est stocké dans une table de résultats, appelé ensemble de résultats.
Syntaxe SQL SELECT
SELECT column_name(s)
FROM table_name
et
SELECT * FROM table_name
Remarque: SQL n'est pas sensible à la casse. SELECT est identique à celle de sélection.
8. Télécharger ce cours sur www.krymo.com
Un exemple SQL SELECT
Table «Persons» :
P_ID LastName FirstName Adress City
Timoteivn
1 Hansen Ola Sandnes
10
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Maintenant, nous voulons sélectionner le contenu des colonnes nommées "Nom" et "Prénom" dans le tableau ci-dessus.
On utilise l'instruction SELECT suivante:
SELECT LastName,FirstName FROM Persons
résultat:
LastName FirstName
Hansen Ola
Svendsen Tove
Pettersen Kari
9. Télécharger ce cours sur www.krymo.com
Exemple: SELECT *
Maintenant, nous voulons sélectionner toutes les colonnes de la «Personne» table.
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons
Astuce: L'astérisque (*) est un moyen rapide de sélectionner toutes les colonnes!
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Navigation dans un result-set
La plupart des systèmes logiciels de bases de données permettent de naviguer dans le jeu de résultats avec des fonctions de programmation, tels que: Move-
To-First-Registration, Registration-Get-Content-, move-to-Next-Registration, etc
10. Télécharger ce cours sur www.krymo.com
Ce chapitre explique l'instruction SELECT DISTINCT.
L'instruction SELECT DISTINCT SQL
Dans une table, quelques-unes des colonnes peuvent contenir des valeurs dupliquées. Ce n'est pas un problème, cependant, parfois, vous voulez inscrire
seulement les différences de valeurs dans une table.
Le mot-clé DISTINCT peut être utilisé pour renvoyer uniquement les valeurs distinctes .
SELECT DISTINCT Syntaxe
SELECT DISTINCT column_name(s)
FROM table_name
Exemple
P_ID LastName FIrstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Maintenant, nous voulons sélectionner uniquement les valeurs distinctes de la colonne nommée "Ville" de la table ci-dessus.
11. Télécharger ce cours sur www.krymo.com
On utilise l'instruction SELECT suivante:
SELECT DISTINCT City FROM Persons
résultat:
City
Sandnes
Stavanger
12. Télécharger ce cours sur www.krymo.com
La clause WHERE
La clause WHERE est utilisée pour extraire uniquement les enregistrements qui répondent à un critère spécifié.
Syntaxe SQL WHERE
SELECT column_name(s)
FROM table_name
WHERE column_name operator value
Exemple
L'affaire «Personnes» de table:
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
13. Télécharger ce cours sur www.krymo.com
Maintenant, nous voulons sélectionner uniquement les personnes vivant dans la ville de "Sandnes" dans le tableau ci-avant.
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons
WHERE City='Sandnes'
L'ensemble de résultats se présente comme suit:
P_ID LastName FIrstName Adress City
Timoteivn
1 Hansen Ola Sandnes
10
Borgvn
2 Svendsen Tove Sandnes
23
Les guillemets autour des champs de texte
SQL utilise des guillemets simples autour des valeurs de texte (la plupart des systèmes de bases de données les acceptera également ).
Toutefois, les valeurs numériques ne doivent pas être mises entre-guillemets.
Pour des valeurs de texte:
This is correct:
SELECT * FROM Persons WHERE FirstName='Tove'
This is wrong:
SELECT * FROM Persons WHERE FirstName=Tove
14. Télécharger ce cours sur www.krymo.com
Pour les valeurs numériques:
This is correct:
SELECT * FROM Persons WHERE Year=1965
This is wrong:
SELECT * FROM Persons WHERE Year='1965'
Les opérateurs autorisés dans la clause WHERE
Avec la clause WHERE, les opérateurs suivants peuvent être utilisés:
Opérateur Description
= Égal
<> Ne sont pas égaux
> Supérieure
< Inférieur
>= Supérieur ou égal
<= Inférieur ou égal
15. Télécharger ce cours sur www.krymo.com
Remarque: ! Dans certaines versions de SQL de l'opérateur <> peut être écrit =
16. Télécharger ce cours sur www.krymo.com
AND & OR sont utilisés pour filtrer les enregistrements basés sur plus d'une condition.
La opérateurs AND, OR
L'opérateur ET affiche un enregistrement à la fois si la condition première et la deuxième condition est vraie.
L'opérateur OU affiche un enregistrement si l'une de la première condition ou la deuxième condition est vraie.
Exemple de l'opérateur AND
Table «Persons» :
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Maintenant, nous voulons sélectionner uniquement les personnes ayant le prénom égal à "Tove" ET le nom de famille égal à "Svendsen":
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons
WHERE FirstName='Tove'
AND LastName='Svendson'
17. Télécharger ce cours sur www.krymo.com
résultat:
P_ID LastName FirstName Adress City
2 Svendsen Tove Borgvn 23 Sandnes
Exemple
Maintenant, nous voulons sélectionner uniquement les personnes ayant le prénom égal à "Tove" OU le prénom égal à "Ola":
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons
WHERE FirstName='Tove'
OR FirstName='Ola'
résultat:
P_ID LastName FirstName Adress Town
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
18. Télécharger ce cours sur www.krymo.com
La combinaison ET, OU
Vous pouvez également combiner ET et OU (utiliser des parenthèses pour former des expressions complexes).
Maintenant, nous voulons sélectionner uniquement les personnes dont le nom est égal à "Svendsen" ET le prénom égal à "Tove» ou de «Ola»:
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons WHERE
LastName='Svendson'
AND (FirstName='Tove' OR FirstName='Ola')
Le résultat se présente comme suit:
P_ID LastName FirstName Adress City
2 Svendsen Tove Borgvn 23 Sandnes
19. Télécharger ce cours sur www.krymo.com
Le mot-clé ORDER BY est utilisée pour trier le jeu de résultats.
La clause ORDER BY
Le mot-clé ORDER BY est utilisée pour trier le jeu de résultats d'une colonne spécifiée.
Le mot-clé ORDER BY trie les enregistrements par ordre croissant par défaut.
Si nous voulons trier les enregistrements dans un ordre décroissant, nous pouvons utiliser le mot-clé DESC.
SQL ORDER BY Syntaxe
SELECT column_name(s)
FROM table_name
ORDER BY column_name(s) ASC|DESC
20. Télécharger ce cours sur www.krymo.com
Exemple
Table «Persons» :
P_ID Nom Prénom Adresse Ville
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger
Maintenant, nous voulons sélectionner toutes les personnes de la table ci-dessus, cependant, nous voulons trier les personnes par leur nom de famille.
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons
ORDER BY LastName
21. Télécharger ce cours sur www.krymo.com
Le résultat se présente comme suit:
P_ID LastName FIrstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
4 Nilsen Tom Vingvn 23 Stavanger
3 Pettersen Kari Storgt 20 Stavanger
2 Svendsen Tove Borgvn 23 Sandnes
ORDER BY DESC
Exemple
Maintenant, nous voulons sélectionner toutes les personnes de la table ci-dessus, cependant, nous voulons trier les personnes par leur nom de famille.
On utilise l'instruction SELECT suivante:
SELECT * FROM Persons
ORDER BY LastName DESC
L'ensemble de résultats se présente comme suit:
22. Télécharger ce cours sur www.krymo.com
P_ID LastName FirstName Adress City
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Tom Vingvn 23 Stavanger
1 Hansen Ola Timoteivn 10 Sandnes
23. Télécharger ce cours sur www.krymo.com
L'instruction INSERT INTO est utilisée pour insérer de nouveaux enregistrements dans une table.
L'instruction INSERT INTO
L'instruction INSERT INTO est utilisée pour insérer une nouvelle ligne dans une table.
Syntaxe
Il est possible d'écrire l'instruction INSERT INTO sous deux formes.
La première forme ne précise pas les noms de colonnes où les données seront insérées, que leurs valeurs:
INSERT INTO table_name
VALUES (value1, value2, value3,...)
La seconde forme spécifie à la fois les noms de colonnes et les valeurs à insérer:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...)
Exemple
P_ID LastName FirstName Adress City
24. Télécharger ce cours sur www.krymo.com
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
Maintenant, nous voulons insérer une nouvelle ligne dans la table «Persons» .
Nous utilisons l'instruction SQL suivante:
INSERT INTO Persons
VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')
L'affaire «Personnes» table maintenant ressembler à ceci:
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
Insérez uniquement les données des colonnes spécifiées
Il est également possible d'ajouter seulement des données dans des colonnes spécifiques.
L'instruction SQL suivante va ajouter une nouvelle ligne, mais seulement dans les colonnes "P_ID", "LastName" et "FirstName":
INSERT INTO Persons (P_Id, LastName, FirstName)
VALUES (5, 'Tjessem', 'Jakob')
25. Télécharger ce cours sur www.krymo.com
résultat:
P_ID Nom Prénom Adresse Ville
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob
L'instruction UPDATE
L'instruction UPDATE est utilisée pour mettre à jour des enregistrements existants dans une table.
26. Télécharger ce cours sur www.krymo.com
Syntaxe
UPDATE table_name
SET column1=value, column2=value2,...
WHERE some_column=some_value
Remarque: La clause WHERE spécifie le ou les documents qui doivent être mis à jour. Si vous omettez la clause WHERE, tous les enregistrements seront mis à
jour!
Exemple
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob
Maintenant, nous voulons mettre à jour la personne »Tjessem, Jakob" .
Nous utilisons l'instruction SQL suivante:
27. Télécharger ce cours sur www.krymo.com
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
WHERE LastName='Tjessem' AND FirstName='Jakob'
résultat:
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob Nissestien 67 Sandnes
Attention
Etre prudent sur la mise à jour des dossiers. Si nous avions omis la clause WHERE dans l'exemple ci-dessus, comme ceci:
UPDATE Persons
SET Address='Nissestien 67', City='Sandnes'
Le résultat serait:
P_ID LastName FirstName Adress City
28. Télécharger ce cours sur www.krymo.com
1 Hansen Ola Nissestien 67 Sandnes
2 Svendsen Tove Nissestien 67 Sandnes
3 Pettersen Kari Nissestien 67 Sandnes
4 Nilsen Johan Nissestien 67 Sandnes
5 Tjessem Jakob Nissestien 67 Sandnes
L'instruction DELETE
L'instruction DELETE est utilisée pour supprimer des lignes dans une table.
Syntaxe
DELETE FROM table_name
WHERE some_column=some_value
Remarque: Notez que la clause WHERE spécifie le ou les documents qui doivent être supprimés. Si vous omettez la clause WHERE, tous les enregistrements
seront effacés!
29. Télécharger ce cours sur www.krymo.com
Exemple
P_ID LastName FirstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
5 Tjessem Jakob Nissestien 67 Sandnes
Maintenant, nous voulons supprimer la personne »Tjessem, Jakob" dans la table.
Nous utilisons l'instruction SQL suivante:
DELETE FROM Persons
WHERE LastName='Tjessem' AND FirstName='Jakob'
30. Télécharger ce cours sur www.krymo.com
résultat:
P_ID LastName FIrstName Adress City
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendsen Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger
4 Nilsen Johan Bakken 2 Stavanger
Supprimer toutes les lignes
Il est possible de supprimer toutes les lignes d'une table sans supprimer la table. Cela signifie que la structure de la table, les attributs et les index seront
intactes:
DELETE FROM table_name
or
DELETE * FROM table_name
Remarque: Soyez très prudent lors de la suppression d'enregistrements. Vous ne pourrez plus l'annuler !