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.
✔ 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.
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/virtualcolumns/
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.
> 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.
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/dynamiccolumns/
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.
> select * FROM seq_1_to_3;
Exemple (Sequence) 1/2
> select * FROM seq_5_to_1_step_2;
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