Lire une table

Commençons par ajouter quelques lignes à notre table:

insert into famille(nom,prenom,date_de_naissance) values ('Dupont','Thomas','2010-09-04');
insert into famille(nom,prenom,date_de_naissance) values ('Dupont','Caroline','2012-02-06');
insert into famille(nom,prenom,date_de_naissance) values ('Dupont','Madelaine','1960-11-28');

Et maintenant lisons le contenu entier de la table:

tutorial=> select * from famille;
  nom   |  prenom   | date_de_naissance | id
--------+-----------+-------------------+----
 Dupont | Michel    | 1956-12-31        |  2
 Dupont | Thomas    | 2010-09-04        |  3
 Dupont | Caroline  | 2012-02-06        |  4
 Dupont | Madelaine | 1960-11-28        |  5
(4 rows)

Supposons maintenant que nous ne voulions que les prénoms et dates de naissance de chaque membre de la famille:

tutorial=> select prenom, date_de_naissance from famille:
  prenom   | date_de_naissance
-----------+-------------------
 Michel    | 1956-12-31
 Thomas    | 2010-09-04
 Caroline  | 2012-02-06
 Madelaine | 1960-11-28
(4 rows)

Uniquement les membres nés avant le début de ce nouveau millénaire:

tutorial=> select prenom, date_de_naissance from famille where date_de_naissance < '2000-01-01';
  prenom   | date_de_naissance
-----------+-------------------
 Michel    | 1956-12-31
 Madelaine | 1960-11-28
(2 rows)

En partant du plus jeune vers le plus vieux:

tutorial=> select prenom, date_de_naissance from famille where date_de_naissance < '2000-01-01' order by date_de_naissance desc;
  prenom   | date_de_naissance
-----------+-------------------
 Madelaine | 1960-11-28
 Michel    | 1956-12-31
(2 rows)

tutorial=>

Et enfin, uniquement le premier enregistrement:

tutorial=> select prenom, date_de_naissance from famille where date_de_naissance < '2000-01-01' order by date_de_naissance desc limit 1;
  prenom   | date_de_naissance
-----------+-------------------
 Madelaine | 1960-11-28
(1 row)

Seulement ceux dont le prénom commence par un ‘T’ et qui sont nés après l’an 2000:

tutorial=> select prenom, date_de_naissance from famille where date_de_naissance >= '2000-01-01' and prenom like 'T%';
 prenom | date_de_naissance
--------+-------------------
 Thomas | 2010-09-04
(1 row)

Notez l’utilisation de and pour rajouter des conditions, on pourrait aussi utiliser or voire mettre des groupes de conditions entre parenthèses, elles deviennent alors un groupe de conditions et sont interprétées comme telles.

Une condition peut se comparer avec les opérators suivants:

index suite…