0% ont trouvé ce document utile (0 vote)
117 vues15 pages

Guide SQL pour débutants en BDD

Transféré par

2hiibaa222
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 PPT, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
117 vues15 pages

Guide SQL pour débutants en BDD

Transféré par

2hiibaa222
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 PPT, PDF, TXT ou lisez en ligne sur Scribd

Le langage SQL

 SQL signifie Structured Query Language c’est-


à-dire « langage d'interrogation structuré ».
C’est un langage de gestion des bases de
données relationnelles.
 SQL est à la fois :
 – un langage de définition des données : ordres
CREATE, ALTER, DROP;
 – un langage de manipulation des données :
ordres UPDATE, INSERT, DELETE;
 – un langage d’interrogation : ordre SELECT.

22/06/24 ENSAO 1
WAMP Server

 WAMP est un acronyme informatique


signifiant :
 « Windows »
 « Apache »
 « MySQL »
 « PHP » dans la majorité des cas mais
aussi parfois, « Perl », ou « Python ».

22/06/24 ENSAO 2
 CREATE DATABASE ma_base
 DEFAULT CHARACTER SET utf8
 DEFAULT COLLATE utf8_general_ci;
 DROP DATABASE ma_base
 Créer une nouvelle table : USE ma_base;
CREATE TABLE villes (
Id int,
nom varchar(80),
date_nai DATE )
 supprimer une table : DROP TABLE nom_table;
 renommer une table: RENAME TABLE client TO client1 ;
show create table etudiant
 Vider une table  TRUNCATE TABLE nom_table
 Ajouter une colonne
ALTER TABLE nom_table
ADD nom_colonne type_donnees
 Supprimer une colonne
ALTER TABLE nom_table
DROP nom_colonne
 Renommer une colonne
ALTER TABLE nom_table
CHANGE colonne_ancien_nom colonne_nouveau_nom
ENSAO
type_donnees 3
22/06/24
 1-INSERT INTO table VALUES (valeur1,
valeur2....)
 2-INSERT INTO table (champ1, champ2)
VALUES (valeurduchamps1,
valeurduchamps2);
Pour insérer plusieurs lignes en une seule requête :
 INSERT INTO table (champs1, champs2) VALUES
 (valeur1_ligne1, valeur2_ligne1),
 (valeur1_ligne2, valeur2_ligne2);
 Syntaxe d'insertion alternative (propre à MySQL) :
 INSERT INTO table SET champs1 = valeur1, champs2 = valeur2;

22/06/24 ENSAO 4
Remplir une table avec des lignes (syntaxe classique et alternative (SET))
INSERT INTO table VALUES (null,‘val1', 46, 50, 0.25, '1994-11-27');
Je fais null ou ‘’  ‘’ <==> ‘’ ou ‘’ ‘’
INSERT INTO table VALUES
(‘val1', 46, 50, 0.25, '1994-11-27'),
(‘val2', 46, 50, 0.25, '1994-11-27'),
(‘val3', 46, 50, 0.25, '1994-11-27');
 INSERT INTO etudiant (nom_etud,dat_nais)
VALUES (‘m\’barek','2006/11/09');

Remplir une table avec des lignes (syntaxe alternative SET)


INSERT INTO table SET nom_etud='Ali',prenom='barbou';

22/06/24 ENSAO 5
 DELETE FROM table WHERE conditions;
 DELETE FROM table WHERE conditions LIMIT 1;

 Pour vider complètement une table :


TRUNCATE TABLE table;
 Pour modifier une ou plusieurs lignes

UPDATE table SET champ=valeur,


champ=valeur WHERE (conditions)

22/06/24 ENSAO 6
 Interroger une table :
 SELECT * FROM table;
 SELECT nom, prenom, date FROM table;
 SELECT * FROM etudiant LIMIT 5,2
 SELECT id_etud,nom_etud FROM etudiant where id_etud in (1,10,9)
 SELECT cne, nom, (moy_bac*2) AS moyxcoef FROM etudiant;
 la clause AS est utilisée pour renommer la sortie d'une colonne (cette clause AS est
optionnelle).
 SELECT ville, COUNT(*) AS total FROM etudiant group by ville;

 Une requête peut être « qualifiée » en ajoutant une clause WHERE qui spécifie quelles
lignes sont souhaitées
 select * from etudiant
where id_acad='o' and moy_bac > 10;
ORDER BY nom DESC;

Vous pouvez demander que les lignes dupliquées soient supprimées du résultat d'une
requête :

 SELECT DISTINCT ville


FROM etudiant
ORDER BY cne;

 SELECT * FROM `etudiant` WHERE nom like'%fil%‘  like'f%‘ -- like'%f‘--‘pa%on’--LIKE ‘%a_c%’


 SELECT CURTIME(), CURRENT_TIME(), SELECT NOW(), SYSDATE();
22/06/24 ENSAO 7
Les opérations ensemblistes
 L'opérateur UNION
 Cet opérateur permet d'effectuer une union des
lignes sélectionnées par deux clauses SELECT
(les deux tables sur lesquelles on travaille
devant avoir le même schéma).
SELECT ---- FROM ---- WHERE ------
UNION
SELECT ---- FROM ---- WHERE ------
 Par défaut les doublons sont automatiquement
éliminés. Pour conserver les doublons, il est
possible d'utiliser une clause UNION ALL.

22/06/24 ENSAO 8
SELECT *
FROM utilisateur
WHERE date_inscription BETWEEN ’2012-04-01′ AND ’2012-04-20′
 NOT BETWEEN

 IS NULL / IS NOT NULL / “” / ’’

22/06/24 ENSAO 9
VIEW
Une vue est une table virtuelle, c'est-à-dire une table qui n'a pas d'existence propre mais qui apparaît
réelle à l'utilisateur.
CREATE VIEW ma_vue AS
SELECT id,nom_prenom,fonction,ville
FROM client1
WHERE ville = 'oujda'

22/06/24 ENSAO 10
requête de jointure.
 Une requête qui consulte plusieurs lignes de la même ou de
différentes tables en même temps est appelée requête de jointure.
 select * from etudiant, series, academies, provinces
 where
 etudiant.id_serie = series.id_serie
 and
 etudiant.id_acad = academies.id_acad
 and
 etudiant.id_prov = provinces.id_prov;

 select etudiant.nom, etudiant.cne, etudiant.moy_bac,


provinces.province, series.serie, academies.academie from
etudiant, series, academies, provinces
 Where…..

22/06/24 ENSAO 11
 Mises à jour
 UPDATE etudiant SET nom = 'filali2' WHERE
nom = ‘filali';
 Suppressions
 Les lignes peuvent être supprimées de la table
avec la commande DELETE.
 DELETE FROM etudiant WHERE cne = 44444;

22/06/24 ENSAO 12
Les fonctions d’agrégation
 AVG( [ DISTINCT | ALL ] expression ) :
 Calcule la moyenne des valeurs de l’expression expression.
 COUNT( * | [DISTINCT | ALL] expression ) :
 Dénombre le nombre de lignes du groupe. Si expression est
présent, on ne compte que les lignes pour lesquelles cette
expression n’est pas NULL.
 MAX( [ DISTINCT | ALL ] expression ) :SELECT max(id) as maximum
 Retourne la plus grande des valeurs de l’expression expression.
 MIN([ DISTINCT | ALL ] expression ) :
 Retourne la plus petite des valeurs de l’expression expression.
 STDDEV([ DISTINCT | ALL ] expression) :
 Calcule l’écart-type des valeurs de l’expression expression.
 SUM([ DISTINCT | ALL ] expression) :
 Calcule la somme des valeurs de l’expression expression.
 VARIANCE([ DISTINCT | ALL ] expression) :
 Calcule la variance des valeurs de l’expression expression.
 ABS(champ): valeure absolue
 ROUND (champ) arrondir (CEIL (1.2 =>2 & FLOOR 1.2 =>1)
 SQRT
 TRUNCATE (champ,2) affiche 2 chiffres après la vergule
 MOD (champ,3) modulo ou on
22/06/24 ecrit champ%3 AS modulo
ENSAO 13
Les fonctions d’agrégation
 Une fonction d'agrégat calcule un seul résultat à partir de plusieurs lignes en entrée. Par exemple,
il y a des agrégats pour calculer le nombre (count), la somme (sum), la moyenne (avg), le
maximum (max) et le minimum (min) d'un ensemble de lignes.
 Exemple:
 SELECT DISTINCT nom,moy_bac FROM etudiant
WHERE moy_bac = (SELECT max(moy_bac) FROM etudiant)
SELECT DISTINCT count(nom) FROM etudiant;
CONCAT(nom," ", prenom)
LENGTH(nom) : compter le nombre de caractère
Lower(champ) minuscule
UPPER(champ) majuscule
substr(prenom,3.2)
reverse(nom)
trim(' ssss ') supprime l’espace

22/06/24 ENSAO 14
SQL HAVING
La condition HAVING en SQL est presque similaire a WHERE a la seule difference que HAVING
permet de filtrer en utilisant des fonctions telles que SUM(), COUNT(), AVG(), MIN() ou MAX().
SELECT client, SUM(tarif)
FROM achat
GROUP BY client
HAVING SUM(tarif) > 40

DATE
SELECT *, ADDDATE(date_n, 7) FROM `etudiant => Ajouter 7jours
SELECT *, ADDDATE(date_n, INTERVAL 7 HOUR) => Ajouter 7heures
SELECT *, SUBDATE(date_n, INTERVAL 7 HOUR) => Moin 7heures
SELECT *, ADDDATE(date_n, interval 1 year) FROM `etudiant Ajouter un an
SELECT * FROM etudiant where date_n > (SUBDATE('2018-12-10', INTERVAL 10 YEAR))
…… DATE_ADD = DATE_SUB……
SELECT * FROM `etudiant` WHERE date_n=CURDATE() CURTIME() + NOW()
SELECT *, DATEDIFF (CURDATE(), date_n) FROM `etudiant`
SELECT *, FROM_DAYS (DATEDIFF (CURDATE(), date_n)) FROM `etudiant`

22/06/24 ENSAO 15

Vous aimerez peut-être aussi