mysql
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| mysql [2015/12/06 22:10] – modification externe 127.0.0.1 | mysql [2025/02/28 20:38] (Version actuelle) – luc | ||
|---|---|---|---|
| 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' | ||
| + | |||
| + | ==== Sécuriser une fresh-installation ==== | ||
| + | Après avoir installé mariadb et mariadb-client (ou mysql), il convient de sécuriser l' | ||
| + | |||
| + | > Note: Le script propose d' | ||
| + | > Cela limite l' | ||
| + | > | ||
| + | > - plus rapide quue TCP/IP | ||
| + | > - plus sécurisé, car limite l' | ||
| + | > | ||
| + | > - 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) | | ||
| + | |||
| + | |||
| + | ==== Gérer les UTILISATEURS ==== | ||
| + | <code mysql> | ||
| + | SELECT user FROM mysql.user; | ||
| + | |||
| + | CREATE USER ' | ||
| + | |||
| + | GRANT ALL ON nomBase.* TO ' | ||
| + | </ | ||
| + | |||
| + | ==== Gérer les BASES de données du serveur ==== | ||
| + | <code mysql> | ||
| + | SHOW DATABASES; | ||
| + | CREATE DATABASE nom [CHARACTER SET ' | ||
| + | DROP DATABASE nom ; -- permet de supprimer une base de données | ||
| + | USE nom ; -- spécifie quelle base de données on doit utiliser | ||
| + | </ | ||
| + | |||
| + | == SAUVEGARDE d'une base == | ||
| + | outil console : | ||
| + | <code bash> | ||
| + | mysqldump -u user -ppassword -B base > file | ||
| + | mysqldump -u user -p -B base > file # on aura un prompt pour saisir le password | ||
| + | </ | ||
| + | |||
| + | == RESTORATION d'une base == | ||
| + | en console : | ||
| + | <code bash> | ||
| + | mysql dolibarrdb -u databaseuser -p < mybackupfile.sql | ||
| + | </ | ||
| + | |||
| + | ==== Gérer les TABLES d'une base ==== | ||
| + | == créer == | ||
| + | <code mysql> | ||
| + | CREATE TABLE nom ( -- permet la création d'une table qui s' | ||
| + | colonne1 description_colonne1, | ||
| + | .. -- par exemple : prenom VARCHAR(25) | ||
| + | [PRIMARY KEY (colonnex)] | ||
| + | ) | ||
| + | [ENGINE=moteur] ; -- MYISAM, INNODB | ||
| + | </ | ||
| + | |||
| + | == Visualiser la structure == | ||
| + | |||
| + | <code mysql> | ||
| + | DESCRIBE table ; -- permet de d' | ||
| + | </ | ||
| + | |||
| + | == Modifier la structure == | ||
| + | <code mysql> | ||
| + | ALTER TABLE nom_table -- permet de modifier une table, plusieurs fonctions sont disponibles : | ||
| + | ADD nom_colonne description ; -- ajouter une colonne | ||
| + | DROP nom_colonne ; -- supprimer une 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 | ||
| + | </ | ||
| + | |||
| + | == Supprimer == | ||
| + | <code mysql> | ||
| + | DROP TABLE nom_table ; -- permet de supprimer une table, irréversible... | ||
| + | </ | ||
| + | |||
| + | == Gérer les INDEX d'une table == | ||
| + | ils peuvent être créés directement à la création de la table ou par modification de celle ci : | ||
| + | <code mysql> | ||
| + | ALTER TABLE nom-table | ||
| + | ADD INDEX [nom index](col, | ||
| + | ADD UNIQUE | ||
| + | ADD FULLTEXT | ||
| + | |||
| + | CREATE [UNIQUE/ | ||
| + | ON nom_table (col,..) | ||
| + | |||
| + | ALTER TABLE nom_table | ||
| + | DROP INDEX nom_index | ||
| + | </ | ||
| + | |||
| + | |||
| + | ==== AGIR SUR LES DONNEES ==== | ||
| + | |||
| + | == Ajouter des DONNEES == | ||
| + | <code mysql> | ||
| + | INSERT INTO table (col1, col2) -- requête pour l' | ||
| + | VALUES (valeur1, | ||
| + | |||
| + | INSERT -- requête 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, | ||
| + | </ | ||
| + | |||
| + | == Récupérer des DONNEES == | ||
| + | <code mysql> | ||
| + | SELECT ' | ||
| + | SELECT col1, Col2 FROM nom_table ; -- renvoie toutes les valeurs contenu dans col1 et col2 de la table nom_table | ||
| + | SELECT * FROM nom_table ; -- renvoie tout le contenu de la table (tout le contenu de toutes les colonnes) | ||
| + | SELECT colonne -- renvoie 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 | ||
| + | </ | ||
| + | |||
| + | == Supprimer des DONNEES == | ||
| + | <code mysql> | ||
| + | DELETE FROM table WHERE critères ; -- supprime les lignes de la table pour lesquels le critère est vrai | ||
| + | </ | ||
| + | |||
| + | == Modifier des DONNEES == | ||
| + | <code mysql> | ||
| + | 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 | ||
| + | </ | ||
