From d4612ba20c78b1a5e596cc03a76c733412ca5e01 Mon Sep 17 00:00:00 2001 From: pdiogoantunes Date: Thu, 22 Jun 2017 10:34:30 +0200 Subject: [PATCH] ordre --- HowtoMySQL.md | 134 +++++++++++++++++++++++++++----------------------- 1 file changed, 73 insertions(+), 61 deletions(-) diff --git a/HowtoMySQL.md b/HowtoMySQL.md index 76a0eda7..d2ad7420 100644 --- a/HowtoMySQL.md +++ b/HowtoMySQL.md @@ -205,12 +205,36 @@ Le répertoire `/var/log/mysql/` contient les *binlogs* (trace de toutes les req ## Utilisation courante +### Créer + Créer une nouvelle base de données nommée _foo_ : ~~~{.sql} mysql> CREATE DATABASE foo; ~~~ +Créer une table nommée _bar_ avec différents champs : + +~~~{.sql} +mysql> CREATE TABLE bar (id INT not null AUTO_INCREMENT, prenom VARCHAR +(50) not null , nom VARCHAR (50) not null , ne_le DATE not null , +ville VARCHAR (90), enfants INT, PRIMARY KEY (id)); +~~~ + +Ajouter un champ à une table : + +~~~{.sql} +mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL; +~~~ + +Ajouter un champ à une table en précisant sa place : + +~~~{.sql} +mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL AFTER prenom; +~~~ + +### Lister + Voir les bases de données créées : ~~~{.sql} @@ -229,63 +253,49 @@ Voir les tables créées : mysql> SHOW TABLES; ~~~ -Créer une table nommée _bar_ avec différents champs : - -~~~{.sql} -mysql> CREATE TABLE bar (id INT not null AUTO_INCREMENT, prenom VARCHAR -(50) not null , nom VARCHAR (50) not null , ne_le DATE not null , -ville VARCHAR (90), enfants INT, PRIMARY KEY (id)); -~~~ - Décrire une table : ~~~{.sql} mysql> DESC bar; ~~~ -Ajouter un champ à une table : +Sélectionner tous les champs d'une table : ~~~{.sql} -mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL; +mysql> SELECT * FROM bar; ~~~ -Ajouter un champ à une table en précisant sa place : +Lancer des commandes bash depuis l'invite de commande : -~~~{.sql} -mysql> ALTER TABLE bar ADD another VARCHAR(100) DEFAULT NULL AFTER prenom; +~~~{ .sql } +mysql> \! ls -l +-rw-r----- 1 user user 208774 Jan 11 14:31 dump_base.sql ~~~ +Lister les droits pour tous les accès MySQL créés : + +~~~ +# mysql -e "select concat('\'',User,'\'@\'',Host,'\'') as '' from mysql.user" | sort | \ +( while read user; do [ -z "$user" ] && continue; echo "-- $user :"; mysql -e "show grants for $user"; done ) + +-- 'accesbase'@'localhost' : +Grants for accesbase@localhost +GRANT USAGE ON *.* TO 'accesbase'@'localhost' IDENTIFIED BY PASSWORD '*XXXX' +GRANT ALL PRIVILEGES ON `base`.* TO 'accesbase'@'localhost' +~~~ + +~~~ +# mysql -e "select * from information_schema.user_privileges;" +~~~ + +### Supprimer + Supprimer un champ à une table : ~~~{.sql} mysql> ALTER TABLE bar DROP another; ~~~ -Renommer un champ : - -~~~{.sql} -mysql> ALTER TABLE bar CHANGE COLUMN another anotherone TEXT; -~~~ - -Changer le type d'un champ : - -~~~{.sql} -mysql> ALTER TABLE bar CHANGE another another enum('foo',bar'); -~~~ - -Insertion de données dans une table : - -~~~{.sql} -mysql> INSERT INTO bar VALUES (1,'jp','papin','2005-06-12','Marseille',2); -INSERT INTO test (id,prenom,nom,ne_le) VALUES (2,'c','waddle','2004-06-17'); -~~~ - -Sélectionner tous les champs d'une table : - -~~~{.sql} -mysql> SELECT * FROM bar; -~~~ - Effacer des données d'une table : ~~~{.sql} @@ -322,30 +332,9 @@ Supprimer un accès (utilisateur) : mysql> DROP USER 'user'@'localhost'; ~~~ -Lancer des commandes bash depuis l'invite de commande : +### Renommer -~~~{ .sql } -mysql> \! ls -l --rw-r----- 1 user user 208774 Jan 11 14:31 dump_base.sql -~~~ - -Lister les droits pour tous les accès MySQL créés : - -~~~ -# mysql -e "select concat('\'',User,'\'@\'',Host,'\'') as '' from mysql.user" | sort | \ -( while read user; do [ -z "$user" ] && continue; echo "-- $user :"; mysql -e "show grants for $user"; done ) - --- 'accesbase'@'localhost' : -Grants for accesbase@localhost -GRANT USAGE ON *.* TO 'accesbase'@'localhost' IDENTIFIED BY PASSWORD '*XXXX' -GRANT ALL PRIVILEGES ON `base`.* TO 'accesbase'@'localhost' -~~~ - -~~~ -# mysql -e "select * from information_schema.user_privileges;" -~~~ - -### Renommer une base +#### Base - Créer une base vide - Renommer toutes les tables vers cette dernière (utilisation script ci-dessous) @@ -355,6 +344,29 @@ BASE_FROM=bf_griffe16; BASE_TO=bf_griffe16_old for table in $(mysql -e "use $BASE_FROM; show tables\G;" | grep -v '^\*\*\*' | cut -d':' -f2 | sed 's/^ //'); do echo $table; mysql -e "RENAME TABLE ${BASE_FROM}.${table} TO ${BASE_TO}.${table};"; done ~~~ +#### Table + +Renommer un champ : + +~~~{.sql} +mysql> ALTER TABLE bar CHANGE COLUMN another anotherone TEXT; +~~~ + +Changer le type d'un champ : + +~~~{.sql} +mysql> ALTER TABLE bar CHANGE another another enum('foo',bar'); +~~~ + +### Insérer + +Insertion de données dans une table : + +~~~{.sql} +mysql> INSERT INTO bar VALUES (1,'jp','papin','2005-06-12','Marseille',2); +INSERT INTO test (id,prenom,nom,ne_le) VALUES (2,'c','waddle','2004-06-17'); +~~~ + ## Administration On crée une base de données et un utilisateur associé :