Vous êtes dans la categorie Tutoriel SQL

Mémo : les fonctions utiles en SQL

Rédigé par fab1 aucun commentaire

Il est possible de faire un très grand nombre de choses avec le langage SQL qui est un grand allié pour interroger et manipuler les données une fois maitrisé. Après un précédent mémento qui concerne l'utilisation de SQL en général, on passe maintenant à ce billet qui s'occupe cette fois d'évoquer les fonctions les plus courantes disponibles avec MySQL.

Cette liste des fonctions SQL ne sera pas exhaustive mais je vais tenter de mentionner les principales à ne pas oublier. On commence tout de suite avec les fonctions qui permettent d'effectuer des calculs.

Fonctions pour calculer avec MySQL

Calculer la somme totale d'une colonne :

SELECT SUM(nomdecolonne)FROM table

Trouver et retourner la valeur minimale sur une colonne :

SELECT MIN(nomdecolonne) FROM table

Trouver et retourner la valeur maximale sur une colonne :

SELECT MAX(nomdecolonne) FROM table 

Retourner le nombre d'enregistrement une colonne :

SELECT COUNT(nomdecolonne) FROM table

Arrondir une valeur (le deuxième paramètre indique le nombre de chiffres après la virgule) :

SELECT ROUND(nomdecolonne, 2) FROM table

Obtenir un nombre aléatoire entre 0 et 100 avec SQL :

SELECT RAND() * 100;

Calculer la moyenne sur une colonne :

SELECT AVG(macolonne) FROM matable 

Fonctions pour manipuler les dates en SQL

Obtenir la date actuelle complète (2015-04-28 10:10:34) :

SELECT NOW(); 

Obtenir seulement la date (2015-04-28):

SELECT CURDATE();

Obtenir seulement l'heure (10:10:34) :

 SELECT CURTIME();

Fonctions pour les chaines de caractères avec SQL

Mettre l'ensemble des caractères d'une chaine en majuscules :

SELECT UPPER(macolonne) FROM matable

Mettre l'ensemble des caractères d'une chaine en majuscules :

SELECT LOWER(macolonne) FROM matable

Concaténer des chaînes de caractères avec MySQL :

SELECT monid, CONCAT(macolonne1,macolonne2) FROM matable
SELECT macolonne1 FROM matable
WHERE colonne1 = CONCAT(macolonne2,macolonne3)

Classé dans : Tutoriel SQL

Mémo MySQL : l'aide mémoire ultime pour se souvenir de la syntaxe des commandes SQL

Rédigé par fab1 aucun commentaire

Lorsque l'on commence le SQL, ce n'est pas toujours très simple de s'y retrouver tant il est possible de faire des choses sous MySQL, j'espère que ce mémento pourra vous aider. Il arrive alors que l'on soit un peu perdu et cela ne devrait pas vous décourager de continuer à apprendre ce formidable langage qui permet de "discuter" et donc"échanger" avec les données pour les récupérer. La base n'est pas très compliquée mais vous pouvez vite vous perdre en tant que débutant. Nous allons donc attaquer la première partie de ce tutoriel qui consiste à mettre en place notre base de données :

Se connecter à MySQL en ligne de commande sous Linux :

mysql ‐u nomutilisateur ‐p

Afficher les bases de données MySQL existantes :

SHOW DATABASES;

Se placer et utiliser une base de données :

USE nomdelabdd;

Afficher les tables de cette base de données :

SHOW TABLES;

Afficher la structure (colonnes) d'une table de la base de données :

DESCRIBE nomdelatable;

Manipulation d'une base de données MySQL

Création de la base de données :

CREATE DATABASE nomdelabdd;

Supprimer la base de données :

DROP DATABASE nomdelabdd;

Manipulation des tables d'une base de données MySQL

Création d'une table :

CREATE TABLE nomdelatable
(
nomcolonne1 INT,
nomcolonne2 FLOAT,
nomcolonne3 VARCHAR(50),
nomcolonne3 CHAR(50)
);

Supprimer une table :

DROP TABLE nomdelatable;

Modification d'une table

Ajouter une colonne à une table :

ALTER TABLE nomdelatable ADD nomdecolonne INT;
ALTER TABLE nomdelatable ADD nomdecolonne1 VARCHAR(50);

ALTER TABLE nomdelatable ADD COLUMN nomdelacolonne INT;

Supprimer une colonne d'une table :

ALTER TABLE nomdelatable DROP COLUMN nomdecolonne1;

Renommer / changer le nom d'une colonne de la table :

ALTER TABLE nomdelatable RENAME AS lenouveaunomdelatable

ALTER TABLE nomancientable RENAME TO nomnouveautable;

RENAME TABLE nomancientable TO nomnouveautable;

Renommer / changer le type d'une colonne :

ALTER TABLE nomdelatable CHANGE nomdelacolonne nouveaunomdelacolonne INT;

Ajouter une contrainte de clé primaire sur une colonne d'une table :

ALTER TABLE nomdelatable ADD PRIMARY KEY (nomcolonne);

ALTER TABLE nomdelatable
ADD CONSTRAINT pk_nomdelacontrainte PRIMARY KEY (nomcolonne);

Supprimer une contrainte de clé primaire sur une colonne :

ALTER TABLE nomdelatable DROP PRIMARY KEY;

Ajouter une contrainte de clé étrangère sur une colonne d'une table :

ALTER TABLE nomdelatable ADD CONSTRAINT fk_nomdelacontrainte 
FOREIGN KEY (nomcolonne) REFERENCES tabledereference(nomcolonne);

Supprimer une contrainte de clé étrangère sur une colonne d'une table :

ALTER TABLE nomdelatable DROP CONSTRAINT fk_nomdelacontrainte;

Requêtes SQL de base

Afficher / sélectionner des enregistrements d'une table SQL :

SELECT nomcolonne FROM nomtable;

Afficher / sélectionner des enregistrements d'une table SQL de façon distincte :

SELECT DISTINCT nomcolonne FROM nomtable;

Afficher / sélectionner des enregistrements d'une table SQL avec une condition :

SELECT nomcolonne FROM nomtable WHERE nomcolonne = '1';
SELECT nomcolonne FROM nomtable WHERE nomcolonne LIKE '%.com';

Afficher / sélectionner des enregistrements de plusieurs tables via une jointure internet :

SELECT colonne1, colonne2, colonne3
FROM table1
INNER JOIN table2
ON table1.colonne1=table2.colonne3
WHERE colonne1 = 'cequejecherche'

Mise à jour de l'ensemble des enregistrements sur une colonne d'une table :

UPDATE nomtable
SET nomcolonne1='mavaleur',nomcolonne2='mavaleur2'

Mise à jour de l'ensemble des enregistrements sur une colonne d'une table avec une condition :

UPDATE nomtable
SET nomcolonne1='mavaleur',nomcolonne2='mavaleur2'
WHERE nomcolonne3 ='0'

Insérer un enregistrement dans une table :

INSERT INTO nomtable (colonne1,colonne2,colonne3)
VALUES (valeu1,valeur2,valeur3);

Supprimer un enregistrement dans une table :

DELETE FROM nomtable WHERE nomcolonne='lavaleur'

Classé dans : Tutoriel SQL

SQL : liste des régions et des départements correspondants dans une autre table

Rédigé par fab1 aucun commentaire

Vous vous souvenez surement de ma petite liste des départements, avec leur nom commun, le nom en majuscule et minuscule. Mais cela n'est pas suffisant pour un SGBR relationnel, il faut donc rendre cette table plus intelligente et par exemple intégrer les régions qui contiennent justement ces départements. Ainsi, avec ces deux tables MySQL, il est alors possible de lister les départements par région dans une liste déroulante ce qui peut être très pratique dans un formulaire pour éviter les erreurs de saisie. De cette manière, le visiteur ne peut pas choisir un département et une région qui ne correspondent pas plutôt pratique non ? Ce sera d'ailleurs l'objet d'un tutoriel PHP qui détaillera la manipulation pour créer ce menu avec deux listes déroulantes.

On passe donc à notre petite base de donnée avec la création d'une table SQL qui contient la liste des régions et une autre avec les départements en lien avec ces régions. Le script SQL pour créer ces deux tables est alors le suivant :

-- 
-- Base de données: `regions`
-- 

-- --------------------------------------------------------

-- 
-- Structure de la table `region`
-- 

CREATE TABLE `region` (
  `id_region`   tinyint(4)   NOT NULL   auto_increment,
  `region`      varchar(50)   NOT NULL   default '',
  PRIMARY KEY  (`id_region`)
);

-- --------------------------------------------------------

-- 
-- Structure de la table `departement`
-- 

CREATE TABLE `departement` (
  `id_departement`   char(2)   NOT NULL   default '',
  `departement`      varchar(50)   NOT NULL   default '',
  `id_region`      tinyint(4)   NOT NULL   default '0',
  PRIMARY KEY  (`id_departement`),
  KEY `id_region` (`id_region`)
);

-- --------------------------------------------------------

-- 
-- Contenu de la table `region`
-- 

INSERT INTO `region` VALUES (1, 'Alsace');
INSERT INTO `region` VALUES (2, 'Aquitaine');
INSERT INTO `region` VALUES (3, 'Auvergne');
INSERT INTO `region` VALUES (4, 'Basse-Normandie');
INSERT INTO `region` VALUES (5, 'Bourgogne');
INSERT INTO `region` VALUES (6, 'Bretagne');
INSERT INTO `region` VALUES (7, 'Centre');
INSERT INTO `region` VALUES (8, 'Champagne');
INSERT INTO `region` VALUES (9, 'Corse');
INSERT INTO `region` VALUES (10, 'Franche-Comté');
INSERT INTO `region` VALUES (11, 'Haute-Normandie');
INSERT INTO `region` VALUES (12, 'Île-de-France');
INSERT INTO `region` VALUES (13, 'Languedoc-Roussillon');
INSERT INTO `region` VALUES (14, 'Limousin');
INSERT INTO `region` VALUES (15, 'Lorraine');
INSERT INTO `region` VALUES (16, 'Midi-Pyrénées');
INSERT INTO `region` VALUES (17, 'Nord-pas-de-Calais');
INSERT INTO `region` VALUES (18, 'Pays de la Loire');
INSERT INTO `region` VALUES (19, 'Picardie');
INSERT INTO `region` VALUES (20, 'Poitou-Charentes');
INSERT INTO `region` VALUES (21, 'Provence-Alpes-Côte-d\'Azur');
INSERT INTO `region` VALUES (22, 'Rhône-Alpes');

-- 
-- Contenu de la table `departement`
-- 

INSERT INTO `departement` VALUES ('01', 'Ain', 22);
INSERT INTO `departement` VALUES ('02', 'Aisne', 19);
INSERT INTO `departement` VALUES ('03', 'Allier', 3);
INSERT INTO `departement` VALUES ('04', 'Alpes-de-Haute-Provence', 21);
INSERT INTO `departement` VALUES ('05', 'Hautes-Alpes', 21);
INSERT INTO `departement` VALUES ('06', 'Alpes-Maritimes', 21);
INSERT INTO `departement` VALUES ('07', 'Ardèche', 22);
INSERT INTO `departement` VALUES ('08', 'Ardennes', 8);
INSERT INTO `departement` VALUES ('09', 'Ariège', 16);
INSERT INTO `departement` VALUES ('10', 'Aube', 8);
INSERT INTO `departement` VALUES ('11', 'Aude', 13);
INSERT INTO `departement` VALUES ('12', 'Aveyron', 16);
INSERT INTO `departement` VALUES ('13', 'Bouches-du-Rhône', 21);
INSERT INTO `departement` VALUES ('14', 'Calvados', 4);
INSERT INTO `departement` VALUES ('15', 'Cantal', 3);
INSERT INTO `departement` VALUES ('16', 'Charente', 20);
INSERT INTO `departement` VALUES ('17', 'Charente-Maritime', 20);
INSERT INTO `departement` VALUES ('18', 'Cher', 7);
INSERT INTO `departement` VALUES ('19', 'Corrèze', 14);
INSERT INTO `departement` VALUES ('2A', 'Corse-du-Sud', 9);
INSERT INTO `departement` VALUES ('2B', 'Haute-Corse', 9);
INSERT INTO `departement` VALUES ('21', 'Côte-d\'Or', 5);
INSERT INTO `departement` VALUES ('22', 'Côtes-d\'Armor', 6);
INSERT INTO `departement` VALUES ('23', 'Creuse', 14);
INSERT INTO `departement` VALUES ('24', 'Dordogne', 2);
INSERT INTO `departement` VALUES ('25', 'Doubs', 10);
INSERT INTO `departement` VALUES ('26', 'Drôme', 22);
INSERT INTO `departement` VALUES ('27', 'Eure', 11);
INSERT INTO `departement` VALUES ('28', 'Eure-et-Loir', 7);
INSERT INTO `departement` VALUES ('29', 'Finistère', 6);
INSERT INTO `departement` VALUES ('30', 'Gard', 13);
INSERT INTO `departement` VALUES ('31', 'Haute-Garonne', 16);
INSERT INTO `departement` VALUES ('32', 'Gers', 16);
INSERT INTO `departement` VALUES ('33', 'Gironde', 2);
INSERT INTO `departement` VALUES ('34', 'Hérault', 13);
INSERT INTO `departement` VALUES ('35', 'Ille-et-Vilaine', 6);
INSERT INTO `departement` VALUES ('36', 'Indre', 7);
INSERT INTO `departement` VALUES ('37', 'Indre-et-Loire', 7);
INSERT INTO `departement` VALUES ('38', 'Isère', 22);
INSERT INTO `departement` VALUES ('39', 'Jura', 10);
INSERT INTO `departement` VALUES ('40', 'Landes', 2);
INSERT INTO `departement` VALUES ('41', 'Loir-et-Cher', 7);
INSERT INTO `departement` VALUES ('42', 'Loire', 22);
INSERT INTO `departement` VALUES ('43', 'Haute-Loire', 3);
INSERT INTO `departement` VALUES ('44', 'Loire-Atlantique', 18);
INSERT INTO `departement` VALUES ('45', 'Loiret', 7);
INSERT INTO `departement` VALUES ('46', 'Lot', 16);
INSERT INTO `departement` VALUES ('47', 'Lot-et-Garonne', 2);
INSERT INTO `departement` VALUES ('48', 'Lozère', 13);
INSERT INTO `departement` VALUES ('49', 'Maine-et-Loire', 18);
INSERT INTO `departement` VALUES ('50', 'Manche', 4);
INSERT INTO `departement` VALUES ('51', 'Marne', 8);
INSERT INTO `departement` VALUES ('52', 'Haute-Marne', 8);
INSERT INTO `departement` VALUES ('53', 'Mayenne', 18);
INSERT INTO `departement` VALUES ('54', 'Meurthe-et-Moselle', 15);
INSERT INTO `departement` VALUES ('55', 'Meuse', 15);
INSERT INTO `departement` VALUES ('56', 'Morbihan', 6);
INSERT INTO `departement` VALUES ('57', 'Moselle', 15);
INSERT INTO `departement` VALUES ('58', 'Nièvre', 5);
INSERT INTO `departement` VALUES ('59', 'Nord', 17);
INSERT INTO `departement` VALUES ('60', 'Oise', 19);
INSERT INTO `departement` VALUES ('61', 'Orne', 4);
INSERT INTO `departement` VALUES ('62', 'Pas-de-Calais', 17);
INSERT INTO `departement` VALUES ('63', 'Puy-de-Dôme', 3);
INSERT INTO `departement` VALUES ('64', 'Pyrénées-Atlantiques', 2);
INSERT INTO `departement` VALUES ('65', 'Hautes-Pyrénées', 16);
INSERT INTO `departement` VALUES ('66', 'Pyrénées-Orientales', 13);
INSERT INTO `departement` VALUES ('67', 'Bas-Rhin', 1);
INSERT INTO `departement` VALUES ('68', 'Haut-Rhin', 1);
INSERT INTO `departement` VALUES ('69', 'Rhône', 22);
INSERT INTO `departement` VALUES ('70', 'Haute-Saône', 10);
INSERT INTO `departement` VALUES ('71', 'Saône-et-Loire', 5);
INSERT INTO `departement` VALUES ('72', 'Sarthe', 18);
INSERT INTO `departement` VALUES ('73', 'Savoie', 22);
INSERT INTO `departement` VALUES ('74', 'Haute-Savoie', 22);
INSERT INTO `departement` VALUES ('75', 'Paris', 12);
INSERT INTO `departement` VALUES ('76', 'Seine-Maritime', 11);
INSERT INTO `departement` VALUES ('77', 'Seine-et-Marne', 12);
INSERT INTO `departement` VALUES ('78', 'Yvelines', 12);
INSERT INTO `departement` VALUES ('79', 'Deux-Sèvres', 20);
INSERT INTO `departement` VALUES ('80', 'Somme', 19);
INSERT INTO `departement` VALUES ('81', 'Tarn', 16);
INSERT INTO `departement` VALUES ('82', 'Tarn-et-Garonne', 16);
INSERT INTO `departement` VALUES ('83', 'Var', 21);
INSERT INTO `departement` VALUES ('84', 'Vaucluse', 21);
INSERT INTO `departement` VALUES ('85', 'Vendée', 18);
INSERT INTO `departement` VALUES ('86', 'Vienne', 20);
INSERT INTO `departement` VALUES ('87', 'Haute-Vienne', 14);
INSERT INTO `departement` VALUES ('88', 'Vosges', 15);
INSERT INTO `departement` VALUES ('89', 'Yonne', 5);
INSERT INTO `departement` VALUES ('90', 'Territoire de Belfort', 10);
INSERT INTO `departement` VALUES ('91', 'Essonne', 12);
INSERT INTO `departement` VALUES ('92', 'Hauts-de-Seine', 12);
INSERT INTO `departement` VALUES ('93', 'Seine-Saint-Denis', 12);
INSERT INTO `departement` VALUES ('94', 'Val-de-Marne', 12);
INSERT INTO `departement` VALUES ('95', 'Val-d\'Oise', 12);

Classé dans : Tutoriel SQL

SQL : table qui liste les mots clés réservés par le SGBDR MySQL

Rédigé par fab1 aucun commentaire

Ce qui est pratique avec le SGBDR MySQL, c'est la possibilité de pouvoir stocker un grand nombre d'informations de manière simple et surtout organisée, c'est le deuxième point qui est très important. Avec des systèmes de stockage de données où tout est à "plat", cela devient parfois compliqué et il faut alors tout refaire ...

Aujourd'hui, je ne vais pas vous parler d'intégrité des données mais je vous propose une nouvelle table qui s'occupe de lister l'ensemble des mots clés réservés par le SGBDR MySQL. Peut-être que vous n'en trouvez pas l'utilité maintenant, mais qui sait, ce besoin arrivera surement un jour ... D'ailleurs n'oubliez pas que vous avez d'autres tables SQL qui pourront peut être vous aider alors n'hésitez pas à aller faire un tour !

On passe donc à notre petit table SQL qui s'occupe de nous lister l'ensemble des mots clés réservés par le SGBDR MySQL :

-- phpMyAdmin SQL Dump
-- version 4.1.14
-- http://www.phpmyadmin.net
--
-- Client :  127.0.0.1
-- Généré le :  Lun 23 Mars 2015 à 11:27
-- Version du serveur :  5.6.17
-- Version de PHP :  5.5.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données :  `bdd`
--

-- --------------------------------------------------------

--
-- Structure de la table `mot_cle_sql_reserve`
--

CREATE TABLE IF NOT EXISTS `mot_cle_sql_reserve` (
  `id_mot_cle` int(11) NOT NULL AUTO_INCREMENT,
  `libelle_mot_cle` varchar(50) COLLATE utf8_bin NOT NULL,
  PRIMARY KEY (`id_mot_cle`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=224 ;

--
-- Contenu de la table `mot_cle_sql_reserve`
--

INSERT INTO `mot_cle_sql_reserve` (`id_mot_cle`, `libelle_mot_cle`) VALUES
(1, 'ACCESSIBLE'),
(2, 'ALTER'),
(3, 'AS'),
(4, 'BEFORE'),
(5, 'BINARY'),
(6, 'BY'),
(7, 'CASE'),
(8, 'CHARACTER'),
(9, 'COLUMN'),
(10, 'CONTINUE'),
(11, 'CROSS'),
(12, 'CURRENT_TIMESTAMP'),
(13, 'DATABASE'),
(14, 'DAY_MICROSECOND'),
(15, 'DEC'),
(16, 'DEFAULT'),
(17, 'DESC'),
(18, 'DISTINCT'),
(19, 'DOUBLE'),
(20, 'EACH'),
(21, 'ENCLOSED'),
(22, 'EXIT'),
(23, 'FETCH'),
(24, 'FLOAT8'),
(25, 'FOREIGN'),
(26, 'GRANT'),
(27, 'HIGH_PRIORITY'),
(28, 'HOUR_SECOND'),
(29, 'IN'),
(30, 'INNER'),
(31, 'INSERT'),
(32, 'INT2'),
(33, 'INT8'),
(34, 'INTO'),
(35, 'JOIN'),
(36, 'KILL'),
(37, 'LEFT'),
(38, 'LINEAR'),
(39, 'LOCALTIME'),
(40, 'LONG'),
(41, 'LOOP'),
(42, 'MATCH'),
(43, 'MEDIUMTEXT'),
(44, 'MINUTE_SECOND'),
(45, 'NATURAL'),
(46, 'NULL'),
(47, 'OPTIMIZE'),
(48, 'OR'),
(49, 'OUTER'),
(50, 'PRIMARY'),
(51, 'RANGE'),
(52, 'READ_WRITE'),
(53, 'REGEXP'),
(54, 'REPEAT'),
(55, 'RESTRICT'),
(56, 'RIGHT'),
(57, 'SCHEMAS'),
(58, 'SENSITIVE'),
(59, 'SHOW'),
(60, 'SPECIFIC'),
(61, 'SQLSTATE'),
(62, 'SQL_CALC_FOUND_ROWS'),
(63, 'STARTING'),
(64, 'TERMINATED'),
(65, 'TINYINT'),
(66, 'TRAILING'),
(67, 'UNDO'),
(68, 'UNLOCK'),
(69, 'USAGE'),
(70, 'UTC_DATE'),
(71, 'VALUES'),
(72, 'VARCHARACTER'),
(73, 'WHERE'),
(74, 'WRITE'),
(75, 'ZEROFILL'),
(76, 'ALL'),
(77, 'AND'),
(78, 'ASENSITIVE'),
(79, 'BIGINT'),
(80, 'BOTH'),
(81, 'CASCADE'),
(82, 'CHAR'),
(83, 'COLLATE'),
(84, 'CONSTRAINT'),
(85, 'CREATE'),
(86, 'CURRENT_TIME'),
(87, 'CURSOR'),
(88, 'DAY_HOUR'),
(89, 'DAY_SECOND'),
(90, 'DECLARE'),
(91, 'DELETE'),
(92, 'DETERMINISTIC'),
(93, 'DIV'),
(94, 'DUAL'),
(95, 'ELSEIF'),
(96, 'EXISTS'),
(97, 'FALSE'),
(98, 'FLOAT4'),
(99, 'FORCE'),
(100, 'FULLTEXT'),
(101, 'HAVING'),
(102, 'HOUR_MINUTE'),
(103, 'IGNORE'),
(104, 'INFILE'),
(105, 'INSENSITIVE'),
(106, 'INT1'),
(107, 'INT4'),
(108, 'INTERVAL'),
(109, 'ITERATE'),
(110, 'KEYS'),
(111, 'LEAVE'),
(112, 'LIMIT'),
(113, 'LOAD'),
(114, 'LOCK'),
(115, 'LONGTEXT'),
(116, 'MASTER_SSL_VERIFY_SERVER_CERT'),
(117, 'MEDIUMINT'),
(118, 'MINUTE_MICROSECOND'),
(119, 'MODIFIES'),
(120, 'NO_WRITE_TO_BINLOG'),
(121, 'ON'),
(122, 'OPTIONALLY'),
(123, 'OUT'),
(124, 'PRECISION'),
(125, 'PURGE'),
(126, 'READS'),
(127, 'REFERENCES'),
(128, 'RENAME'),
(129, 'REQUIRE'),
(130, 'REVOKE'),
(131, 'SCHEMA'),
(132, 'SELECT'),
(133, 'SET'),
(134, 'SPATIAL'),
(135, 'SQLEXCEPTION'),
(136, 'SQL_BIG_RESULT'),
(137, 'SSL'),
(138, 'TABLE'),
(139, 'TINYBLOB'),
(140, 'TO'),
(141, 'TRUE'),
(142, 'UNIQUE'),
(143, 'UPDATE'),
(144, 'USING'),
(145, 'UTC_TIMESTAMP'),
(146, 'VARCHAR'),
(147, 'WHEN'),
(148, 'WITH'),
(149, 'YEAR_MONTH'),
(150, 'ADD'),
(151, 'ANALYZE'),
(152, 'ASC'),
(153, 'BETWEEN'),
(154, 'BLOB'),
(155, 'CALL'),
(156, 'CHANGE'),
(157, 'CHECK'),
(158, 'CONDITION'),
(159, 'CONVERT'),
(160, 'CURRENT_DATE'),
(161, 'CURRENT_USER'),
(162, 'DATABASES'),
(163, 'DAY_MINUTE'),
(164, 'DECIMAL'),
(165, 'DELAYED'),
(166, 'DESCRIBE'),
(167, 'DISTINCTROW'),
(168, 'DROP'),
(169, 'ELSE'),
(170, 'ESCAPED'),
(171, 'EXPLAIN'),
(172, 'FLOAT'),
(173, 'FOR'),
(174, 'FROM'),
(175, 'GROUP'),
(176, 'HOUR_MICROSECOND'),
(177, 'IF'),
(178, 'INDEX'),
(179, 'INOUT'),
(180, 'INT'),
(181, 'INT3'),
(182, 'INTEGER'),
(183, 'IS'),
(184, 'KEY'),
(185, 'LEADING'),
(186, 'LIKE'),
(187, 'LINES'),
(188, 'LOCALTIMESTAMP'),
(189, 'LONGBLOB'),
(190, 'LOW_PRIORITY'),
(191, 'MEDIUMBLOB'),
(192, 'MIDDLEINT'),
(193, 'MOD'),
(194, 'NOT'),
(195, 'NUMERIC'),
(196, 'OPTION'),
(197, 'ORDER'),
(198, 'OUTFILE'),
(199, 'PROCEDURE'),
(200, 'READ'),
(201, 'REAL'),
(202, 'RELEASE'),
(203, 'REPLACE'),
(204, 'RETURN'),
(205, 'RLIKE'),
(206, 'SECOND_MICROSECOND'),
(207, 'SEPARATOR'),
(208, 'SMALLINT'),
(209, 'SQL'),
(210, 'SQLWARNING'),
(211, 'SQL_SMALL_RESULT'),
(212, 'STRAIGHT_JOIN'),
(213, 'THEN'),
(214, 'TINYTEXT'),
(215, 'TRIGGER'),
(216, 'UNION'),
(217, 'UNSIGNED'),
(218, 'USE'),
(219, 'UTC_TIME'),
(220, 'VARBINARY'),
(221, 'VARYING'),
(222, 'WHILE'),
(223, 'XOR');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Classé dans : Tutoriel SQL

SQL : liste des services d'email jetable dans une table

Rédigé par fab1 aucun commentaire

Lorsque l'on est webmaster d'un site web, les services d’émail jetable sont parfois un véritable problème du coté de l'administration ... En effet il est compliqué de transférer un émail de confirmation lors de la création d'un compte, ces boites mails sont en général valide pour une durée temporaire et parfois même public si l'on arrive à obtenir le nom d'utilisateur sur certains services. Vous l'avez compris, ces services de boite mail jetable / poubelle sont un problème qu'il faut gérer, imaginez un internaute qui essaye de récupérer son mot de passe via mail plusieurs mois après ... Entre la pérennité relative de ce genre de service, la maigre sécurité qu'ils proposent, les problèmes pour entrer en contact avec ses membres et toutes les autres soucis qui en découle, il faut éviter que nos visiteurs et futurs membres puissent s'inscrire à l'aide de ce genre de service.

Pour cela nous allons réaliser une table MySQL qui va lister l'ensemble des services d’émail jetables /poubelles, il suffit alors d'aller vérifier dans cette table email_jetable_poubelle lorsqu'un internaute soumet un email pour lui refuser l'inscription si son adresse mail est fourni par un service dans la liste, ce sera l'objet d'un autre tutoriel. On passe maintenant à cette fameuse table qui comporte un peu plus de 300 enregistrements ce qui offre un bon panel de service d’émail jetable :

-- phpMyAdmin SQL Dump
-- version 4.1.14
-- http://www.phpmyadmin.net
--
-- Client :  127.0.0.1
-- Généré le :  Ven 06 Mars 2015 à 11:48
-- Version du serveur :  5.6.17
-- Version de PHP :  5.5.12

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de données :  `email`
--

-- --------------------------------------------------------

--
-- Structure de la table `email_jetable_poubelle`
--

CREATE TABLE IF NOT EXISTS `email_jetable_poubelle` (
  `id_email` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `domaine_email` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`id_email`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=310 ;

--
-- Contenu de la table `email_jetable_poubelle`
--

INSERT INTO `email_jetable_poubelle` (`id_email`, `domaine_email`) VALUES
(1, '0815.ru0clickemail.com'),
(2, '0-mail.com'),
(3, '0wnd.net'),
(4, '0wnd.org'),
(5, '10minutemail.com'),
(6, '20minutemail.com'),
(7, '2prong.com'),
(8, '3d-painting.com'),
(9, '4warding.com'),
(10, '4warding.net'),
(11, '4warding.org'),
(12, '9ox.net'),
(13, 'a-bc.net'),
(14, 'ag.us.to'),
(15, 'amilegit.com'),
(16, 'anonbox.net'),
(17, 'anonymbox.com'),
(18, 'antichef.com'),
(19, 'antichef.net'),
(20, 'antispam.de'),
(21, 'baxomale.ht.cx'),
(22, 'beefmilk.com'),
(23, 'binkmail.com'),
(24, 'bio-muesli.net'),
(25, 'bobmail.info'),
(26, 'bodhi.lawlita.com'),
(27, 'bofthew.com'),
(28, 'brefmail.com'),
(29, 'bsnow.net'),
(30, 'bugmenot.com'),
(31, 'bumpymail.com'),
(32, 'casualdx.com'),
(33, 'chogmail.com'),
(34, 'cool.fr.nf'),
(35, 'correo.blogos.net'),
(36, 'cosmorph.com'),
(37, 'courriel.fr.nf'),
(38, 'courrieltemporaire.com'),
(39, 'curryworld.de'),
(40, 'cust.in'),
(41, 'dacoolest.com'),
(42, 'dandikmail.com'),
(43, 'deadaddress.com'),
(44, 'despam.it'),
(45, 'despam.it'),
(46, 'devnullmail.com'),
(47, 'dfgh.net'),
(48, 'digitalsanctuary.com'),
(49, 'discardmail.com'),
(50, 'discardmail.de'),
(51, 'disposableaddress.com'),
(52, 'disposeamail.com'),
(53, 'disposemail.com'),
(54, 'dispostable.com'),
(55, 'dm.w3internet.co.ukexample.com'),
(56, 'dodgeit.com'),
(57, 'dodgit.com'),
(58, 'dodgit.org'),
(59, 'dontreg.com'),
(60, 'dontsendmespam.de'),
(61, 'dump-email.info'),
(62, 'dumpyemail.com'),
(63, 'e4ward.com'),
(64, 'email60.com'),
(65, 'emailias.com'),
(66, 'emailias.com'),
(67, 'emailinfive.com'),
(68, 'emailmiser.com'),
(69, 'emailtemporario.com.br'),
(70, 'emailwarden.com'),
(71, 'enterto.com'),
(72, 'ephemail.net'),
(73, 'explodemail.com'),
(74, 'fakeinbox.com'),
(75, 'fakeinformation.com'),
(76, 'fansworldwide.de'),
(77, 'fastacura.com'),
(78, 'filzmail.com'),
(79, 'fixmail.tk'),
(80, 'fizmail.com'),
(81, 'frapmail.com'),
(82, 'garliclife.com'),
(83, 'gelitik.in'),
(84, 'get1mail.com'),
(85, 'getonemail.com'),
(86, 'getonemail.net'),
(87, 'girlsundertheinfluence.com'),
(88, 'gishpuppy.com'),
(89, 'goemailgo.com'),
(90, 'great-host.in'),
(91, 'greensloth.com'),
(92, 'greensloth.com'),
(93, 'gsrv.co.uk'),
(94, 'guerillamail.biz'),
(95, 'guerillamail.com'),
(96, 'guerillamail.net'),
(97, 'guerillamail.org'),
(98, 'guerrillamail.biz'),
(99, 'guerrillamail.com'),
(100, 'guerrillamail.de'),
(101, 'guerrillamail.net'),
(102, 'guerrillamail.org'),
(103, 'guerrillamailblock.com'),
(104, 'haltospam.com'),
(105, 'hidzz.com'),
(106, 'hotpop.com'),
(107, 'ieatspam.eu'),
(108, 'ieatspam.info'),
(109, 'ihateyoualot.info'),
(110, 'imails.info'),
(111, 'inboxclean.com'),
(112, 'inboxclean.org'),
(113, 'incognitomail.com'),
(114, 'incognitomail.net'),
(115, 'ipoo.org'),
(116, 'irish2me.com'),
(117, 'jetable.com'),
(118, 'jetable.fr.nf'),
(119, 'jetable.net'),
(120, 'jetable.org'),
(121, 'jnxjn.com'),
(122, 'junk1e.com'),
(123, 'kasmail.com'),
(124, 'kaspop.com'),
(125, 'klzlk.com'),
(126, 'kulturbetrieb.info'),
(127, 'kurzepost.de'),
(128, 'kurzepost.de'),
(129, 'lifebyfood.com'),
(130, 'link2mail.net'),
(131, 'litedrop.com'),
(132, 'lookugly.com'),
(133, 'lopl.co.cc'),
(134, 'lr78.com'),
(135, 'maboard.com'),
(136, 'mail.by'),
(137, 'mail.mezimages.net'),
(138, 'mail4trash.com'),
(139, 'mailbidon.com'),
(140, 'mailcatch.com'),
(141, 'maileater.com'),
(142, 'mailexpire.com'),
(143, 'mailin8r.com'),
(144, 'mailinator.com'),
(145, 'mailinator.net'),
(146, 'mailinator2.com'),
(147, 'mailincubator.com'),
(148, 'mailme.lv'),
(149, 'mailmetrash.com'),
(150, 'mailmoat.com'),
(151, 'mailnator.com'),
(152, 'mailnull.com'),
(153, 'mailzilla.org'),
(154, 'mbx.cc'),
(155, 'mega.zik.dj'),
(156, 'meltmail.com'),
(157, 'mierdamail.com'),
(158, 'mintemail.com'),
(159, 'mjukglass.nu'),
(160, 'mobi.web.id'),
(161, 'moburl.com'),
(162, 'moncourrier.fr.nf'),
(163, 'monemail.fr.nf'),
(164, 'monmail.fr.nf'),
(165, 'mt2009.com'),
(166, 'mx0.wwwnew.eu'),
(167, 'mycleaninbox.net'),
(168, 'myspamless.com'),
(169, 'mytempemail.com'),
(170, 'mytrashmail.com'),
(171, 'netmails.net'),
(172, 'neverbox.com'),
(173, 'no-spam.ws'),
(174, 'nobulk.com'),
(175, 'noclickemail.com'),
(176, 'nogmailspam.info'),
(177, 'nomail.xl.cx'),
(178, 'nomail2me.com'),
(179, 'nospam.ze.tc'),
(180, 'nospam4.us'),
(181, 'nospamfor.us'),
(182, 'nowmymail.com'),
(183, 'objectmail.com'),
(184, 'obobbo.com'),
(185, 'odaymail.com'),
(186, 'onewaymail.com'),
(187, 'ordinaryamerican.net'),
(188, 'owlpic.com'),
(189, 'pookmail.com'),
(190, 'privymail.de'),
(191, 'proxymail.eu'),
(192, 'punkass.com'),
(193, 'putthisinyourspamdatabase.com'),
(194, 'quickinbox.com'),
(195, 'rcpt.at'),
(196, 'recode.me'),
(197, 'recursor.net'),
(198, 'regbypass.comsafe-mail.net'),
(199, 'safetymail.info'),
(200, 'sandelf.de'),
(201, 'saynotospams.com'),
(202, 'selfdestructingmail.com'),
(203, 'sendspamhere.com'),
(204, 'sharklasers.com'),
(205, 'shieldedmail.com'),
(206, 'shiftmail.com'),
(207, 'skeefmail.com'),
(208, 'slopsbox.com'),
(209, 'slushmail.com'),
(210, 'smaakt.naar.gravel'),
(211, 'smellfear.com'),
(212, 'snakemail.com'),
(213, 'sneakemail.com'),
(214, 'sofort-mail.de'),
(215, 'sogetthis.com'),
(216, 'soodonims.com'),
(217, 'spam.la'),
(218, 'spamavert.com'),
(219, 'spambob.net'),
(220, 'spambob.org'),
(221, 'spambog.com'),
(222, 'spambog.de'),
(223, 'spambog.ru'),
(224, 'spambox.info'),
(225, 'spambox.us'),
(226, 'spamcannon.com'),
(227, 'spamcannon.net'),
(228, 'spamcero.com'),
(229, 'spamcorptastic.com'),
(230, 'spamcowboy.com'),
(231, 'spamcowboy.net'),
(232, 'spamcowboy.org'),
(233, 'spamday.com'),
(234, 'spamex.com'),
(235, 'spamfree.eu'),
(236, 'spamfree24.com'),
(237, 'spamfree24.de'),
(238, 'spamfree24.eu'),
(239, 'spamfree24.info'),
(240, 'spamfree24.net'),
(241, 'spamfree24.org'),
(242, 'spamgourmet.com'),
(243, 'spamgourmet.net'),
(244, 'spamgourmet.org'),
(245, 'spamherelots.com'),
(246, 'spamhereplease.com'),
(247, 'spamhole.com'),
(248, 'spamify.com'),
(249, 'spaminator.de'),
(250, 'spamkill.info'),
(251, 'spaml.com'),
(252, 'spaml.de'),
(253, 'spammotel.com'),
(254, 'spamobox.com'),
(255, 'spamspot.com'),
(256, 'spamthis.co.uk'),
(257, 'spamthisplease.com'),
(258, 'speed.1s.fr'),
(259, 'suremail.info'),
(260, 'tempalias.com'),
(261, 'tempe-mail.com'),
(262, 'tempemail.biz'),
(263, 'tempemail.com'),
(264, 'tempemail.net'),
(265, 'tempinbox.co.uk'),
(266, 'tempinbox.com'),
(267, 'tempomail.fr'),
(268, 'temporaryemail.net'),
(269, 'temporaryinbox.com'),
(270, 'tempymail.com'),
(271, 'thankyou2010.com'),
(272, 'thisisnotmyrealemail.com'),
(273, 'throwawayemailaddress.com'),
(274, 'tilien.com'),
(275, 'tmailinator.com'),
(276, 'tradermail.info'),
(277, 'trash-amil.com'),
(278, 'trash-mail.at'),
(279, 'trash-mail.com'),
(280, 'trash-mail.de'),
(281, 'trash2009.com'),
(282, 'trashmail.at'),
(283, 'trashmail.com'),
(284, 'trashmail.me'),
(285, 'trashmail.net'),
(286, 'trashmailer.com'),
(287, 'trashymail.com'),
(288, 'trashymail.net'),
(289, 'trillianpro.com'),
(290, 'tyldd.com'),
(291, 'tyldd.com'),
(292, 'uggsrock.com'),
(293, 'wegwerfmail.de'),
(294, 'wegwerfmail.net'),
(295, 'wegwerfmail.org'),
(296, 'wh4f.org'),
(297, 'whyspam.me'),
(298, 'willselfdestruct.com'),
(299, 'winemaven.info'),
(300, 'wronghead.com'),
(301, 'wuzupmail.net'),
(302, 'xoxy.net'),
(303, 'yogamaven.com'),
(304, 'yopmail.com'),
(305, 'yopmail.fr'),
(306, 'yopmail.net'),
(307, 'yuurok.com'),
(308, 'zippymail.info'),
(309, 'zoemail.com');

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

Classé dans : Tutoriel SQL