Ci-dessous, les différences entre deux révisions de la page.
mysql [2015/01/05 13:55] luc |
mysql [2018/10/13 20:32] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ===== MySQL ===== | ||
- | Cela fait trop longtemps que je traine un fichier texte qui contient mes notes à propos du langage SQL, dans le but à l' | ||
- | |||
- | ==== Les types de données ==== | ||
- | |||
- | Avant de commencer le vif du sujet, il faut connaître quel type de données on peut stocker | ||
- | |||
- | === Numérique === | ||
- | ^ NOM ^ Taille | ||
- | | TINYINT | ||
- | | SMALLINT | ||
- | | MEDIUMINT | ||
- | | INT | 4o | -2 147 483 648 à 2 147 483 647 | | ||
- | | BIGINT | ||
- | |||
- | UNSIGNED permet de ne pas avoir de nombre négatif et donc une plage positive 2x plus grand | ||
- | |||
- | NUMERIC ou DECIMAL : définit un nombre de chiffres avant et après la virgule, valeurs exactes conservées\\ | ||
- | FLOAT, DOUBLE REAL : valeur approchée stockée sous forme scientifique | ||
- | |||
- | === Alphanumérique === | ||
- | ^ NOM ^ DESCRIPTION | ||
- | | VARCHAR(25) | ||
- | | TEXT | permet de stocker un texte de 2%%^%%16 octets | ||
- | | BINARY | ||
- | | ENUM | permet de prendre une valeur parmi celles prédéfinies (par exemple ' | ||
- | |||
- | === Temporel === | ||
- | ^ NOM ^ DESCRIPTION | ||
- | | DATE | permet de stocker une date, plusieurs formats possibles (par défaut : aaaa-mm-jj ) | | ||
- | | DATETIME | ||
- | | TIME | permet de stocker une heure ou une durée (par défaut : "D HH: | ||
- | | YEAR | permet de stocker une année (par défaut : YYYY) | | ||
- | |||
- | |||
- | ==== Utilisateurs ==== | ||
- | créer un utilisateur et lui donner les pleins droits sur une unique base de données | ||
- | <code mysql> | ||
- | CREATE USER ' | ||
- | GRANT ALL ON nomBase.* TO ' | ||
- | </ | ||
- | |||
- | ==== Gérer les BASES de données du serveur ==== | ||
- | <code mysql> | ||
- | CREATE DATABASE nom [CHARACTER SET ' | ||
- | DROP DATABASE nom ; permet de supprimer une base de données | ||
- | USE nom ; | ||
- | </ | ||
- | |||
- | '' | ||
- | |||
- | ==== Gérer les TABLES d'une base ==== | ||
- | CREAT TABLE nom ( permet la création d'une table qui s' | ||
- | colonne1 description_colonne1, | ||
- | .. par exemple : prenom VARCHAR(25) | ||
- | [PRIMARY KEY (colonnex)] | ||
- | ) | ||
- | [ENGINE=moteur] ; | ||
- | |||
- | DESCRIBE table ; permet de d' | ||
- | DROP TABLE nom_table ; permet de supprimer une table, irreversible... | ||
- | |||
- | - MODIFICATION STRUCTURE TABLE - | ||
- | ALTER TABLE nom_table permet de modifier une table, plusieurs fonctions sont disponibles : | ||
- | ADD nom_colonne description ; ajouter une colonne | ||
- | DROP nom_colonne ; | ||
- | CHANGE ancien_nom nouveau_nom desciption ; changer le nom de la colonne et de la description (sauf si identique) | ||
- | MODIFY nom_colonne nouvelle_description ; changer le type de données | ||
- | |||
- | -- INDEX -- | ||
- | ils peuvent être créés directement à la création de la table ou par modification de celle ci : | ||
- | |||
- | ALTER TABLE nom-table méthode 1 pour créer un index | ||
- | ADD INDEX [nom index](col, | ||
- | ADD UNIQUE un index avec contrainte d' | ||
- | ADD FULLTEXT MyISAM seulement, sur les colonnes de texte; caractères... | ||
- | |||
- | CREATE [UNIQUE/ | ||
- | ON nom_table (col,..) | ||
- | |||
- | ALTER TABLLE nom_table requete pour supprimer un index | ||
- | DROP INDEX nom_index | ||
- | |||
- | ------------------------ | ||
- | - AGIR SUR LES DONNEES - | ||
- | ------------------------ | ||
- | -- INSERTION DE DONNEES -- | ||
- | INSERT INTO table (col1, col2) requete pour l' | ||
- | VALUES (valeur1, | ||
- | |||
- | INSERT requete permettant l' | ||
- | INTO table (col1, | ||
- | VALUES (valeur, valeur) | ||
- | ON DUPLICATE KEY UPDATE col=valeur, .. | ||
- | |||
- | SOURCE fichier.sql; | ||
- | |||
- | LOAD DATA LOCAL INFILE ' | ||
- | INTO TABLE nom_table | ||
- | FIELDS TERMINATED BY ';' | ||
- | LINES TERMINATED BY ' | ||
- | IGNORE 1 LINES | ||
- | (col1, | ||
- | |||
- | -- SELECTION DE DONNEES -- | ||
- | SELECT ' | ||
- | SELECT col1, Col2 FROM nom_table ; renvoi toutes les valeurs contenu dans col1 et col2 de la table nom_table | ||
- | SELECT * FROM nom_table ; | ||
- | SELECT colonne renvoi le contenu de colonne de la table dans le cas où col=... | ||
- | FROM table | ||
- | WHERE col=... AND/OR ... | ||
- | |||
- | = < <= > >= != < | ||
- | AND OR XOR NOT | ||
- | IS NOT NULL | ||
- | |||
- | SELECT col FROM table WHERE .. ORDER BY .. permet de trier les données avant de les afficher | ||
- | ORDER BY col DESC/ | ||
- | ORDER BY col1 , col2 trier selon col1, puis col2 | ||
- | |||
- | SELECT DISTINCT col FROM table permet de ne pas afficher de doublon | ||
- | |||
- | SELECT col FROM table LIMIT n OFFSET o limite le nombre de ligne affichée, éventuellement avec un offset | ||
- | |||
- | -- SUPPRESSION DE DONNEES -- | ||
- | DELETE FROM table WHERE critères ; | ||
- | |||
- | -- MODIFICATION DE DONNES -- | ||
- | UPDATE table permet de modifier toutes les lignes pour lesquelles le critère est vrai, la modification porte sur les arguments spécifiés | ||
- | SET col1=valeur, | ||
- | WHERE critère | ||
- | |||
- | -- SAUVEGARDE D'UNE BASE -- | ||
- | outil console : | ||
- | mysqldump -u user -ppassword -B base > file |