22
0
Fork 0
This commit is contained in:
pdiogoantunes 2017-06-22 10:34:30 +02:00
parent 70878b936a
commit d4612ba20c
1 changed files with 73 additions and 61 deletions

View File

@ -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é :