Les fonctions MariaDB - LeMug.fr

1 162 vues

Publié le

Présentation de 5 fonctions MariaDB' au Meetup LeMug.fr "Les bonnes pratiques avec MariaDB" le 29 janvier 2015 par Christophe Villeneuve

Publié dans : Internet
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 162
Sur SlideShare
0
Issues des intégrations
0
Intégrations
246
Actions
Partages
0
Téléchargements
11
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Les fonctions MariaDB - LeMug.fr

  1. 1.     Les fonctions et fonctionnalités MariaDB Christophe Villeneuve @hellosct1 Stéphane Varoqui @svaroqui Le 29/01/2015 – Meetup ­ Les bonnes pratiques avec MariaDB
  2. 2.     Qui ? Stéphane Varoqui Christophe Villeneuve << afup – lemug.fr – mysql – mariadb – drupal – demoscene – firefoxos – drupagora – phptour – forumphp – solutionlinux – demoinparis – ici et maintenant – eyrolles – editions eni – programmez – linux pratique – webriver – phptv – neuros ­ elephpant
  3. 3. Les points d'aujourd'hui ● Les fonctions ● Les fonctionnalités
  4. 4.     5 fonctions
  5. 5.     Microseconds ✔ Précision date-heure ✔ Avant – TIME – DATETIME – TIMESTAMP ✔ Dispo MariaDB 5.3+ – temporal functions – CAST – dynamic columns Source : https://mariadb.com/kb/en/mariadb/microseconds­in­mariadb/
  6. 6.     ✔ Create table t1 (d DATETIME) ; ✔ Insert INTO t1 values.... ✔ Select * from t1 ; ✔ Create table t2 (d DATETIME (6) ) ; ✔ Insert Into t2 values ('2011-03-11'), ('2012-04-19 13:08:22'), ('2013-07-18 13:44:22.123456'); ✔ Select * from t2 ; Avant MariaDB 5.3+ Exemple (Microseconds)
  7. 7.     PCRE  ✔ Disponible MariaDB 10.0+ ✔ Expressions régulières ✔ Compatible ● REGEXP ● RLIKE operator ✔ Fonctionne – Multi caractères Source : https://mariadb.com/kb/en/mariadb/pcre/
  8. 8.     ✔ Fonction de remplace SELECT REGEXP_REPLACE('ab12cd','[0-9]','') AS r; → abcd Exemple (PCRE) (1/2) ✔ Retourne 1ère position SELECT REGEXP_INSTR('abc','b') ; → 2 SELECT REGEXP_INSTR('hello','o') ; → 5
  9. 9.     ✔ Retourne la partie correspondante d'une chaine SELECT REGEXP_SUBSTR( 'http://www.lemug.fr/category/actualites/', 'http?://[^/]*') → http://www.lemug.fr Exemple (PCRE) (2/2)
  10. 10.     Colonnes Virtuelles ✔ Disponible MariaDB 5.2+ ✔ Colonne dans une table qui sa valeur calculée automatiquement ✔ 2 types : – VIRTUAL : sur le principe d'une vue – PERSISTENT : Calculé lorsque les données sont insérées et stockées dans une table Source : https://mariadb.com/kb/en/virtual­columns/
  11. 11.     > CREATE TABLE table1 ( a INT NOT NULL, b VARCHAR(32), c INT AS (a mod 10) VIRTUAL, d VARCHAR(5) AS (left(b,5)) PERSISTENT ); > DESCRIBE table1; Exemple (Colonnes Virtuelles) (1/2)
  12. 12.     > INSERT INTO table1 VALUES (1, 'some text',default,default), (2, 'more text',5,default), (123, 'even more text',default,'something'); > Select * from table1; Exemple (Colonnes Virtuelles) (2/2)
  13. 13.     Colonnes dynamiques ✔ Dispo MariaDB 5.3+ ✔ Pont entre les BDD relationnelles et non relationnelles ✔ Toutes les colonnes stockées dans un 'blob' ✔ Possibilité de manipuler ✔ Possibilité de créer des index virtuels Source : https://mariadb.com/kb/en/mariadb/dynamic­columns/
  14. 14.     create table newsql(  id int      auto_increment         primary key, nom varchar(40), type enum       ('animal',      'ordinateur'), prix int, nosql blob); COLUMN_CREATE( column_nr,  value [as type], [ column_nr,  value [as type] ],  ...) Exemple (colonne dynamique) 1/3 ID nom type Prix blob Multi produits
  15. 15.     Exemple (colonne dynamique) 2/3 >INSERT into newsql values (NULL, 'Atari' ,'ordinateur',500,  COLUMN_CREATE('couleur', 'Noir', 'type' , 'STe')); >INSERT into newsql values (NULL, 'elePHPant','animal',20,  COLUMN_CREATE('taille', 'normal', 'description' , 'peluche')); >UPDATE newsql SET nosql = COLUMN_ADD(nosql, 'couleur' , 'blue')  WHERE id=2; ID Nom type prix couleur type taille description 1 Atari Ordinateur 500 Noir Ste 2 elePHPant animal 20 bleu normal peluche >SELECT nom, column_list (nosql) FROM newsql; Multi produits
  16. 16.     Exemple (colonne dynamique) 3/3 >SELECT nom, COLUMN_JSON(nosql) FROM newsql; >SELECT id,type,nom, COLUMN_GET(nosql, 'couleur' as char) AS couleur,prix FROM newsql; Multi produits
  17. 17.     Sequence Engine ✔ Dispo MariaDB 10.0.3+ ✔ Une fonction en Storage Engine ✔ Pas de création & pas de lecture de table ✔ Principe : ✔ Génère à la volée une séquence de nombres entiers ✔ Résultat retourné à votre requête ✔ La fonction disparaît ✔ Plugin nécessaire à installer : ha_sequence > install soname "ha_sequence"; Source : https://mariadb.com/kb/en/mariadb/sequence
  18. 18.     > select * FROM seq_1_to_3; Exemple (Sequence) 1/2 > select * FROM seq_5_to_1_step_2;
  19. 19.     ✔ Calcul de date Ex : Connaître le jour de la semaine d'une date donnée : ✔ exemple : Le 1er Janvier tombe… Quand ? > SELECT DAYNAME('2015-01-01' + INTERVAL (seq) YEAR) day, '2015-01-01' + INTERVAL (seq) YEAR date FROM seq_0_to_10; Exemple (Sequence) 2/2
  20. 20.     Les fonctionnalités
  21. 21.     La suite est disponible http://fr.slideshare.net/lemugfr/les­fonctionnalites­mariadb
  22. 22.     Merci

×