====== mysql villes départements régions de France ======
* Objet : Installer une BDD mysql et y insérer des données
* Niveau requis : {{tag>débutant}}
* Référence :
* Référence : http://www.manuelphp.com/mysql/tutorial.php
===== Création des tables =====
* MLD de la BDD :
{{http://pix.toile-libre.org/upload/original/1460440240.png}}
* Script de création
* Il faut avoir créer la bdd ''site1'' :\\
Lancer ce script : https://debian-facile.org/utilisateurs:hypathie:config:script_creation_bdd_mysql_et_user \\
#------------------------------------------------------------
# Script MySQL de la base de données site1.
#------------------------------------------------------------
USE site1;
DROP TABLE IF EXISTS `Rencontres_personnes`;
DROP TABLE IF EXISTS `Personnes`;
DROP TABLE IF EXISTS `Rencontres`;
DROP TABLE IF EXISTS `Adresses`;
DROP TABLE IF EXISTS `Villes_france`;
DROP TABLE IF EXISTS `Departements`;
DROP TABLE IF EXISTS `Regions`;
CREATE TABLE `Regions` (
`num_region` varchar(2) NOT NULL,
`nom` varchar(255) NOT NULL,
PRIMARY KEY (`num_region`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `Departements` (
`num_departement` varchar(3) NOT NULL,
`id_region_dpt` varchar(2) NOT NULL,
`nom` char(32) NOT NULL,
PRIMARY KEY (`num_departement`),
CONSTRAINT FK_region_dpt FOREIGN KEY(`id_region_dpt`) REFERENCES Regions(`num_region`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `Villes_france` (
`ville_id` int NOT NULL,
`departement_code` varchar(3) DEFAULT NULL,
`ville_slug` varchar(255) DEFAULT NULL,
`ville_nom` varchar(45) DEFAULT NULL,
`ville_nom_simple` varchar(45) DEFAULT NULL,
`ville_nom_reel` varchar(45) DEFAULT NULL,
`ville_nom_soundex` varchar(20) DEFAULT NULL,
`ville_nom_metaphone` varchar(22) DEFAULT NULL,
`ville_code_postal` varchar(255) DEFAULT NULL,
`ville_commune` varchar(3) DEFAULT NULL,
`ville_code_commune` varchar(5) NOT NULL,
`ville_arrondissement` smallint(3) unsigned DEFAULT NULL,
`ville_canton` varchar(4) DEFAULT NULL,
`ville_amdi` smallint(5) unsigned DEFAULT NULL,
`ville_population_2010` mediumint(11) unsigned DEFAULT NULL,
`ville_population_1999` mediumint(11) unsigned DEFAULT NULL,
`ville_population_2012` mediumint(10) unsigned DEFAULT NULL COMMENT 'approximatif',
`ville_densite_2010` int(11) DEFAULT NULL,
`ville_surface` float DEFAULT NULL,
`ville_longitude_deg` float DEFAULT NULL,
`ville_latitude_deg` float DEFAULT NULL,
`ville_longitude_grd` varchar(9) DEFAULT NULL,
`ville_latitude_grd` varchar(8) DEFAULT NULL,
`ville_longitude_dms` varchar(9) DEFAULT NULL,
`ville_latitude_dms` varchar(8) DEFAULT NULL,
`ville_zmin` mediumint(4) DEFAULT NULL,
`ville_zmax` mediumint(4) DEFAULT NULL,
PRIMARY KEY (`ville_id`),
UNIQUE KEY `ville_code_commune_2` (`ville_code_commune`),
UNIQUE KEY `ville_slug` (`ville_slug`),
KEY `ville_departement` (`departement_code`),
KEY `ville_nom` (`ville_nom`),
KEY `ville_nom_reel` (`ville_nom_reel`),
KEY `ville_code_commune` (`ville_code_commune`),
KEY `ville_code_postal` (`ville_code_postal`),
KEY `ville_longitude_latitude_deg` (`ville_longitude_deg`,`ville_latitude_deg`),
KEY `ville_nom_soundex` (`ville_nom_soundex`),
KEY `ville_nom_metaphone` (`ville_nom_metaphone`),
KEY `ville_population_2010` (`ville_population_2010`),
KEY `ville_nom_simple` (`ville_nom_simple`),
CONSTRAINT FK_villes_dpt FOREIGN KEY(`departement_code`) REFERENCES Departements(`num_departement`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE Adresses(
idAdresse int NOT NULL AUTO_INCREMENT,
numRue smallint(5),
rue varchar(25) NOT NULL,
Id_adresse_ville int,
codePostal varchar(255),
PRIMARY KEY (`idAdresse`),
CONSTRAINT FK_ville_adresses FOREIGN KEY(`Id_adresse_ville`) REFERENCES Villes_france(`ville_id`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE Personnes(
idPersonne int NOT NULL AUTO_INCREMENT,
nomPers Varchar (30),
prenomPers Varchar (30),
email Varchar (50) NOT NULL,
id_personne_adresse Int NOT NULL,
pseudo Varchar (30),
motPasse Varchar (50),
PRIMARY KEY (idPersonne ),
CONSTRAINT FK_personne_adresse FOREIGN KEY(`id_personne_adresse`) REFERENCES Adresses(`idAdresse`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE Rencontres(
idRencontre int NOT NULL AUTO_INCREMENT,
nomLieu varchar(50) NOT NULL,
id_rencontre_Adresse int NOT NULL,
dates date NOT NULL,
heure_debut time NOT NULL,
heure_fin time,
PRIMARY KEY (idRencontre ),
CONSTRAINT FK_adresse_rencontre FOREIGN KEY(`id_rencontre_Adresse`) REFERENCES Adresses(`idAdresse`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE Rencontres_personnes(
id_personne_rencontre INT REFERENCES PERSONNES(`idPersonne`),
id_rencontre_personne INT REFERENCES RENCONTRES(`idRencontre`)
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
__**Rappel**__
* Voir le détail de la table ''Rencontres'' en mysql :
(Donner le mot de passe de l'utilisateur ''utilisateur1'')
mysql -u utilisateur1 -p site1 -e "describe Rencontres;"
Enter password:
+----------------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+-------------+------+-----+---------+----------------+
| idRencontre | int(11) | NO | PRI | NULL | auto_increment |
| nomLieu | varchar(50) | NO | | NULL | |
| id_rencontre_Adresse | int(11) | NO | MUL | NULL | |
| dates | date | NO | | NULL | |
| heure_debut | time | NO | | NULL | |
| heure_fin | time | YES | | NULL | |
+----------------------+-------------+------+-----+---------+----------------+
* équivalent à :
mysql -u utilisateur1 site1 -p site1
mysql>describe Rencontres;
* équivalent à :
mysql -u utilisateur1 -p site1
mysql> use site1; describe Rencontres;
===== Insertions dans les tables =====
* Récupérer ce fichier pour l'insertion des Villes, départements et régions de France :
{{https://debian-facile.org/images/file-Ra89d9c9c9934b162b81f6b8f944e7e34}}
* Décompression :
apt-get install unrar-free
cd ~/Téléchargements && unrar-free -x insert_villes_departements_regions_france.rar
* Insertion :
C'est un peu long, le fichier pèse 8 Mo !\\
Patience...
mysql -u site1 -p
* script mysql d'insertion des adresses, des personnes, des logins et rencontres :
#------------------------------------------------------------
# Script MySQL insertion dans les tables :
# Adresses
# Personnes
# Rencontres
# de la basse de données site1.
#------------------------------------------------------------
use site1;
#------------------------------------------------------------
# Table: Adresses
#------------------------------------------------------------
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `Adresses`;
SET FOREIGN_KEY_CHECKS=1;
delete from `Adresses`;
INSERT INTO `Adresses` (`numRue`, `rue`, `codePostal`, `Id_adresse_ville`) VALUES
(25, 'rue de hypathie', '73000', 29963),
(56, 'rue de capitaine', '07170', 2123),
(23, 'Avenue Pierre Semard', '26000', 9492);
#------------------------------------------------------------
# Table: Personnes
#------------------------------------------------------------
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `Personnes`;
SET FOREIGN_KEY_CHECKS=1;
delete from `Personnes`;
INSERT INTO `Personnes` (`nomPers`, `prenomPers`, `email`,`pseudo`,`motPasse`, `id_personne_adresse`) VALUES
('Apatchie', 'coquine', 'apachie_coquine@free.fr','hypathie', 'motdepasse1', 1),
('Toutbeau', 'Choubinou', 'toutbeau_choubinou@free.fr','capitain', 'motdepasse2', 2);
#------------------------------------------------------------
# Table: Rencontres
# to insert the value '1999-03-00', use '990300'.
# As a string with no delimiters in 'HHMMSS' format, provided that it makes sense as a time. For example, '101112' is understood as '10:11:12', but '109712' is illegal
# You can also use one of the following “relaxed” syntaxes: 'HH:MM:SS', 'HH:MM', 'D HH:MM', 'D HH', or 'SS'. Here D represents days and can have a value from 0 to 34
#------------------------------------------------------------
SET FOREIGN_KEY_CHECKS=0;
TRUNCATE `Rencontres`;
SET FOREIGN_KEY_CHECKS=1;
delete from `Rencontres`;
INSERT INTO `Rencontres` (`nomLieu`, `id_rencontre_Adresse`, `dates`, `heure_debut`) VALUES
('spécial tango du carousel', 3, '160115', '21:45');