Bonjour, j'ai un problème en sql3: quand on crée un type et quand on crée une table? et quelle est l'utilité d'utiliser les types ?
Merci
Bonjour, j'ai un problème en sql3: quand on crée un type et quand on crée une table? et quelle est l'utilité d'utiliser les types ?
Merci
Si ces "types" sont des domaines, tu peux lire cet extrait de cours de SQLPro.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Par exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 create type bureau (NumB integer, etage integer, contient list(ref<posteTravail>) );
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 create table logiciels (codel integer primary key, noml varchar, ......)of new type logiciel;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 create table installation ( datei Date, concerneposte ref<posteTravail>, concernelogiciel ref<logiciel>, .... );Quelle est la différence entre ces 3 exemples et quand on utilise chacun d'entre eux?
Code : Sélectionner tout - Visualiser dans une fenêtre à part create table bureaux of type bureau;
merci
As-tu lu le lien que je t'ai donné ?
Ce n'est pas du tout à ça que ça doit servir !
Ton type "bureau" est une donnée multi-valuée qui est contraire au principe élémentaire des bases de données : 1 donnée dans 1 colonne !
Là il faut que tu crées une table "bureau" et la table "installation" contiendra en clés étrangères l'identifiant du bureau et l'identifiant du logiciel.
Un type est fait pour "formater" spécifiquement un type plus générique.
Prenons le cas des codes postaux français. Comme on ne fait pas de calcul avec, le type général est un CHAR(5) mais on ne peut pas y entrer 'abcde', uniquement des chiffres et le transtypage de cet ensemble de chiffres en nombre doit être compris entre une plage de valeur allant de 1000 (code 01000) à potentiellement 97999 (je ne crois pas qu'il y ait de code postal en dehors des départements donc jusqu'aux départements d'outremer qui commencent par 97) mais dans la réalité peut-être moins, il faudrait voir ça avec la Poste.
On pourrait donc définir un type "code_postal" qui serait un CHAR(5) muni de contraintes. Ensuite, dans les tables, on pourrait utiliser ce type et le SGBD fait les vérifications tout seul.
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Partager