SQL --> LDD : language de definition des donnees LMD : lang. de manipulation de
SQL --> LDD : language de definition des donnees LMD : lang. de manipulation des donnees LED : lang. d extraction des donnees _LDD : create, alter drop _LMD : insert, update, delete _LED : select LED : select <output> [as <alias>] from <input> [where <cond>] //option de filtrage pré-traitement [group by <liste champs>] //regroupement [order by <liste champs> ASC/DESC] //présentation [limit nbLignes/offset] //présentation [having <cond>] //option de filtrage post-traitement ___________________________________________________________________ /** commentaire multilignes **/ -- commentaire uniligne --creation base de donnees create database dic1; --création utilisateur create user lamine@"localhost" identified by "passer"; --octroie tous les privileges sur la base dic1 lorsque lamine se connecte en localhost grant all privileges on dic1.* to lamine@"localhost"; -- privileges select lorsqu il se connecte en localhost grant select on dic1.* to lamine@"localhost"; -- se connecter à dic1 use dic1; -- creer la table Etudant create table etudiant( idEtudiant integer auto_increment primary key, nom varchar(20) default "NNNNNNN", age integer default 0, moyenne float); --structure de la table etudiant desc etudiant; --insertion de donnees insert into etudiant values( 1, "mbacke", "ahmad bamba", 35, 14); --nouvelle table create table jeunesEtudiants(idEtudiant integer, age int); --remplir la table jeunesEtudiants avec les donnees de etudiant insert into jeunesEtudiants select idEtudiant, age from etudiant where age < 20; --modifier un enregistrement update etudiant set prenom = "Mouhamed" where id = 3; --renvoyer la moyenne d age et renommage du champ (alias) select avg(age) as `moyenne age` from etudiant; --dans select output from input input --> vide Ex: select user(), 5; input --> dual Ex: select user() from dual; input --> table Ex: select * from etudiant; input --> plusieurs tables Ex: select * etudiant, classe; /** produit cartésien entre les tables etudiants et classe, ce sont toutes les combinaisons possibles entre les enregistrement des deux tables...Occupe beaucoup d'espace en mémoire **/ --ajout du champ idClasse dans la table Etudiant alter table etudiant add idClasse integer; --l'id de chaque etudiant est son id de classe: update Etudiant set idClasse = idEtudiant; --jointure entre etudiant et classe select * from etudiant join Classe on etudiants.idClasse = Classe.idClasse; /** chaque enregistrement de etudiant sera combiné à l enregistrement de la table Classe qui a le meme idClasse, ici, apres le 'on', on aurait pu donner une autre condition de jointure (plus souple que la natural join) **/ --jointure naturelle select * from etudiant natural join Classe; /** la jointure naturelle impose qu il y ait des champs en communs **/ /** la jointure naturelle est la plus utilisée, et la plus simple, mais il fait faireattention à ce que le champ en commun ait un sens differen dans les deux tables. Dans ce cas, la le résultat n'aura pas de sens **/ ___________________________________________________________________ ==> Algebre relationnel -> Relation : Ensemble d attributs, chaque attribut a un nom et un domaine de valeurs(ou type) -> Principes : Multivaluation(plusieurs valeurs du mm types) / monovaluation complexe(plusieurs valeurs pouvant etre completement différebts) / simple Dans le modele relationnel, tous les attributs doivent etre simples et monivalués. c est ce qu on appelle atomicité des attributs -> Types d attributs : . Identifiant est un (ou plusieurs) attribut(s) tel qu il existe une fonction -> Tout ce qui est fait en SQL .est applicable à des donnees relationnelles. Modele relationnel (structure des donnees) .représente des traitements : algèbre relationnelle _L algebre relationnel est un ensemble d operateurs qui traite en entree des relations et furnit en sortie un ensemble d attributs. Il admet deux types d operatuers : .unaire (1 relation entree) : Operateurs [parametre] relation _Selection : 6 [condition] R = R1...se traduit "select * from R where condition;". Schema(R1) = Schema(R) le schema d une relation c est l ensemble des champs de la relation _Projection Pi[a, b, c] R = R1. Schema(R1) = (a, b, c); card(R1) = card(R). se traduit par "select a, b, c from R;" _Renommage alpha[a->a1, b->b1, ...] R = R1. se traduit par "select a as a1, b as b1,... from R;" Exemple : "select nom, prenom from Etudiants where age > 18;" se traduit donc : Pi[nom, prenom](6 [age>18] Etudiants) L'interpreteur traduit le premier en le second .binaire (2 relations en entree) : Relation1 Opérateur [parametre] Relation2 _produit cartesien R1 X R2 = R3. Renvoie l ensemble des combinaisons possibles entre les tables R1 et R2 Se traduit par "select * from R1, R2. En theorie, on deconseille de faire des produitscartesiens sur deux tables si elles ont un attribut en commun. _jointure naturelle R1 |X| R2 = R3. condition schema(R1) inter shcema R2 different {}. Semantique Adjoindre les tuples qui ont des valeurs egales pour les champs en commun. Si aucun champ en commun, fait un produit cartésien (implémentation de mysql) alors que le language SQL prevoirait de renvoyer une erreur pour ce cas. S'il y a un champ en commun mais qui n a pas le mm sens (homonymie), on peut le renommer dans l une des tables (alias) avant d appliquer la jointure naturelle. Si les 2 tables partagent un champ en commun du point de vue semantique mais qui n ait pas le mm nom dans chacune des tables (synonymie), on peut renommer le champ dans l une des deux tables pour que les soient le meme dans les deux tables avant d appliquer la jointure naturelle. Toute sous requete doit avoir un alias, Ex: select * from (select ....) R1 natural join R2. _theta jointure est une generalisation de la jointure naturelle mais avec une condition explicite. Ex : select * from personnes join services on personnes.etatActivation = services.etatActivation; uploads/Geographie/ notes.pdf
Documents similaires
-
23
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 05, 2022
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 0.0215MB