Administrez vos bases de donnes avec MySQL
Cration et suppression d'une base de donnes
Cration
CREATE DATABASE nom_base;
Cependant, attendez avant de crer votre base de
donnes elevage. Je vous rappelle qu'il faut galement
dfinir l'encodage utilis (l'UTF-8 dans notre cas). Voici
donc la commande complte taper pour crer votre base :
CREATE DATABASE elevage CHARACTER SET 'utf8';
Suppression
DROP DATABASE elevage;
Pour viter un message d'erreur, si vous n'tes pas srs
que la base de donnes existe, vous pouvez utiliser
l'option IF EXISTS, de la manire suivante :
DROP DATABASE IF EXISTS elevage;
Pour afficher les warnings de MySQL, il faut utiliser la
commande
SHOW WARNINGS;
pour pouvoir agir sur cette base, vous devez d'abord la
slectionner. Une fois de plus, la commande est trs simple
:
USE elevage
Prciser un moteur lors de la cration de la table
Les moteurs des tables
Ce sont des moteurs de stockage. Cela permet de grer
diffremment les tables selon l'utilit qu'on en a.
Pour qu'une table utilise le moteur de notre choix, il suffit
d'ajouter ceci la fin de la commande de cration :
ENGINE = moteur;
En remplaant bien sr "moteur" par le nom du moteur que
nous voulons utiliser, ici InnoDB :
ENGINE = INNODB;
MyISAM : Les commandes d'insertion et slection de
donnes sont particulirement rapides sur les tables utilisant
ce moteur. Cependant, il ne gre pas certaines
fonctionnalits importantes comme les cls trangres, qui
permettent de vrifier l'intgrit d'une rfrence d'une table
une autre table.
InnoDB
Plus lent et plus gourmand en ressources que MyISAM, ce
moteur gre les cls trangres et les transactions. tant
donn que nous nous servirons des cls trangres ds la
deuxime partie, c'est celui-l que nous allons utiliser.
De plus, en cas de crash du serveur, il possde un systme
de rcupration automatique des donnes.
Cration de la table
CREATE TABLE [IF NOT EXISTS] Nom_table (
colonne1 description_colonne1,
[colonne2 description_colonne2,
colonne3 description_colonne3,
...,]
[PRIMARY KEY (colonne_cl_primaire)]
)
[ENGINE=moteur];
Vrifications
SHOW TABLES;
donnes
-- liste les tables de la base de
DESCRIBE Animal; -- liste les colonnes de la table avec
leurs caractristiques
Suppression d'une table
DROP TABLE Animal;
Modification d'une table
ALTER TABLE nom_table ADD ... -- permet d'ajouter
quelque chose (une colonne par exemple)
ALTER TABLE nom_table DROP ... -- permet de retirer
quelque chose
ALTER TABLE nom_table CHANGE ...
ALTER TABLE nom_table MODIFY ... -- permettent de
modifier une colonne
Ajout et suppression d'une colonne
Ajout
ALTER TABLE nom_table
ADD [COLUMN] nom_colonne description_colonne;
Exp : ALTER TABLE Test_tuto
ADD COLUMN date_insertion DATE NOT NULL;
Suppression
ALTER TABLE nom_table
DROP [COLUMN] nom_colonne;
Exp : ALTER TABLE Test_tuto
DROP COLUMN date_insertion; -- Suppression de la
colonne date_insertion
Modification de colonne
Changement du nom de la colonne
ALTER TABLE nom_table
CHANGE ancien_nom nouveau_nom description_colonne;
Exp : ALTER TABLE Test_tuto
CHANGE nom prenom VARCHAR(10) NOT NULL;
Changement du type de donnes
Les mots-cls CHANGE et MODIFY peuvent tre utiliss
pour changer le type de donne de la colonne, mais aussi
changer la valeur par dfaut ou ajouter/supprimer une
proprit AUTO_INCREMENT. Si vous utilisez CHANGE,
vous pouvez, comme on vient de le voir, renommer la
colonne en mme temps. Si vous ne dsirez pas la
renommer, il suffit d'indiquer deux fois le mme nom.
Voici les syntaxes possibles :
ALTER TABLE nom_table
CHANGE ancien_nom nouveau_nom nouvelle_description;
ALTER TABLE nom_table
MODIFY nom_colonne nouvelle_description;
Des exemples pour illustrer :
ALTER TABLE Test_tuto
CHANGE prenom nom VARCHAR(30) NOT NULL; -Changement du type + changement du nom
ALTER TABLE Test_tuto
CHANGE id id BIGINT NOT NULL; -- Changement du
type sans renommer
ALTER TABLE Test_tuto
MODIFY id BIGINT NOT NULL AUTO_INCREMENT; -Ajout de l'auto-incrmentation
ALTER TABLE Test_tuto
MODIFY nom VARCHAR(30) NOT NULL DEFAULT
'Blabla'; -- Changement de la description (mme type mais
ajout d'une valeur par dfaut)
Syntaxe de INSERT
INSERT INTO Animal
VALUES (1, 'chien', 'M', '2010-04-05 13:43:00', 'Rox',
'Mordille beaucoup');
Insertion en prcisant les colonnes
INSERT INTO Animal (espece, sexe, date_naissance)
VALUES ('tortue', 'F', '2009-08-03 05:12:00');
INSERT INTO Animal (nom, commentaires,
date_naissance, espece)
VALUES ('Choupi', 'N sans oreille gauche', '2010-1003 16:44:00', 'chat');
INSERT INTO Animal (espece, date_naissance,
commentaires, nom, sexe)
VALUES ('tortue', '2009-06-13 08:17:00', 'Carapace
bizarre', 'Bobosse', 'F');
Insertion multiple
INSERT INTO Animal (espece, sexe, date_naissance, nom)
VALUES ('chien', 'F', '2008-12-06 05:18:00', 'Caroline'),
('chat', 'M', '2008-09-11 15:38:00', 'Bagherra'),
('tortue', NULL, '2010-08-23 05:18:00', NULL);
Syntaxe alternative de MySQL
MySQL propose une syntaxe alternative INSERT
INTO ... VALUES ... pour insrer des donnes dans une
table.
INSERT INTO Animal
SET nom='Bobo', espece='chien', sexe='M',
date_naissance='2010-07-21 15:41:00';