SQL

De knowledge
Révision datée du 20 juin 2024 à 12:20 par Jpinon (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Ici je vais donner les syntaxes pour les requêtes rares mais parfois utiles.

Détecter (compter) les doublons

SI on considère une table LISTE:

Champ Type
nom varchar(255)
prenom varchar(255)
age integer
Addresse varchar(255)
Telephone varchar(255)

On voudrait avoir un liste des personnes ayant le même nom et le même âge. En gros est-ce que l'on a des doublons dans une table même si ils ont changé d'adresse.

On utilise le concept de groupements et de sous totaux.

SELECT cout(*) as nbr nom, prenom, age
FROM LISTE
GROUP BY nom, prenom, age

Formater les dates

Les dates ont leur propre système de stockage dans une base de données. En revanche la façon dons les dates s'affichent peut varier en fonction de la base et du format par défaut. (Le NLS_DATE_FORMAT d'Oracle par exemple).

La base elle même doit stocker les dates sous un format de type timestamp entier (à la Unix).

Pour la base postgres que j'utilise j'ai par défaut une date sous le forme :

2024-06-06 16:45:00.000 +0200

C'est bien mais :

  • On n'est pas garanti que ce soit toujours le même format
  • Ce n'est pas forcément le plus lisible.
  • Si on veut utiliser le champ pour un "group by" on veut peut être avoir des dates plus globales.
Pattern Description
YYYY Année sur 4 chiffres
YY Année sur 2 chiffres
Y Dernier chiffre de l'année (4 pour 2024)
AD ou BC Dit si la date est avant ou après le "début de l'aire commune" (avant ou après JC)
MONTH ou Mounth Le nom du mois en anglais (tout en majuscule ou seulement la première lettre)
Mon ou mon L'abréviation (en anglais) du nom du mois.
MM Le numéro du mois (sur deux chiffres avec le "0" non significatif)
DAY, Day ou day Le jour de la semaine