nouveautés SQL liées à la version 4.50 + nouveau type de données BIGINT (entier binaire, sur 8 octets) + nouvel outil sous Operation Navigator Visual Explain qui montre graphiquement les détails donnés par l'optimiseur, pour une requête SQL. + possibilité de créer des procédures cataloguées externes faisant référence à une classe JAVA. + les expressions sont admises sur l'ordre INSERT ... VALUES( ) . + ordres du SQL/PSM nouveaux ou modifiés : SIGNAL et RESIGNAL clause GET DIAGNOSTIC RETURN et GOTO |
+ nouvelles fonctions : BIGINT, RAND, CEIL, ROUND, TRUNCATE, SIGN, SOUNDEX et DIFFERENCE détail ------ BIGINT(colonne) Transforme en binaire sur 8 octets une expression numérique ou une chaîne valide. [CAST est, lui aussi, modifié en conséquence] SIGN(colonne) retourne le signe d'une colonne -1 si négatif, 1 si positif strictement, 0 si null RAND() retourne un nombre aléatoire (< à 1) CEIL(colonne) Transfortme un réel (avec décimales) en son entier immédiatement suppérieur. CEIL(2,42) = 3 CEIL(2,56) = 3 |
ROUND(colonne,p) arrondi comptable d'une expression numérique avec choix de la precision. ROUND(2,42 , 1) = 2,40 ROUND(2,56 , 1) = 2,60 TRUNCATE(colonne,p) arrondi inférieur d'une expression numérique avec choix de la precision. TUNCATE(2,42 , 1) = 2,40 TRUNCATE(2,56 , 1) = 2,50 SOUNDEX(colonne) fourni un algoritme retournant une représentation phonétique de "colonne" (surtout les noms propres) permettant de meilleurs comparaisons Ce codage a été utilisé aux états-unis lors de recensements voir http://www.bradandkathy.com/genealogy/overviewofsoundex.html et http://www.nara.gov/genealogy/soundex/soundex.html s'utilise sous la forme: WHERE SOUNDEX(NOM) = SOUNDEX('HENRI') [=H560] |
l'algoritme est le suivant : 1/ conversion en majuscule 2/ conservation du premier caractère 3/ suppression de toutes les occurences des lettres dont la liste suit, à partir de la première occurence: A, E, H, I, O, U, W, Y 4/ attribution d'un code numérique, suivant le type de lettre (labiale, dentale, ....) 1 pour B F V P 4 pour L 2 " C G J K Q S X Z 5 " M N 3 " D T 6 " R (cette série est donnée pour l'anglo-américain, pour l'adaptation fançaise voir http://www.chez.com/algor/soundex/soundex.htm ) |
5/ élimination de toutes les paires consécutives de chiffres dupliqués. 6/ ne conserver de la chaîne que les quatres premières positions (complétées par des "0", si besoin) sous la forme Lccc L étant la première lettre [ cf 2/ ] ccc étant le résultat produit en 6/ ainsi SOUNDEX('troi') retourne T600 , SOUNDEX('Troye') aussi. mais SOUNDEX('trois') retourne T620 ce qui, en français, est un problème. Le lab précise qu'il n'y a pas d'adaptation langage de l'algorithme. DIFFERENCE(col1 , col2) indique la différence phonétique (de 0 à 4) basée sur SOUNDEX, entre les deux arguments. 0: les deux arguements sont trés différents 4: ils sont très semblables. |