Michel Tollenaere SQL et relationnel 1 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Cours de Management des Systèmes dInformation Objectifs : Programmation Évaluation :
Michel Tollenaere SQL et relationnel 2 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Modèle relationnel - SQL Historique : E.F. CODD dans les années 70 modèle basé sur la théorie des ensembles des langages pour manipuler les données (SQL) une démarche pour représenter le « monde réel » Nombreux outils : MySQL (logiciel libre) Access (Microsoft) versions 1997 – ORACLE (Oracle corp.) SQL Server (Microsoft) Ingres (Computer Associates)
Michel Tollenaere SQL et relationnel 3 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Organisations Task 1 Task 2 Task 3 Tâches, processus propriétés Constituant Information structurée, bases de données Quels systèmes ? Consulter Ajouter Modifier Supprimer
Michel Tollenaere SQL et relationnel 4 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : « Domaine » Domaines : D i = {d i1, d i2, ….. d in }, D j = {d R}, D k = D i x D j D i défini en extension, D j et D k en intention Exemples : D_Num_securite_sociale = { n [10 13 ; ]} D_Nom = { chaine de 30 caractères} D_Prenom = { chaine de 20 caractères} D_Code_postal = { chaine de 5 chiffres} D_Telephone = { chaine de 10 chiffres} D_couleur = { bleu, vert, rouge, jaune } D_type_stage = { operateur, Enquete, EDT, inge_adjoint, PFE} D_titre = { chaine de 200 caractères} D_date_début = {date}
Michel Tollenaere SQL et relationnel 5 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Donnée = signe + code –exemple : code ASCII (7 bits) ou étendu Premiers éléments Information = donnée + modèle dinterprétation N° SS : un homme de 54 ans né à létranger DGA , DGA 38 Immatriculation : un véhicule récent immatriculé dans lIsère
Michel Tollenaere SQL et relationnel 6 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : « Relations » Une relation (ou table) est un sous ensemble dun produit cartésien de domaines. Une relation est définie par un nom. Le degré dune relation est égal par définition au nombre de facteurs de ce produit cartésien. Exemples : relations PERSONNE D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone STAGE D_Num_securite_sociale x D_type_stage x D_Titre x D_date_deb Personne est de degré 5, Stage est de degré 4
Michel Tollenaere SQL et relationnel 7 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : « Constituants » On appelle constituant (ou colonne ou attribut) dune relation (ou table) le nom donné à une colonne de la table. On note R+ lensemble des constituants de R. Exemples : les constituants dune relation PERSONNE+ = {Num_securite_sociale, Nom, Prenom, Code_postal, Telephone } STAGE + = { Num_securite_sociale, type_stage, Titre, date_deb } PERSONNE (Num_securite_sociale, Nom, Prenom, Code_postal, Telephone) STAGE ( Num_securite_sociale, type_stage, Titre, date_deb ) Ou plus simplement
Michel Tollenaere SQL et relationnel 8 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : « n-uplets » Un n-uplet - ou tuple (en anglais), instance, ligne - d une relation est un élément de cette relation Exemples : 2 relations PERSONNE D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone STAGE D_Num_securite_sociale x D_type_stage x D_Titre x D_date-deb
Michel Tollenaere SQL et relationnel 9 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : propriétés, constituants, n-uplets Exemples : 2 relations PERSONNE D_Num_securite_sociale x D_Nom x D_Prenom x D_Code_postal x D_Telephone STAGE D_Num_securite_sociale x D_type_stage x D_Titre x D_date-deb propriétés Constituant
Michel Tollenaere SQL et relationnel 10 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : clé, contraintes dintégrité Toute relation ou table doit comporter parmi lensemble de ses constituants un sous ensemble qui identifie sans ambiguité chaque n-uplet : ce sous ensemble est appelé « clé » de la relation. Les constituants de ce sous ensemble sont présentés soulignés. Exemples : clé dune relation PERSONNE (Num_securite_sociale, Nom, Prénom, Code_postal, Téléphone) STAGE ( Num_securite_sociale, type_stage, Titre, Date-début )
Michel Tollenaere SQL et relationnel 11 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : Schéma de relations Le schéma dune relation ou définition en intention de cette relation est constitué des éléments : le nom de la relation la liste des constituants et les domaines de chacun les contraintes d intégrité à respecter Exemples : PERSONNE (Num_securite_sociale : { n [10 13 ; ]}, Nom : { chaine de 30 caractères}, Prenom : { chaine de 20 caractères}, Code_postal : { chaine de 5 chiffres}, Telephone = { chaine de 10 chiffres} ) STAGE Num_securite_sociale : { n [10 13 ; ]}, type_stage : { operateur, Enquete, EDT, inge_adjoint, PFE}, titre : { chaine de 200 caractères} date-début : {date} )
Michel Tollenaere SQL et relationnel 12 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : Schéma de Base de données relationnelle Le schéma dune base de données est constituée par lensemble des schémas des relations qui la constituent. CLIENT (Num_client : entier long, Nom : chaine de 30 caractères, Prenom : chaine de 20 caractères, Code_postal : chaine de 5 chiffres, Telephone : chaine de 10 chiffres ) COMMANDE Num_commande : entier long, date : date, montant : monétaire client : entier long ) ARTICLE (Code_article : entier long, Désignation : chaine de 50 caractères, prix : monétaire ) LIGNECOMMANDE (code_article : entier long, Num_commande : entier long, quantité : entier) Exemple :
Michel Tollenaere SQL et relationnel 13 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010
Michel Tollenaere SQL et relationnel 14 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Relationnel : opérateurs ensemblistes union T = (R1 R2) ou T = Union (R1, R2) différence T = (R1 R2) ou T = Minus (R1, R2) intersection T = (R1 R2) ou T = inter (R1, R2) Soient R1 et R2 deux relations, on peut définir entre R1 et R2 un certain nombre dopérations produit cartésien T = (R1 R2) ou T = product (R1, R2) jointure naturelle T = (R1 R2) R1 et R2 ont même schémaOpérations entre relations de schéma distinct
Michel Tollenaere SQL et relationnel 15 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Relationnel : opérations unaires sur une relation projection de R sur les attributs A i1, A i2, A i3,... A ip avec p < n est une relation R de schéma (A i1, A i2, A i3,... A ip ) dont les n- uplets sont obtenus par élimination des attributs de R nappartenant pas à R et par suppression des doublons. On note T = Ai1, Ai2, Ai3,... Aip (R) ou T = proj Ai1, Ai2, Ai3,... Aip (R) restriction (ou sélection) de la relation R par une qualification Q est une relation R de même schéma que R dont les n-uplets sont ceux de R satisfaisant Q. On note T = Q (R) ou T = select Q (R) Soit R une relation de schéma (A 1, A 2, A 3,... A n )
Michel Tollenaere SQL et relationnel 16 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : opérateurs exemples union T = (R1 R2) ou T = Union (R1, R2) différence T = (R1 R2) ou T = Minus (R1, R2) intersection T = (R1 R2) ou T = inter (R1, R2) Soient R1 et R2 deux relations de même schéma
Michel Tollenaere SQL et relationnel 17 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : opérateurs exemples Soient R1 et R2 deux relations de schémas distincts, produit cartésien T = (R1 R2) ou T = product (R1, R2)
Michel Tollenaere SQL et relationnel 18 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : opérateurs exemples Soient R1 et R2 deux relations de schémas distincts, jointure naturelle T = (R1 R2) T = R1 join (c=c) R2
Michel Tollenaere SQL et relationnel 19 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : opérateurs exemples Soient R1 une relation, restriction (ou sélection) de la relation R1 par une qualification Q = (C<30). T = ( C < 30) (R) projection de R1 sur les attributs A et B T = A, B, (R1) Attention à la suppression des doublons
Michel Tollenaere SQL et relationnel 20 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : contraintes dans une BD Lintérêt de lusage de Base de données et que la BD permet la définition de « contraintes dintégrité » qui seront nécessairement vérifiées à tout instant par la base : ces contraintes permettent de garantir la « cohérence » de la base. Elles sont de trois types : 1) contrainte de clé 2) contrainte de type de données (date, intervalle, liste… entier) 3) contrainte dintégrité référentielle
Michel Tollenaere SQL et relationnel 21 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : contrainte dintégrité référentielle Permet de vérifier la présence de données référencées dans des tables différentes. Une contrainte d intégrité référentielle peut sutiliser dès quune clé primaire dune table est utilisée comme référence dans une autre table. On la nomme « clé étrangère » de la seconde table. CLIENT (Num_client : entier long, Nom : chaine de 30 caractères, Prenom : chaine de 20 caractères, Code_postal : chaine de 5 chiffres, Telephone : chaine de 10 chiffres ) COMMANDE Num_commande : entier long, date : date, montant : monétaire client : entier long ) ARTICLE (Code_article : entier long, Désignation : chaine de 50 caractères, prix : monétaire ) LIGNECOMMANDE (code_article : entier long, Num_commande : entier long, quantité : entier)
Michel Tollenaere SQL et relationnel 22 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : 1ère Forme Normale PERSONNE (Num_securite_sociale, Nom, Prenom, Code_postal, Telephone) On ne peut gérer des listes de prénom ou plusieurs adresses, dans la table PERSONNE ; par contre prénom peut être une chaine de nn caractères Une relation est en PREMIERE FORME NORMALE ssi les valeurs de tous les attributs qui la composent sont atomiques la relation possède une « clé » Exemple
Michel Tollenaere SQL et relationnel 23 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : Dépendance fonctionnelle Cette notion permet de capturer lidée de dépendance entre informations en visant à limiter la redondance. Soit R une relation et X et Y des groupes dattributs de R, il existe une dépendance fonctionnelle entre X et Y (on dit que X détermine Y) si dans R chaque valeur de X détermine une et une seule valeur de Y. Attention, cette propriété doit être vérifiée pour tous les n-uplets, y compris ceux à créer
Michel Tollenaere SQL et relationnel 24 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : 2ème Forme Normale PRET (Num_etudiant, NumLivre, Nom_etud, Prenom_etud, NomLivre, Auteurs, date_emprunt) Une relation est en DEUXIEME FORME NORMALE ssi elle est en première forme normale tout attribut n appartenant pas à une clé ne dépend pas d une partie de cette clé Exemple N est pas en 2ème FN car « Nom_etud » ne dépend que de Num_etudiant, et de même « NomLivre », et « Auteurs » ne dépend que de NumLivre
Michel Tollenaere SQL et relationnel 25 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Définitions : 3ème Forme Normale EMPLOYE (Num_securite_sociale, Nom, Prenom, Service, Adresse_service) Une relation est en TROISIEME FORME NORMALE (dite de Boyce Codd) ssi elle est en deuxième forme normale tout attribut n appartenant pas à une clé ne dépend pas d un autre attribut non clé Exemple Adresse_service dépend de service, la relation nest pas en 3eme FN.
Michel Tollenaere SQL et relationnel 26 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 SQL Le SQL (Structured Query Language) permet d'interroger une base de données, d'en modifier des informations. C'est un langage universel d'interrogation des bases de données, qui permet à différents systèmes d'échanger des données entre eux. ACCESS peut être interrogé en SQL via un macro langage qui cache le SQL (voir à ce sujet le Menu Requêtes, Spécifique SQL SQL direct ). Normalisation ISO : norme SQL1 (1986, 1989) norme SQL2 (1992) norme SQL3 (1999) implémentée dans Oracle Dans la suite, le code SQL est représenté en ARIAL 12, les commentaires en Italique. MySQL 5.1
Michel Tollenaere SQL et relationnel 27 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 SQL comporte 3 parties 1) - Le DML (Data Manipulation Language) Sélection dinformation, création et mise à jour denregistrements SELECT, INSERT, UPDATE, DELETE, JOIN 2) - Le DDL (Data Definition Language) Création des tables, des attributs et des contraintes dintégrité CREATE, ALTER, DROP, RENAME 3) - Le DCL (Data Control Language) Pour contrôler laccès aux données GRANT, REVOKE
Michel Tollenaere SQL et relationnel 28 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Les requêtes simples Soit 3 tables : Eleves (NomElv, AdrElv, VilleElv), Matieres (NomMat, Coef, Intitule), Notes (NomElv, NomMat, Date, Note). Attribut souligné = clé primaire Eleves NomElv AdrElv VilleElv Matieres NomMat Coef Intitulé Notes NomElv NomMat Date Note DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 29 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Des enregistrements dans les tables Eleves NomElv AdrElv VilleElv Matieres NomMat Coef Intitulé Notes NomElv NomMat Date Note Eleves NomelvAdresseVille BastienMontmartreParis Clerget-GurnaudBastilleParis Deltour RomainBastilleGrenoble DenoualSt MichelParis Le BasCointrinGeneve Miguel GoyenaPlaza de la Constitucíon Mexico Pelayo Menendez Garcia AnáhuacMexico PopTrocaderoParis Simon-SuisseJet d'eauGeneve ThevenotIle verteGrenoble ViardGareGrenoble Matiere NomMatCoefIntitulé Gest-prod3Gestion de production Gest-proj2Gestion de projets MSI3Manageme nt des SI Qualité1 Sports2 Notes NomelvNomMatDateValeur BastienGest-prod25/09/ BastienMSI09/09/ BastienMSI25/09/ Clerget- Gurnaud Gest-prod25/09/ Clerget- Gurnaud MSI09/09/20049 Clerget- Gurnaud MSI25/09/ Deltour Romain Gest-prod25/09/ Deltour Romain MSI09/09/ Deltour Romain MSI25/09/ DenoualGest-prod25/09/20048 DenoualMSI09/09/ DenoualMSI25/09/ Le BasGest-prod25/09/ Le BasMSI09/09/ Le BasMSI25/09/ Miguel Goyena Gest-prod25/09/ Miguel Goyena MSI09/09/ Miguel Goyena MSI25/09/ Pelayo Menende z Garcia Gest-prod25/09/ Pelayo Menende z Garcia MSI09/09/ Pelayo Menende z Garcia MSI25/09/ PopGest-prod25/09/ PopMSI09/09/ PopMSI25/09/ Simon- Suisse Gest-prod25/09/ Simon- Suisse MSI09/09/ Simon- Suisse MSI25/09/ ThevenotGest-prod25/09/ ThevenotMSI09/09/ ThevenotMSI25/09/ ViardGest-prod25/09/ ViardMSI09/09/ ViardMSI25/09/ Simon- Suisse Qualité30/09/ Le BasQualité30/09/ Pelayo Menende z Garcia Qualité30/09/ BastienQualité30/09/ PopQualité30/09/ DenoualQualité30/09/20048 Clerget- Gurnaud Qualité30/09/20046 ThevenotQualité30/09/20044 ViardQualité30/09/20042 Miguel Goyena Qualité30/09/ Deltour Romain Qualité30/09/ DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 30 Cours MSI-2A filière ICL version 1.1 du 2 novembre L'interrogation simple Liste des élèves. SELECT NomElv (ce qui doit être affiché ?) FROM Eleves; (dans quelle table rechercher linformation ?) Liste des matières avec leurs coefficients. SELECT NomMat, Coef FROM Matieres; Toutes les notes classées par élèves SELECT Notes.Nomelv, Notes.NomMat, Notes.Date, Notes.Valeur FROM Notes ORDER BY Notes.Nomelv; NomelvNomMatDateValeur BastienGest-prod25/09/ BastienMSI09/09/ BastienMSI25/09/ Clerget-GurnaudGest-prod25/09/ Clerget-GurnaudMSI09/09/20049 Clerget-GurnaudMSI25/09/ Deltour RomainGest-prod25/09/ Deltour RomainMSI09/09/ Deltour RomainMSI25/09/ DenoualGest-prod25/09/20048 DenoualMSI09/09/ DenoualMSI25/09/ Toutes-les-notes/eleves DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 31 Cours MSI-2A filière ICL version 1.1 du 2 novembre L'interrogation simple (suite) Toutes les notes moyenne de matière classées par élèves SELECT [Toutes-les-notes/eleves].Nomelv, [Toutes-les-notes/eleves].NomMat, Avg([Toutes-les-notes/eleves].Valeur) AS MoyenneDeValeur FROM [Toutes-les-notes/eleves] GROUP BY [Toutes-les-notes/eleves].Nomelv, [Toutes-les-notes/eleves].NomMat; NomelvNomMatDateValeur BastienGest-prod25/09/ BastienMSI09/09/ BastienMSI25/09/ Clerget-GurnaudGest-prod25/09/ Clerget-GurnaudMSI09/09/20049 Clerget-GurnaudMSI25/09/ Deltour RomainGest-prod25/09/ Deltour RomainMSI09/09/ Deltour RomainMSI25/09/ DenoualGest-prod25/09/20048 DenoualMSI09/09/ DenoualMSI25/09/ Toutes-les-moyennes-mat/élèves NomelvNomMatMoyenneDeValeur BastienGest-prod15 BastienMSI15,5 Clerget-GurnaudGest-prod12 Clerget-GurnaudMSI10,5 Deltour RomainGest-prod17 Deltour RomainMSI18,5 Toutes-les-notes/eleves On compose les requêtes DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 32 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 SELECT [Toutes-les-moyennes-mat/élèves].NomMat, Avg([Toutes-les-moyennes-mat/élèves].MoyenneDeValeur) AS MoyenneDeMoyenneDeValeur FROM [Toutes-les-moyennes-mat/élèves] GROUP BY [Toutes-les-moyennes-mat/élèves].NomMat; Moyenne par matière Moyennes par matière NomMatMoyenne de la division Gest-prod13,09 MSI14,22 Qualité10,18 DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 33 Cours MSI-2A filière ICL version 1.1 du 2 novembre La close WHERE Elle permet de spécifier la ou les conditions que doivent remplir les lignes choisies. Liste des élèves habitant Mexico. SELECT NomElv FROM Eleves WHERE VilleElv = Mexico'; Liste des matières pour lesquelles l'élève "Simon-Suisse" a eu au moins une note. SELECT NomMat FROM Notes WHERE NomElv = 'Simon-Suisse'; Remarque : Dans la close WHERE, on ne peut utiliser que des propriétés qui sont dans la table sélectionnée DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 34 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Les jointures Matieres NomMat Coef Intitulé Notes NomElv NomMat Date Note Toutes-les-moyennes- mat/élèves NomElv NomMat Moyenne Tous les totaux/matiere NomelvTotal ds la matièreCoefIntitulé Bastien453Gestion de production Bastien46,53Management des SI Bastien101Qualité Clerget-Gurnaud363Gestion de production Clerget-Gurnaud31,53Management des SI Clerget-Gurnaud61Qualité Deltour Romain513Gestion de production Deltour Romain55,53Management des SI Deltour Romain151Qualité Denoual243Gestion de production Denoual453Management des SI Denoual81Qualité SELECT [Toutes-les-moyennes- mat/élèves].Nomelv, Matiere!Coef*[Toutes-les-moyennes- mat/élèves]!MoyenneDeValeur AS Expr1, Matiere.Coef, Matiere.Intitulé FROM [Toutes-les-moyennes- mat/élèves] INNER JOIN Matiere ON [Toutes-les-moyennes- mat/élèves].NomMat = Matiere.NomMat; DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 35 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 La somme des coefficients Matieres NomMat Coef Intitulé SELECT Sum(Matiere.Coef) AS SommeDeCoef FROM Matiere; SommeDeCoef 11 DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 36 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Les totaux puis les moyennes par élève, Nom eleve Moyenne semestrielle Deltour Romain11,05 Pop10,95 Miguel Goyena9,77 Bastien9,23 Pelayo Menendez Garcia8,14 Viard7,68 Le Bas7,68 Simon-Suisse7,18 Denoual7,00 Thevenot6,77 Clerget-Gurnaud6,68 SELECT [Tous les totaux/matiere].Nomelv, Sum([Tous les totaux/matiere].Expr1) AS SommeDeExpr1 FROM [Tous les totaux/matiere] GROUP BY [Tous les totaux/matiere].Nomelv; SELECT [Total/eleve].Nomelv, [Total/eleve]!SommeDeExpr1/[Somme- coef]!SommeDeCoef AS Expr1 FROM [Total/eleve], [Somme-coef] ORDER BY [Total/eleve]!SommeDeExpr1/[Somme- coef]!SommeDeCoef DESC; DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 37 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Toutes-les-moyennes-mat/élèves_Analyse croisée NomelvGest-prodMSIQualité Bastien1515,510 Clerget-Gurnaud1210,56 Deltour Romain1718,515 Denoual8158 Le Bas1111,517 Miguel Goyena1516,513 Pelayo Menendez Garcia1313,510 Pop1717,517 Simon-Suisse Thevenot1112,54 Viard1314,52 DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 38 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 dans MS Access DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 39 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 dans MS Access SELECT CLIENT.Telephone, COMMANDE.Montant FROM CLIENT INNER JOIN COMMANDE ON CLIENT.Num_client = COMMANDE.Num_client WHERE (((COMMANDE.Montant)>10000)); DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 40 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 SELECT personne.Nom, personne.Prenom, stage.Titre, stage.[Date-debut], stage.D_type_stage FROM personne INNER JOIN stage ON personne.Numéro = stage.Numéro; Les jointures
Michel Tollenaere SQL et relationnel 41 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 SELECT personne.Nom, personne.Prenom, stage.Titre, stage.[Date-debut], stage.D_type_stage FROM personne INNER JOIN stage ON personne.Numéro = stage.Numéro; !! !! La jointure a été faite sur lattribut « numéro » !! personne.Numéro = stage.Numéro; Les jointures
Michel Tollenaere SQL et relationnel 42 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 SELECT personne.Nom, personne.Prenom, stage.Titre, stage.[Date-debut], stage.D_type_stage FROM personne INNER JOIN stage ON personne.Num_securite_sociale = stage.Num_securite_sociale; Les jointures
Michel Tollenaere SQL et relationnel 43 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Les jointures
Michel Tollenaere SQL et relationnel 44 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Les jointures
Michel Tollenaere SQL et relationnel 45 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Les jointures SELECT personne.Nom, personne.Prenom, stage.D_type_stage, stage.Titre, stage.[Date-debut] FROM personne LEFT JOIN stage ON personne.Num_securite_sociale = stage.Num_securite_sociale;
Michel Tollenaere SQL et relationnel 46 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 47 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 48 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 DML (Data Manipulation Language)
Michel Tollenaere SQL et relationnel 49 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 DDL (Data Definition Language) 2 – Création des tables, des attributs et des contraintes dintégrité Le DDL (Data Definition Language) CREATE, ALTER, DROP, RENAME 3 – Restreindre des droits dacces GRANT REVOKE
Michel Tollenaere SQL et relationnel 50 Cours MSI-2A filière ICL version 1.1 du 2 novembre 2010 Schéma …. qui peut aussi se représenter CLIENT Num_client : entier long, Nom : chaine de 30 caractères, Prenom : chaine de 20 caractères, Code_postal : chaine de 5 chiffres, Telephone : chaine de 10 chiffres COMMANDE Num_commande : entier long, date : date, montant : monétaire client : entier long ARTICLE Code_article : entier long, Désignation: chaine de 50 caractères, prix : monétaire LIGNECOMMANDE code_article : entier long, Num_commande : entier long, quantité : entier