Archives de catégorie : SQL

Le SQL (Structured query language ou en français Langage Structuré de Requêtes) est un pseudo-langage informatique, de type requête, standard et normalisé, destiné à interroger ou à manipuler une base de données relationnelle avec :
un langage de définition de données (DDL, Data definition language)
un langage de manipulation de données (DML, Data manipulation language), la partie la plus courante et la plus visible de SQL
un langage de contrôle de données (DCL, Data control language)
un langage de contrôle des transactions (TCL, Transaction control language)
et d’autres modules destinés notamment à écrire des routines (procédures, fonctions ou déclencheurs) et interagir avec des langages externes
C’est un langage puissant, important et beaucoup utilisé, il possède de nombreuses possibilités trop souvent méconnues des programmeurs. Mon but est de partir à la chasse de ces fonctionnalités, de les comprendre, et de coucher tout ça sur papier billet.

Gestion rapide des dates sous Oracle

Catégorie : SQL | Laisser un commentaire

En ce moment j’ai l’occasion de faire un petit peu de SQL à la mode Oracle. Et je viens de passer quelques minutes avec les dates… Le plus simple est de montrer 2 exemples d’utilisation. !!!Transformer une chaîne de caractères en date /// SELECT * FROM ma_table WHERE date = to_date(’18/03/1988′, ‘DD/MM/YYYY’) /// !!!Transformer une date en chaîne de caractères … Continuer la lecture

Mysql et la recherche sur plusieurs champs : avec CONCAT ou CONCAT_WS

Catégorie : SQL | 3 commentaires

Après avoir parlé un peu de la recherche en MySQL via [LIKE|/post/2009/mysql-et-la-recherche-avec-like] puis [REGEXP|/post/2009/mysql-et-la-recherche-avec-regexp], et avant d’aller plus loin, parlons un peu de la recherche dans plusieurs champs à la fois. Eh oui, c’est possible grâce à CONCAT, ou plutôt CONCAT_WS. Prenons une table contenant les billets d’un blog, et donc possédant les champs @@id@@, @@titre@@ et @@contenu@@. Une recherche … Continuer la lecture

Mysql et la recherche : avec REGEXP

Catégorie : SQL | 5 commentaires

Dans un précédent billet, on a vu comment effectuer une [recherche assez poussée en MySQL avec LIKE|/post/2009/mysql-et-la-recherche-avec-like]. Mais LIKE n’est vraiment rien comparée à ce que l’on peut faire avec REGEXP OU RLIKE (RLIKE est un alias pour REGEXP. Il a été créé pour un souci de similitude avec mSQL). Et en même temps, je trouve que LIKE suffit la … Continuer la lecture

SQL et RENAME

Catégorie : SQL | Laisser un commentaire

ça fait plusieurs fois que je cherche à renommer une table en ligne de commandes, et plusieurs fois que je re-re-regarde la doc MySQL sur @@RENAME@@. Dans l’espoir que ça rentre, et par ne pas avoir à re-re-re-rechercher la prochaine fois, voici comment fonctionne cette commande. L’idée est de renommer la table « chaise » pour l’appeler « chaise_pliante » (hum, original !). Pour … Continuer la lecture

Import/Export MySQL en ligne de commandes

Catégorie : SQL | Laisser un commentaire

Dans un précédent billet où j’expliquais mes déboires avec les [grosses bases de données|/post/2009/Comment-importer-une-grosse-base-de-donnees] (on y trouvait aussi des conseils pour ne pas s’arracher les cheveux), j’ai expliqué comment importer une base de données MySQL à partir d’un fichier SQL en ligne de commandes grâce à @@source@@ ou @@mysql@@. Aujourd’hui, j’ai découvert ce que je cherchais depuis pas mal de … Continuer la lecture

Mysql et la recherche : avec LIKE

Catégorie : SQL | Un commentaire

Souvent pour un moteur de recherches sur un site, on propose à l’utilisateur d’entrer un mot clef que l’on cherchera ensuite dans une base de données pour renvoyer les résultats le contenant. Ce billet, et 2 autres qui le suivront, vont présenter 3 méthodes pour effectuer ce type de recherche, en commençant par l’utilisation de @@LIKE@@. La première méthode pour … Continuer la lecture

Les requêtes imbriquées c’est (parfois) le pied

Catégorie : SQL | Laisser un commentaire

J’ai une table annonce1 contenant 10 000 tuples, et une autre annonce2 qui en contient aussi 10 000. Tous les tuples sont différents. Le but ? Fusionner ces 2 tables. Export/Import classique créé des problèmes de Primary Key qui se dupliquent. (mon ID est en auto_increment) Moralité : /// INSERT INTO annonce (ann_surface, ann_prix) SELECT ann_surface, ann_prix FROM annonce2 WHERE … Continuer la lecture

Comment importer une grosse base de données

Catégorie : SQL | Un commentaire

Ce billet aurait aussi pu se nommer « Vive la ligne de commandes ! ».%%% Je pense arriver au bout de mes peines avec ma grosse tables de 3 millions de tuples (qui n’en fait d’ailleurs toujours pas 3 millions, alors j’espère que ça tiendra le coup quand tous les tuples seront là), et j’ai notamment pas mal galéré pour la transférer … Continuer la lecture

Optimiser ses requêtes MySQL

Catégorie : SQL | Laisser un commentaire

Je travaille actuellement sur une table MySQL qui va contenir près de 7 millions de tuples (avec une quinzaine de colonnes chacun bien sûr, ce ne serait pas drôle sinon !), il se trouve qu’elle en contient déjà près de 3 millions, et que je suis obligé de faire une vingtaine de requêtes différentes dans cette table pour chaque page … Continuer la lecture