SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
MEMO       MY   SQL

 Un BON exemple
vaut mieux qu'un
  long cours
       dis



                    AbdelMonem NAAMANE
                           isamm@naamane.com
Manipulation des bases de données

shell> mysql -h host -u user -p

mysql> show databases

mysql> USE mabase

mysql> QUIT


CREATE DATABASE nom_base;

DROP DATABASE nom_base;

                                  AbdelMonem NAAMANE
                                         isamm@naamane.com
Création
de table
       AbdelMonem NAAMANE
              isamm@naamane.com
Types de données les plus utilisés
INTEGER (INT) : Entier positif ou négatif. 4 octet (-2³² → 2³²-1 )
FLOAT : Un nombre à virgule flottante. 4 octet(-/+1.17E-38 → -/+3.40E+38)

TIME : Heure, de '00:00:00' à '23:59:59'
DATE : Une date, de '1000-01-01' à '9999-12-31' au maximum.
DATETIME : Date et Heure, de '1000-01-01 00:00:00' à '9999-12-31 23:59:59'

VARCHAR : Chaîne de caractère, (1 → 255 caractères)
TEXT : Chaîne de caractère, max 2¹⁶-1 octet

ENUM ('valeur1','valeur2',...) Liste de 65 535 valeurs au maximum.
SET    ('valeur1','valeur2',...) Liste de 65 535 valeurs au maximum.
                                                               AbdelMonem NAAMANE
                                                                     isamm@naamane.com
Création de table
CREATE TABLE Etudiant (id_etudiant INT(6),
nom VARCHAR(255) NOT NULL,
note FLOAT(7,2) DEFAULT 0,
classe INT,
cin INT(6),
CONSTRAINT PK_etudiant PRIMARY KEY(identifiant),
CONSTRAINT UNIQUE (cin),

CONSTRAINT FK_etu_classe FOREIGN KEY (classe)
REFERENCES Classe(id_classe)
  ON DELETE CASCADE);


RENAME TABLE Etudiant TO eleves;
                                     AbdelMonem NAAMANE
                                            isamm@naamane.com
Manipulation
   de la
 structure
           AbdelMonem NAAMANE
                  isamm@naamane.com
Manipulation de la structure 1/2
DROP TABLE nom_table;


ALTER TABLE client DROP tel;


ALTER TABLE Etudiant DROP PRIMARY KEY;


ALTER TABLE Etudiant RENAME COL1 TO COL3;


ALTER TABLE Etudiant MODIFY nom_eleve
varchar(40) NOT NULL

                                   AbdelMonem NAAMANE
                                          isamm@naamane.com
Manipulation de la structure 2/2

ALTER TABLE Etudiant ADD UNIQUE cin;


ALTER TABLE etudiant
ADD (Ville VARCHAR(255) DEFAULT 'Tunis',
Pays VARCHAR(30) );


ALTER TABLE Etudiant ADD CONSTRAINT
FOREIGN KEY (classe) REFERENCES
Classe(id_classe));

                                       AbdelMonem NAAMANE
                                              isamm@naamane.com
Insertion
   de
données
        AbdelMonem NAAMANE
               isamm@naamane.com
Insertion de données 1/2
INSERT INTO nom_de_table
VALUES(4,15,'NAAMANE', '2011-11-11') ;

INSERT INTO nom_de_table (col1,col2,col3)
VALUES (1,2,3),(4,5,6);

INSERT INTO nom_de_table
SET col3 = 1, col5 = '2011-11-11';

INSERT INTO table1 (clonne1, colonne2)
   SELECT nom, age
   FROM table2
   WHERE age > 18;
                                            AbdelMonem NAAMANE
                                                   isamm@naamane.com
Insertion de données 2/2

REPLACE INTO nom_de_table (col1,col2,col3)
VALUES (1,2,3),(4,5,6);




LOAD DATA LOCAL IN FILE "fichier.txt"
INTO etudiants
FIELDS TERMINATED BY ","
LINES TERMINATED BY "rn"
IGNORE 1 LINES


                                         AbdelMonem NAAMANE
                                                isamm@naamane.com
Mise à
jour des
données
         AbdelMonem NAAMANE
                isamm@naamane.com
Mise à jour des données
UPDATE clients
SET prenom ='Mohamed', nom ='NAAMANE',
ville = 'Bizerte', enfants = 2
WHERE id > 10
ORDER BY note DESC
LIMIT 20;


UPDATE clients
SET note = note+4;


UPDATE clients
SET classe = REPLACE( classe,'MIN','Master IM')
                                         AbdelMonem NAAMANE
                                                isamm@naamane.com
Suppression
des données

         AbdelMonem NAAMANE
                isamm@naamane.com
Suppression des données


DELETE FROM clients
WHERE age = 20
AND ville LIKE '%uni%'
ORDER BY note DESC
limit 10;



TRUNCATE clients;



                                 AbdelMonem NAAMANE
                                        isamm@naamane.com
Selection
   de
données
        AbdelMonem NAAMANE
               isamm@naamane.com
Selection de données simple
SELECT *
FROM etudiant ;

SELECT nom, prenom, note, date_naissance
FROM etudiant
ORDER BY note DESC;      [ASC | DESC]

SELECT nom, prenom, cin, note
FROM etudiant
WHERE ville = 'Tunis'
AND note > 10
OR ville = 'Bizerte'
AND nom != 'A'
AND prenom LIKE 'Mo%';
                                           AbdelMonem NAAMANE
                                                  isamm@naamane.com
Selection : fonctions utililes 1

SELECT 1+2, "bon, Jour";

SELECT CONCAT(prenom, " ", nom) AS nom_complet
FROM etudiants;

SELECT *
FROM etudiants
WHERE age IS NULL;

SELECT *
FROM etudiants
WHERE age IS NOT NULL;


                                     AbdelMonem NAAMANE
                                            isamm@naamane.com
Selection : fonctions utililes 2
SELECT *
FROM etudiants
WHERE date_naissance > '1980-12-15'
AND date_naissance < '2005-05-10';

SELECT *
FROM etudiants
WHERE MONTH(date_naissance) = 2
AND DAYOFMONTH(date_naissance) = 29;

SELECT *
FROM etudiants
WHERE nom LIKE 'A%'
AND prenom LIKE '__b%N';
                                       AbdelMonem NAAMANE
                                              isamm@naamane.com
Selection : fonctions utililes 3


SELECT DISTINCT ville
FROM etudiants;

SELECT COUNT(*), COUNT(ville)
FROM etudiants;

SELECT COUNT(DISTINCT ville)
FROM etudiants;




                                  AbdelMonem NAAMANE
                                         isamm@naamane.com
Selection : fonctions utililes 4
SELECT *
FROM etudiants
WHERE age IN (11,12,13,14,15);

SELECT DISTINCT nom_livre
FROM livre
WHERE type_livre NOT IN
  (SELECT type_livre
   FROM anciens_livre);

SELECT *
FROM etudiants
ORDER BY RAND()
LIMIT 1;
                                  AbdelMonem NAAMANE
                                         isamm@naamane.com
Fonctions pour date
NOW() → 2012-11-10 33:44:21
CURDATE() → 2012-11-10
CURTIME() → 20:11:09

DATE_ADD('2000-11-16', 3 YEAR) → MONTH | DAY | HOUR | MINUTE |
SECOND
DATE_SUB('2000-11-16', 3 YEAR) → MONTH | DAY | HOUR | MINUTE |
SECOND


YEAR()
MONTH()
DAY()
HOUR()
MINUTE()
SECOND()
                                                 AbdelMonem NAAMANE
                                                        isamm@naamane.com
Groupement
SELECT MAX(note), MIN(note), SUM(note),AVG(note),
COUNT(note), COUNT(*),
FROM etudiant;

SELECT article, sum(montant) as M
FROM vente
GROUP BY article;

SELECT article, sum(montant)
FROM vente
WHERE date_achat > '2011-01-01'
GROUP BY article;

SELECT article, sum(montant)
FROM vente
GROUP BY article
HAVING sum(montant) > 100);                  AbdelMonem NAAMANE
                                                    isamm@naamane.com
Groupement 2
SELECT nom_article, sum(montant), max(montant),
max(date_vente) AS date_derniere_vente

FROM vente
WHERE date_achat > '2011-01-01'
AND nom_article != 'A'
AND prenom LIKE 'ch%'

GROUP BY article
HAVING sum(montant) > 100

ORDER BY date_derniere_vente DESC
limit 5;
                                     AbdelMonem NAAMANE
                                            isamm@naamane.com
Jointure

SELECT *
FROM etudiant , classe
WHERE etudiant.classe = classe.id_classe
AND classe.niveau_classe >= 2




SELECT *
FROM classe
LEFT JOIN etudiant
ON etudiant.classe = classe.id_classe
WHERE classe.niveau_classe >= 2;

                                           AbdelMonem NAAMANE
                                                  isamm@naamane.com
MEMO        MY   SQL

AbdelMonem NAAMANE

    isamm@naamane.com

Contenu connexe

En vedette

Pruebasa
PruebasaPruebasa
Pruebasakariz22
 
Fibra óptica
Fibra ópticaFibra óptica
Fibra ópticachave2015
 
Semana 03-visic3b3n-de-futuro
Semana 03-visic3b3n-de-futuroSemana 03-visic3b3n-de-futuro
Semana 03-visic3b3n-de-futuroKaty_S16
 
thérapie anti stress
thérapie anti stressthérapie anti stress
thérapie anti stressguest6e1eba
 
Lo hermoso de la vida
Lo hermoso de la vidaLo hermoso de la vida
Lo hermoso de la vidabiancaciriaco
 
Presentación del avance del liberalismo y la democracia en España
Presentación del avance del liberalismo y la democracia en España Presentación del avance del liberalismo y la democracia en España
Presentación del avance del liberalismo y la democracia en España Josselyn30
 
Saul pacurucu p
Saul pacurucu pSaul pacurucu p
Saul pacurucu pspacurucu
 
Entornos virtuales de aprendizaje en la escuela
Entornos virtuales de aprendizaje en la escuelaEntornos virtuales de aprendizaje en la escuela
Entornos virtuales de aprendizaje en la escuelaAlvaroPB
 
Incisivos Superiores
Incisivos SuperioresIncisivos Superiores
Incisivos SuperioresOliver Feng
 
Competitic elogistique site internet by competitic - numerique en entreprise
Competitic    elogistique site internet by competitic - numerique en entrepriseCompetitic    elogistique site internet by competitic - numerique en entreprise
Competitic elogistique site internet by competitic - numerique en entrepriseCOMPETITIC
 
asdfasPresentación1
asdfasPresentación1asdfasPresentación1
asdfasPresentación1DAX222222
 
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligneCOMPETITIC
 

En vedette (17)

Pruebasa
PruebasaPruebasa
Pruebasa
 
Fotografia
FotografiaFotografia
Fotografia
 
La economía social
La economía socialLa economía social
La economía social
 
Fibra óptica
Fibra ópticaFibra óptica
Fibra óptica
 
Kerrand Preval
Kerrand PrevalKerrand Preval
Kerrand Preval
 
Semana 03-visic3b3n-de-futuro
Semana 03-visic3b3n-de-futuroSemana 03-visic3b3n-de-futuro
Semana 03-visic3b3n-de-futuro
 
Neuromanagement
NeuromanagementNeuromanagement
Neuromanagement
 
thérapie anti stress
thérapie anti stressthérapie anti stress
thérapie anti stress
 
Lo hermoso de la vida
Lo hermoso de la vidaLo hermoso de la vida
Lo hermoso de la vida
 
Presentación del avance del liberalismo y la democracia en España
Presentación del avance del liberalismo y la democracia en España Presentación del avance del liberalismo y la democracia en España
Presentación del avance del liberalismo y la democracia en España
 
Saul pacurucu p
Saul pacurucu pSaul pacurucu p
Saul pacurucu p
 
Entornos virtuales de aprendizaje en la escuela
Entornos virtuales de aprendizaje en la escuelaEntornos virtuales de aprendizaje en la escuela
Entornos virtuales de aprendizaje en la escuela
 
Wiki
WikiWiki
Wiki
 
Incisivos Superiores
Incisivos SuperioresIncisivos Superiores
Incisivos Superiores
 
Competitic elogistique site internet by competitic - numerique en entreprise
Competitic    elogistique site internet by competitic - numerique en entrepriseCompetitic    elogistique site internet by competitic - numerique en entreprise
Competitic elogistique site internet by competitic - numerique en entreprise
 
asdfasPresentación1
asdfasPresentación1asdfasPresentación1
asdfasPresentación1
 
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne2012 01 19 utilisez les differentes opportunites pour vendre en ligne
2012 01 19 utilisez les differentes opportunites pour vendre en ligne
 

Plus de Abdelmonem NAAMANE

Plus de Abdelmonem NAAMANE (6)

Smart forms __fiche_projet_pfe
Smart forms __fiche_projet_pfeSmart forms __fiche_projet_pfe
Smart forms __fiche_projet_pfe
 
Email designer -_fiche_projet_pfe
Email designer -_fiche_projet_pfeEmail designer -_fiche_projet_pfe
Email designer -_fiche_projet_pfe
 
PFE Ecommerce datamining
PFE Ecommerce datamining PFE Ecommerce datamining
PFE Ecommerce datamining
 
Cours html5
Cours html5Cours html5
Cours html5
 
Projet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMMProjet fin annee 2011 master min ISAMM
Projet fin annee 2011 master min ISAMM
 
Cours PHP avancé
Cours PHP avancéCours PHP avancé
Cours PHP avancé
 

Cours SQL Master Image Numérique ISAMM

  • 1. MEMO MY SQL Un BON exemple vaut mieux qu'un long cours dis AbdelMonem NAAMANE isamm@naamane.com
  • 2. Manipulation des bases de données shell> mysql -h host -u user -p mysql> show databases mysql> USE mabase mysql> QUIT CREATE DATABASE nom_base; DROP DATABASE nom_base; AbdelMonem NAAMANE isamm@naamane.com
  • 3. Création de table AbdelMonem NAAMANE isamm@naamane.com
  • 4. Types de données les plus utilisés INTEGER (INT) : Entier positif ou négatif. 4 octet (-2³² → 2³²-1 ) FLOAT : Un nombre à virgule flottante. 4 octet(-/+1.17E-38 → -/+3.40E+38) TIME : Heure, de '00:00:00' à '23:59:59' DATE : Une date, de '1000-01-01' à '9999-12-31' au maximum. DATETIME : Date et Heure, de '1000-01-01 00:00:00' à '9999-12-31 23:59:59' VARCHAR : Chaîne de caractère, (1 → 255 caractères) TEXT : Chaîne de caractère, max 2¹⁶-1 octet ENUM ('valeur1','valeur2',...) Liste de 65 535 valeurs au maximum. SET ('valeur1','valeur2',...) Liste de 65 535 valeurs au maximum. AbdelMonem NAAMANE isamm@naamane.com
  • 5. Création de table CREATE TABLE Etudiant (id_etudiant INT(6), nom VARCHAR(255) NOT NULL, note FLOAT(7,2) DEFAULT 0, classe INT, cin INT(6), CONSTRAINT PK_etudiant PRIMARY KEY(identifiant), CONSTRAINT UNIQUE (cin), CONSTRAINT FK_etu_classe FOREIGN KEY (classe) REFERENCES Classe(id_classe) ON DELETE CASCADE); RENAME TABLE Etudiant TO eleves; AbdelMonem NAAMANE isamm@naamane.com
  • 6. Manipulation de la structure AbdelMonem NAAMANE isamm@naamane.com
  • 7. Manipulation de la structure 1/2 DROP TABLE nom_table; ALTER TABLE client DROP tel; ALTER TABLE Etudiant DROP PRIMARY KEY; ALTER TABLE Etudiant RENAME COL1 TO COL3; ALTER TABLE Etudiant MODIFY nom_eleve varchar(40) NOT NULL AbdelMonem NAAMANE isamm@naamane.com
  • 8. Manipulation de la structure 2/2 ALTER TABLE Etudiant ADD UNIQUE cin; ALTER TABLE etudiant ADD (Ville VARCHAR(255) DEFAULT 'Tunis', Pays VARCHAR(30) ); ALTER TABLE Etudiant ADD CONSTRAINT FOREIGN KEY (classe) REFERENCES Classe(id_classe)); AbdelMonem NAAMANE isamm@naamane.com
  • 9. Insertion de données AbdelMonem NAAMANE isamm@naamane.com
  • 10. Insertion de données 1/2 INSERT INTO nom_de_table VALUES(4,15,'NAAMANE', '2011-11-11') ; INSERT INTO nom_de_table (col1,col2,col3) VALUES (1,2,3),(4,5,6); INSERT INTO nom_de_table SET col3 = 1, col5 = '2011-11-11'; INSERT INTO table1 (clonne1, colonne2) SELECT nom, age FROM table2 WHERE age > 18; AbdelMonem NAAMANE isamm@naamane.com
  • 11. Insertion de données 2/2 REPLACE INTO nom_de_table (col1,col2,col3) VALUES (1,2,3),(4,5,6); LOAD DATA LOCAL IN FILE "fichier.txt" INTO etudiants FIELDS TERMINATED BY "," LINES TERMINATED BY "rn" IGNORE 1 LINES AbdelMonem NAAMANE isamm@naamane.com
  • 12. Mise à jour des données AbdelMonem NAAMANE isamm@naamane.com
  • 13. Mise à jour des données UPDATE clients SET prenom ='Mohamed', nom ='NAAMANE', ville = 'Bizerte', enfants = 2 WHERE id > 10 ORDER BY note DESC LIMIT 20; UPDATE clients SET note = note+4; UPDATE clients SET classe = REPLACE( classe,'MIN','Master IM') AbdelMonem NAAMANE isamm@naamane.com
  • 14. Suppression des données AbdelMonem NAAMANE isamm@naamane.com
  • 15. Suppression des données DELETE FROM clients WHERE age = 20 AND ville LIKE '%uni%' ORDER BY note DESC limit 10; TRUNCATE clients; AbdelMonem NAAMANE isamm@naamane.com
  • 16. Selection de données AbdelMonem NAAMANE isamm@naamane.com
  • 17. Selection de données simple SELECT * FROM etudiant ; SELECT nom, prenom, note, date_naissance FROM etudiant ORDER BY note DESC; [ASC | DESC] SELECT nom, prenom, cin, note FROM etudiant WHERE ville = 'Tunis' AND note > 10 OR ville = 'Bizerte' AND nom != 'A' AND prenom LIKE 'Mo%'; AbdelMonem NAAMANE isamm@naamane.com
  • 18. Selection : fonctions utililes 1 SELECT 1+2, "bon, Jour"; SELECT CONCAT(prenom, " ", nom) AS nom_complet FROM etudiants; SELECT * FROM etudiants WHERE age IS NULL; SELECT * FROM etudiants WHERE age IS NOT NULL; AbdelMonem NAAMANE isamm@naamane.com
  • 19. Selection : fonctions utililes 2 SELECT * FROM etudiants WHERE date_naissance > '1980-12-15' AND date_naissance < '2005-05-10'; SELECT * FROM etudiants WHERE MONTH(date_naissance) = 2 AND DAYOFMONTH(date_naissance) = 29; SELECT * FROM etudiants WHERE nom LIKE 'A%' AND prenom LIKE '__b%N'; AbdelMonem NAAMANE isamm@naamane.com
  • 20. Selection : fonctions utililes 3 SELECT DISTINCT ville FROM etudiants; SELECT COUNT(*), COUNT(ville) FROM etudiants; SELECT COUNT(DISTINCT ville) FROM etudiants; AbdelMonem NAAMANE isamm@naamane.com
  • 21. Selection : fonctions utililes 4 SELECT * FROM etudiants WHERE age IN (11,12,13,14,15); SELECT DISTINCT nom_livre FROM livre WHERE type_livre NOT IN (SELECT type_livre FROM anciens_livre); SELECT * FROM etudiants ORDER BY RAND() LIMIT 1; AbdelMonem NAAMANE isamm@naamane.com
  • 22. Fonctions pour date NOW() → 2012-11-10 33:44:21 CURDATE() → 2012-11-10 CURTIME() → 20:11:09 DATE_ADD('2000-11-16', 3 YEAR) → MONTH | DAY | HOUR | MINUTE | SECOND DATE_SUB('2000-11-16', 3 YEAR) → MONTH | DAY | HOUR | MINUTE | SECOND YEAR() MONTH() DAY() HOUR() MINUTE() SECOND() AbdelMonem NAAMANE isamm@naamane.com
  • 23. Groupement SELECT MAX(note), MIN(note), SUM(note),AVG(note), COUNT(note), COUNT(*), FROM etudiant; SELECT article, sum(montant) as M FROM vente GROUP BY article; SELECT article, sum(montant) FROM vente WHERE date_achat > '2011-01-01' GROUP BY article; SELECT article, sum(montant) FROM vente GROUP BY article HAVING sum(montant) > 100); AbdelMonem NAAMANE isamm@naamane.com
  • 24. Groupement 2 SELECT nom_article, sum(montant), max(montant), max(date_vente) AS date_derniere_vente FROM vente WHERE date_achat > '2011-01-01' AND nom_article != 'A' AND prenom LIKE 'ch%' GROUP BY article HAVING sum(montant) > 100 ORDER BY date_derniere_vente DESC limit 5; AbdelMonem NAAMANE isamm@naamane.com
  • 25. Jointure SELECT * FROM etudiant , classe WHERE etudiant.classe = classe.id_classe AND classe.niveau_classe >= 2 SELECT * FROM classe LEFT JOIN etudiant ON etudiant.classe = classe.id_classe WHERE classe.niveau_classe >= 2; AbdelMonem NAAMANE isamm@naamane.com
  • 26. MEMO MY SQL AbdelMonem NAAMANE isamm@naamane.com