(→Remplissage) |
(→Modification de la longueur) |
||
(34 versions intermédiaires masquées) | |||
Ligne 1 : | Ligne 1 : | ||
+ | [[oracle|retour vers Oracle]] <br> <br> | ||
+ | |||
==liste des tables et vues == | ==liste des tables et vues == | ||
liste des tables et vues accessibles au user lançant la commande, vues dynamiques comprises: | liste des tables et vues accessibles au user lançant la commande, vues dynamiques comprises: | ||
<br> | <br> | ||
- | < | + | <b><pre> |
select table_name from cat order by table_name; | select table_name from cat order by table_name; | ||
- | </ | + | </pre></b> |
<br> | <br> | ||
Pour information les noms commençant par 'V_$' appartiennent (comme les autres) a SYS. Il existe des synonymes publics pour ces vues qui commence par un 'V$'. Elles sont surtout utiles pour la surveillance en temps réel du système ou pour faire du tuning. | Pour information les noms commençant par 'V_$' appartiennent (comme les autres) a SYS. Il existe des synonymes publics pour ces vues qui commence par un 'V$'. Elles sont surtout utiles pour la surveillance en temps réel du système ou pour faire du tuning. | ||
Ligne 11 : | Ligne 13 : | ||
SQL permet de codifier les chaînes de caracteres dans des formats ou chaque caractère est sur 2 octects ( ASCII, EBCDIC) ou sur 4 octets (Unicode). | SQL permet de codifier les chaînes de caracteres dans des formats ou chaque caractère est sur 2 octects ( ASCII, EBCDIC) ou sur 4 octets (Unicode). | ||
<br><br> | <br><br> | ||
- | *<b>VARCHAR2(n)</b>: Chaîne de caractères de longueur variable avec n entre 1 et 32767, mais <font color="red"><b>une colonne de ce type ne | + | *<b>VARCHAR2(n)</b>: Chaîne de caractères de longueur variable avec n entre 1 et 32767, mais <font color="red"><b>une colonne de ce type ne peut excéder une longueur de 4000 caractères.</b></font> |
- | *<b>CHAR(n)</b>: Chaîne de caractère de longueur fixe définie a la création de la table, avec n entre 1 et 32767 mais <font color="red"><b>une colonne de ce type ne | + | *<b>CHAR(n)</b>: Chaîne de caractère de longueur fixe définie a la création de la table, avec n entre 1 et 32767 mais <font color="red"><b>une colonne de ce type ne peut excéder une longueur de 2000 caractères.</b></font> |
<br> | <br> | ||
Pour les chaines dont le type commence par N comme nationaux la longueur en caractère dépend du nombre d'octets utilisé pour coder un caractère: | Pour les chaines dont le type commence par N comme nationaux la longueur en caractère dépend du nombre d'octets utilisé pour coder un caractère: | ||
<br> | <br> | ||
*<b>NVARCHAR2</b>: Chaîne de caractères de longueur variable pour les jeux de caractères nationaux.D'une longueur de 32767 octets. | *<b>NVARCHAR2</b>: Chaîne de caractères de longueur variable pour les jeux de caractères nationaux.D'une longueur de 32767 octets. | ||
- | *<b>NCHAR</b>: Chaîne de caractères de longueur fixe pouvant atteindre 32767 octets. | + | *<b>NCHAR</b>: Chaîne de caractères de longueur fixe défini a la création pouvant atteindre 32767 octets. |
<br> | <br> | ||
+ | |||
+ | ==Operateurs sur les chaines de caracteres== | ||
+ | ===LIKE=== | ||
+ | effectue des recherches dans des chaînes de caractères. | ||
+ | * <b>%</b> caractère générique qui remplace une chaîne de 0 a n caractères. | ||
+ | * <b>_</b> remplace un caractère quelconque, obligatoirement existant. | ||
+ | Exemples:<br> | ||
+ | <b> | ||
+ | <pre> | ||
+ | select NOM_PRODUIT, QUANTITE from PRODUITS where QUANTITE like '%bo_tes%kg%'; | ||
+ | |||
+ | |||
+ | NOM_PRODUIT QUANTITE | ||
+ | ---------------------------------------- ------------------------------------------- | ||
+ | Konbu 1 boîtes (2 kg) | ||
+ | Alice Mutton 20 boîtes (1 kg) | ||
+ | </pre></b> | ||
+ | <br><br> | ||
+ | ===REGEXP_LIKE=== | ||
+ | <b>REGEXP_LIKE(chaîne, chaîne_rationnelle [, parametre])</b>:recherche d'une expression rationnelle (en anglais regular expression) dans une chaîne | ||
+ | *chaine: chaine a traiter. | ||
+ | *chaîne_rationnelle: chaine de la recherche par expression rationnelle. | ||
+ | Rappel succinct: | ||
+ | :^ :début de ligne | ||
+ | :$ :fin de ligne | ||
+ | :<nowiki>? :</nowiki>l'élément précédent est facultatif ou apparaît 1 fois | ||
+ | :<nowiki>*</nowiki> :l'élément précédent est facultatif ou apparaît plusieurs fois | ||
+ | :. :remplace un caractère | ||
+ | :+ :l'élément précédent apparaît au moins une fois | ||
+ | :{n} :l’élément précédent doit apparaître n fois | ||
+ | :{n,} :l’élément précédent doit apparaître n fois ou plus | ||
+ | :{,n} :l’élément précédent doit apparaître au plus n fois | ||
+ | :{n,m} :l’élément précédent doit apparaître entre n et m fois | ||
+ | :[aef] :correspondance avec l'un des caractères situé entre les crochets | ||
+ | :(chaîne):sous chaine | ||
+ | :\:le caractère suivant est interprété littéralement. | ||
+ | |||
+ | *parametre: | ||
+ | :i : ignorer les differences majuscules et minuscules | ||
+ | :c : respecter les differences majuscules et minuscules | ||
+ | :x : ignorer les espaces dans la chaîne a traiter | ||
+ | |||
+ | Exemple:<br> | ||
+ | <b> | ||
+ | <pre> | ||
+ | select QUANTITE from PRODUITS where regexp_like (QUANTITE, '(carton|pièce|bouteille)','i'); | ||
+ | |||
+ | QUANTITE | ||
+ | ------------------------------ | ||
+ | 24 bouteilles (1 litre) | ||
+ | 12 bouteilles (550 ml) | ||
+ | 12 cartons (1 kg) | ||
+ | 18 cartons (500 g) | ||
+ | 1 carton (1 kg) | ||
+ | 10 cartons (500 g) | ||
+ | 10 boîtes x 12 pièces | ||
+ | 24 cartons x 4 pièces | ||
+ | </pre></b> | ||
+ | <br> <br> | ||
==Fonctions sur les chaines de caracteres== | ==Fonctions sur les chaines de caracteres== | ||
Ligne 26 : | Ligne 87 : | ||
*<b>INITCAP(chaîne) = chaîne</b> :converti en majuscule la première lettre de chaque mot de la chaîne et toutes les autres lettres en minuscules.Sont considéré comme séparateur de mots tous les caractères qui ne sont pas des lettres. | *<b>INITCAP(chaîne) = chaîne</b> :converti en majuscule la première lettre de chaque mot de la chaîne et toutes les autres lettres en minuscules.Sont considéré comme séparateur de mots tous les caractères qui ne sont pas des lettres. | ||
<br> | <br> | ||
+ | |||
===Concatenation=== | ===Concatenation=== | ||
*<b>CONCAT(chaîne1,chaîne2) = chaîne1+chaîne2</b> :concaténation de 2 chaînes. | *<b>CONCAT(chaîne1,chaîne2) = chaîne1+chaîne2</b> :concaténation de 2 chaînes. | ||
*<b>chaîne1||chaîne2 = chaîne1+chaîne2</b> : concaténation de 2 chaînes.<br> | *<b>chaîne1||chaîne2 = chaîne1+chaîne2</b> : concaténation de 2 chaînes.<br> | ||
Exemple:<br> | Exemple:<br> | ||
- | < | + | <b> |
+ | <pre> | ||
Select concat(concat(NOM, ' '), PRENOM), NOM||' '||PRENOM from EMPLOYES; | Select concat(concat(NOM, ' '), PRENOM), NOM||' '||PRENOM from EMPLOYES; | ||
- | </ | + | </pre> |
- | < | + | </b> |
- | === | + | <br> |
+ | |||
+ | ===Modification de la longueur=== | ||
*<b>LPAD(chaîne1,long[,chaîne2]) = chaîne</b>:complète ou tronque à gauche (left) a la longueur <b>long</b> de chaîne1. | *<b>LPAD(chaîne1,long[,chaîne2]) = chaîne</b>:complète ou tronque à gauche (left) a la longueur <b>long</b> de chaîne1. | ||
<b>chaîne1</b>:chaîne a traiter<br> | <b>chaîne1</b>:chaîne a traiter<br> | ||
<b>long</b>: longueur de la chaîne après le traitement<br> | <b>long</b>: longueur de la chaîne après le traitement<br> | ||
<b>chaîne2</b>: motif du remplissage.<br> | <b>chaîne2</b>: motif du remplissage.<br> | ||
- | La fonction | + | La fonction LPAD redimensionne la chaîne1 à la longueur <b>long</b> soit en tronquant chaîne1 soit en y ajoutant chaîne2 autant de fois que nécessaire. |
- | <br> | + | <br><br> |
*<b>RPAD(chaîne1,long[,chaîne2]) = chaîne</b>:complète ou tronque à droite (right) a la longueur <b>long</b> de chaîne1. | *<b>RPAD(chaîne1,long[,chaîne2]) = chaîne</b>:complète ou tronque à droite (right) a la longueur <b>long</b> de chaîne1. | ||
<b>chaîne1</b>:chaîne a traiter<br> | <b>chaîne1</b>:chaîne a traiter<br> | ||
<b>long</b>: longueur de la chaîne après le traitement<br> | <b>long</b>: longueur de la chaîne après le traitement<br> | ||
<b>chaîne2</b>: motif du remplissage.Si non indiqué l'espace est utilisé.<br> | <b>chaîne2</b>: motif du remplissage.Si non indiqué l'espace est utilisé.<br> | ||
- | La fonction | + | La fonction LPAD redimensionne la chaîne1 à la longueur <b>long</b> soit en tronquant chaîne1 soit en y ajoutant chaîne2 autant de fois que nécessaire. |
Sommaire |
liste des tables et vues accessibles au user lançant la commande, vues dynamiques comprises:
select table_name from cat order by table_name;
Pour information les noms commençant par 'V_$' appartiennent (comme les autres) a SYS. Il existe des synonymes publics pour ces vues qui commence par un 'V$'. Elles sont surtout utiles pour la surveillance en temps réel du système ou pour faire du tuning.
SQL permet de codifier les chaînes de caracteres dans des formats ou chaque caractère est sur 2 octects ( ASCII, EBCDIC) ou sur 4 octets (Unicode).
Pour les chaines dont le type commence par N comme nationaux la longueur en caractère dépend du nombre d'octets utilisé pour coder un caractère:
effectue des recherches dans des chaînes de caractères.
Exemples:
select NOM_PRODUIT, QUANTITE from PRODUITS where QUANTITE like '%bo_tes%kg%'; NOM_PRODUIT QUANTITE ---------------------------------------- ------------------------------------------- Konbu 1 boîtes (2 kg) Alice Mutton 20 boîtes (1 kg)
REGEXP_LIKE(chaîne, chaîne_rationnelle [, parametre]):recherche d'une expression rationnelle (en anglais regular expression) dans une chaîne
Rappel succinct:
Exemple:
select QUANTITE from PRODUITS where regexp_like (QUANTITE, '(carton|pièce|bouteille)','i'); QUANTITE ------------------------------ 24 bouteilles (1 litre) 12 bouteilles (550 ml) 12 cartons (1 kg) 18 cartons (500 g) 1 carton (1 kg) 10 cartons (500 g) 10 boîtes x 12 pièces 24 cartons x 4 pièces
Exemple:
Select concat(concat(NOM, ' '), PRENOM), NOM||' '||PRENOM from EMPLOYES;
chaîne1:chaîne a traiter
long: longueur de la chaîne après le traitement
chaîne2: motif du remplissage.
La fonction LPAD redimensionne la chaîne1 à la longueur long soit en tronquant chaîne1 soit en y ajoutant chaîne2 autant de fois que nécessaire.
chaîne1:chaîne a traiter
long: longueur de la chaîne après le traitement
chaîne2: motif du remplissage.Si non indiqué l'espace est utilisé.
La fonction LPAD redimensionne la chaîne1 à la longueur long soit en tronquant chaîne1 soit en y ajoutant chaîne2 autant de fois que nécessaire.