Le web de Dominique Guebey – IBM AS/400 iSeries

Page web  : http://www.dg77.net/tekno/as400/db2sqldml.htm


   D o m i n i q u e   G u e b e y    J u n g l e      IBM AS/400 iSeries

SQL/400 Data Manipulation Language

SQL permet de définir une condition et d'effectuer un traîtement sur un ensemble de données en une seule opération. Une commande SQL peut être lancée par un language de programmation avec l'utilisation de variables.

Récupération de lignes par Select

Select select-list
From table-list
Where search-condition
Group By grouping-column-list
Having search-condition
Order By order-by-column-list

Exemples

Select  *
  From  Customer
  Where NumCli = 499320
Select  *
  From  Customer
  Where ShpCity  = 'Seattle' 
    And Remise > 0

Litéraux, expressions et fonctions scalaires

Select  NomCli,
        ' has a discount of ',
        Remise * 100,
        '%'
  From  Customer
  Where Remise > 0
Select        Strip( FstNam ) ConCat ' '
       ConCat Strip( MdlInl ) ConCat ' '
       ConCat Strip( LstNam )
  From Employee

Horodatage

Select  NumCli,
        OrderID,
        SaleDate,
        ShpDate,
        Days( ShpDate ) - Days( SaleDate )
  From  Sale
  Where ShpDate Is Not Null

Fonctions Colonnes

Sort une seule ligne avec un total et une moyenne

Select 'Average discount for ',
       Count( * ),
       ' customers is ',
       Avg( Remise )
  From Customer

Mieux :

Select  Count( * ),
        Avg( Remise ),
        Sum( Remise )
  From  Customer
  Where Remise Is Not Null

Regroupement

Utilisation de Group by et Having

Select     ShpCity,
           Count( * ),
           Avg( Remise )
  From     Customer
  Where    Remise Is Not Null
  Group By ShpCity
  Having   Avg( Remise ) > .01

Tri

Clause Order by

Select   NumCli,
         OrderID,
         SaleDate,
         ShpDate,
         Days( ShpDate ) - Days( SaleDate )
  From   Sale
  Where  ShpDate Is Not Null
Order By NumCli,
         5 Desc