les fonctions mariadb - lemug.fr

of 22/22
 Les fonctions et fonctionnalités MariaDB Christophe Villeneuve @hellosct1 Stéphane Varoqui @svaroqui Le 29/01/2015 – Meetup - Les bonnes pratiques avec MariaDB

Post on 24-Jul-2015

455 views

Category:

Internet

2 download

Embed Size (px)

TRANSCRIPT

  • LesfonctionsetfonctionnalitsMariaDB

    [email protected]

    [email protected]

    Le29/01/2015MeetupLesbonnespratiquesavecMariaDB

  • Qui?

    StphaneVaroqui ChristopheVilleneuve

  • Lespointsd'aujourd'hui

    Lesfonctions Lesfonctionnalits

  • 5.x10.x

    5fonctions

  • Microseconds

    Prcision date-heure Avant

    TIME DATETIME TIMESTAMP

    Dispo MariaDB 5.3+ temporal functions CAST dynamic columns

    Source:https://mariadb.com/kb/en/mariadb/microsecondsinmariadb/

  • 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 MariaDB5.3+

    Exemple(Microseconds)

  • PCRE

    Disponible MariaDB 10.0+

    Expressions rgulires

    Compatible REGEXP RLIKE operator

    Fonctionne Multi caractres

    Source:https://mariadb.com/kb/en/mariadb/pcre/

  • Fonction de remplace SELECT REGEXP_REPLACE('ab12cd','[0-9]','') AS r; abcd

    Exemple(PCRE)(1/2)

    Retourne 1re positionSELECT REGEXP_INSTR('abc','b');

    2SELECT REGEXP_INSTR('hello','o');

    5

  • Retourne la partie correspondante d'une chaineSELECT REGEXP_SUBSTR( 'http://www.lemug.fr/category/actualites/', 'http?://[^/]*')

    http://www.lemug.fr

    Exemple(PCRE)(2/2)

  • ColonnesVirtuelles

    Disponible MariaDB 5.2+

    Colonne dans une table qui sa valeur calcule automatiquement

    2 types: VIRTUAL: sur le principe d'une vue PERSISTENT: Calcul lorsque les donnes sont

    insres et stockes dans une table

    Source:https://mariadb.com/kb/en/virtualcolumns/

  • > 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(ColonnesVirtuelles)(1/2)

  • > INSERT INTO table1 VALUES (1, 'some text',default,default),(2, 'more text',5,default),(123, 'even more text',default,'something');

    > Select * from table1;

    Exemple(ColonnesVirtuelles)(2/2)

  • Colonnesdynamiques

    Dispo MariaDB 5.3+

    Pont entre les BDD relationnelles et non relationnelles

    Toutes les colonnes stockes dans un 'blob'

    Possibilit de manipuler

    Possibilit de crer des index virtuels

    Source:https://mariadb.com/kb/en/mariadb/dynamiccolumns/

  • createtablenewsql(

    idint

    auto_incrementprimarykey,

    nomvarchar(40),

    typeenum

    ('animal',

    'ordinateur'),

    prixint,

    nosqlblob);

    COLUMN_CREATE(

    column_nr,

    value[astype],

    [

    column_nr,

    value[astype]

    ],

    ...)

    Exemple(colonnedynamique)1/3

    ID nom type Prix blob

    Multiproduits

  • Exemple(colonnedynamique)2/3

    >INSERTintonewsqlvalues(NULL,'Atari','ordinateur',500,COLUMN_CREATE('couleur','Noir','type','STe'));

    >INSERTintonewsqlvalues(NULL,'elePHPant','animal',20,COLUMN_CREATE('taille','normal','description','peluche'));

    >UPDATEnewsqlSETnosql=COLUMN_ADD(nosql,'couleur','blue')WHEREid=2;

    ID Nom type prix couleur type taille description

    1 Atari Ordinateur 500 Noir Ste

    2 elePHPant animal 20 bleu normal peluche

    >SELECTnom,column_list(nosql)FROMnewsql;

    Multiproduits

  • Exemple(colonnedynamique)3/3>SELECTnom,COLUMN_JSON(nosql)FROMnewsql;

    >SELECTid,type,nom,

    COLUMN_GET(nosql,'couleur'aschar)AScouleur,prixFROMnewsql;

    Multiproduits

  • SequenceEngine

    Dispo MariaDB 10.0.3+ Une fonction en Storage Engine Pas de cration & pas de lecture de table

    Principe: Gnre la vole une squence de nombres entiers Rsultat retourn votre requte La fonction disparat

    Plugin ncessaire installer: ha_sequence>installsoname"ha_sequence";

    Source:https://mariadb.com/kb/en/mariadb/sequence

  • > select * FROM seq_1_to_3;

    Exemple(Sequence)1/2

    > select * FROM seq_5_to_1_step_2;

  • Calcul de dateEx: Connatre le jour de la semaine d'une date donne:

    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

  • 5.x10.x

    Lesfonctionnalits

  • Lasuiteestdisponible

    http://fr.slideshare.net/lemugfr/lesfonctionnalitesmariadb

  • Merci

    Diapo 1Diapo 2Diapo 3Diapo 4Diapo 5Diapo 6Diapo 7Diapo 8Diapo 9Diapo 10Diapo 11Diapo 12Diapo 13Diapo 14Diapo 15Diapo 16Diapo 17Diapo 18Diapo 19Diapo 20Diapo 21Diapo 22