Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes



Documents pareils
COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Bases de données relationnelles

Les bases de données

Le Langage SQL version Oracle

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

Langage SQL : créer et interroger une base

14/04/2014. un ensemble d'informations sur un sujet : exhaustif, non redondant, structuré, persistant. Gaëlle PERRIN SID2 Grenoble.

Le langage SQL Rappels

16H Cours / 18H TD / 20H TP

Introduction au Système de Gestion de Base de Données et aux Base de Données

Le langage SQL (première partie) c Olivier Caron

1 Introduction et installation

Le langage SQL pour Oracle - partie 1 : SQL comme LDD

Bases de Données relationnelles et leurs systèmes de Gestion

Présentation du module Base de données spatio-temporelles

clef primaire ; clef étrangère ; projection ; restriction ; jointure ; SQL ; SELECT ; FROM ; WHERE

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

1. Qu'est-ce que SQL? La maintenance des bases de données Les manipulations des bases de données... 5

CREATION WEB DYNAMIQUE

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

IFT3030 Base de données. Chapitre 1 Introduction

SQL Historique

A QUOI SERVENT LES BASES DE DONNÉES?

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Devoir Data WareHouse

Le Langage De Description De Données(LDD)

PHP 5. La base de données MySql. A. Belaïd 1

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

TP Contraintes - Triggers

TP3 : Creation de tables 1 seance

Vincent Augusto

Cours Base de données relationnelles. M. Boughanem, IUP STRI

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

Information utiles. webpage : Google+ : digiusto/

MODE OPERATOIRE OPENOFFICE BASE

Notes de cours : bases de données distribuées et repliquées

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Mejdi BLAGHGI & Anis ASSÈS

Olivier Mondet

Langage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL

Pour les débutants. langage de définition des données

ORACLE 10G DISTRIBUTION ET REPLICATION. Distribution de données avec Oracle. G. Mopolo-Moké prof. Associé UNSA 2009/ 2010

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

Plan. Bases de Données. Sources des transparents. Bases de SQL. L3 Info. Chapitre 4 : SQL LDD Le langage de manipulation de données : LMD

Les bases de données Page 1 / 8

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données Cours 1 : Généralités sur les bases de données

Les BASES de DONNEES dans WampServer

Optimisation SQL. Quelques règles de bases

Bases de données Outils de gestion

I. MySQL : Serveur et SGBD

Système de Gestion de Bases de Données Relationnelles. MySQL. Youssef CHAHIR

SQL. Oracle. pour. 4 e édition. Christian Soutou Avec la participation d Olivier Teste

Bases de données et sites WEB Licence d informatique LI345

Bases de Données Avancées

Administration des bases de données. Jean-Yves Antoine

Cours: Administration d'une Base de Données

Introduction aux bases de données Cours 1 : Généralités sur les bases de données

Bases de Données Relationnelles. Le Modèle Relationnel

Cours Bases de données

Cours Bases de données 2ème année IUT

Compétences Business Objects

Bases de données élémentaires Maude Manouvrier

Initiation à SQL. Le langage de communication avec une base de données relationnelles. Application avec PostgreSQL. Nathalie Camelin 2011/2012

FileMaker 13. Guide de référence SQL

Bases de Données. Plan

Bases de données relationnelles & SQL

Partie 0 : Gestion des tablespace et des utilisateurs... 3

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

Cours SQL. Base du langage SQL et des bases de données

Bases de Données. Stella MARC-ZWECKER. Maître de conférences Dpt. Informatique - UdS

Application web de gestion de comptes en banques

Mysql avec EasyPhp. 1 er mars 2006

La présente publication est protégée par les droits d auteur. Tous droits réservés.

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

NFA 008. Introduction à NoSQL et MongoDB 25/05/2013

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

INTRODUCTION : Données structurées et accès simplifié

Base de Données et Langage SQL

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

Bases de données cours 1

Bases de données avancées Introduction

PHP. Bertrand Estellon. 26 avril Aix-Marseille Université. Bertrand Estellon (AMU) PHP 26 avril / 214

Université de Nice Sophia-Antipolis. Langage SQL. version 5.7 du polycopié. Richard Grin

PROJET 1 : BASE DE DONNÉES REPARTIES

Mysql. Les requêtes préparées Prepared statements

Base de données relationnelle et requêtes SQL

Magasins et entrepôts de données (Datamart, data warehouse) Approche relationnelle pour l'analyse des données en ligne (ROLAP)

Conception des bases de données : Modèle Entité-Association

Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS

Jérôme FESSY. IUT de Paris 5. Base de Données. Cours Introductif. Base de Données

Introduction aux Bases de Données

MySQL / SQL EXEMPLES

OpenPaaS Le réseau social d'entreprise

Bases de données relationnelles : Introduction

PHP 4 PARTIE : BASE DE DONNEES

Transcription:

Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007

Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants

Définition d une BD Une BD est : un ensemble structuré de données persistantes représentant une réalité extérieure au système partagé par plusieurs applications d une même entreprise

SGBD : objectifs Un système pour gérer : les données l accès aux données

SGBD : objectifs données éviter les redondances de données occurrences multiples d un même étudiant éliminer les incohérences un étudiant non-inscrit suivant un cours d info gérer des types de données très variés numériques, booléens, texte, image, sons

SGBD : objectifs accès standardisation de l accès aux données langage de requêtes sécurité utilisateurs, droits, rôles, authentification cryptage des données robustesse disponibilité des données, résistance aux pannes performances mode client/serveur gestion des accès concurrents répartition des données sur plusieurs machines, plusieurs sites

SGBD : objectifs modèle Surtout : permettre une description logicielle unique, indépendante des caractéristiques d implantation La base de données est vue par ses utilisateurs comme un modèle logique des données (MLD) complètement indépendant de son implantation physique.

Différents types de BD modèle navigationel modèle relationel modèle orienté-objet

Modèle navigationel S appuie sur les notions de pointeur et de chemin pour naviguer dans la base des enregistrements. bases hiérarchiques : premiers SGBD organisation des entités selon un arbre liaisons entre entités par pointeurs bases réseaux : les plus rapides schéma plus ouvert que hiérarchique

Modèle relationel S appuie sur les notions de relations et de langage déclaratif pour la formulation de requètes. bases relationelles : les plus utilisées représentation en tables algèbre relationelle langage déclaratif d interrogation (SQL) bases déductives : représentation en tables/prédicats langage d interrogation basé sur le calcul des prédicats et la logique du 1er ordre

Modèle orienté-objet S appuie sur les notions d objet et de champ, mais associe parfois à cette approche navigationelle un langage d interrogation déclaratif. moins utilisée les données sont représentées en terme de classe ; un champ contient un objet chaque donnée est donc active l héritage est utilisé comme mécanisme de factorisation de la connaissance introduction des traitements directement dans la BD

Systèmes existants Tous sont relationnels ; certains introduisent un peu d objet. Oracle DB2 Postgres Informix SysBase SQL server Access MySQL

Niveaux de langages BD langage de définition de données (LDD) définition, destruction de tables, utilisateurs, etc... langage de manipulation de données (LMD) insertion, mise à jour, effacement de données langage de requêtes consultation de la base de données SQL permet toutes ces opérations!

Vocabulaire En SQL : une table est l équivalent d un fichier une colonne est l équivalent d un champ une ligne est l équivalent d un enregistrement

Préambule une colonne C d une table T se désigne par : T.C quand il n y a pas d ambiguité, on peut abréger en : C l ensemble des colonnes d une table T se désigne par : T.*

Conventions Chose désigne un élément syntaxique nommé chose qui sera défini par une ou plusieurs règles syntaxiques. MotClé désigne un mot clé ou une ponctuation du langage on écrira l ensemble des rêgles pour un élément syntaxique de la manière suivante : Chose ::= rêgle1 rêgle2 rêgle

Définition des données changer son mot de passe : alter user <USER > identified by <PASSWD >; créer une table : create table <IDENT > (<COLS >); Exemple : create table client ( numcli Number(4), nom Varchar2(20), prenom Varchar2(20), adresse Varchar2 (20)); supprimer une table : drop table <IDENT >;

Types de données courants Char(taille) : chaîne de caractères de taille fixe Varchar(taille) : chaîne de caractères de taille variable Varchar2(taille) Number(taille,décimales) Date Blob : jusqu à 8 téraoctets (10 12 ou 2 40 ) de données binaires

Constantes et conversions constantes : Number : 19.4 Char, Varchar : Bonjour conversions : to_date( 19-12-2004, dd-mm-yyyy ) to_date(date, dd-mm-yyyy ) to_number( 123 ) to_char(23.5)

Manipulation des données insertion d une ligne : insert into <TAB > values (<VALS >); exemple : insert into client values (124, Dupont, Jean, Orleans );

Manipulation des données suppression d une ligne : delete from <TAB > where <CONDITION >; un delete sans clause where provoque l effacement de toutes les données de la table exemples : delete from client where adresse = Orleans ; delete from client;

Manipulation des données mise à jour de lignes : update <TAB > set <COL > = <VAL >,... where <CONDITION >; exemples : update client set prenom = Paul where numcli =123; update client set adresse = ORLEANS ;

Manipulation des données Les parties définition et manipulation des données sont beaucoup plus riches : contraintes d intégrité clés manipulation de vues etc...

Client/Serveur Attention : les insertions, mises à jour et suppressions de lignes sont différées. validation des commandes : commit ; annulation des dernières commandes : rollback ; à la déconnexion : commit automatique!

Requêtes SQL Structured Query Language principal langage de requêtes des BD relationelles basé sur l algèbre relationelle

Principales opérations Projection : restriction sur les colonnes Sélection : restriction sur les lignes Produit cartésien : association de toutes les lignes d une table à toutes les lignes de l autre Jointure : association de certaines lignes d une table avec certaines lignes d une autre (reconstitution de l information)

Afficher le contenu d une table select * from Adherent;

Projection select nom, prenom from Adherent;

Sélection select * from Adherent where nom= Dupont ;

Produit cartésien select nom, prenom, intitule from Adherent, Participe;

Jointure select nom, prenom, intitule from Adherent, Participe where Participe. numad = Adherent. numad;

Syntaxe d une requête select <COLS > from <TABS > where <CONDS >; <COLS> effectue une projection <TABS> effectue un produit cartésien <CONDS> effectue une sélection. La clause where est facultative

Exemple select nom, prenom, intitule from Adherent, Participe where Adherent. numad = Participe. numad and Adresse = Orleans ;

Conditions cond ::= bool ( cond ) cond op cond NOT cond op ::= AND OR bool ::= comparaison il existe de nombreuses autres expressions Booléennes possibles.

Comparaisons comparaison ::= expr op expr op ::= = égal <>!= différent < <= > >= ordre IS NULL absence de expr ::= constante colonne table. colonne expr opération expr

Comparaisons de chaînes Opérateur de comparaison approximative LIKE : chaine LIKE motif où motif est une suite de caractères contenant éventuellement les symboles % et _ % remplace n importe quelle suite de caractères _ remplace exactement un caractère abc% désigne tous les mots commençant par abc

Expressions opérations sont standard pour l arithmétique pour les chaînes désigne la concaténation date + entier ajoute un nombre de jours à une date date entier enlève un nombre de jours à une date date date donne le nombre de jours entre deux dates

Renommage Liste des adhérents qui ont au moins un homonyme : select r1.nom, r1. prenom p1, r2. prenom p2 from Adherent r1, Adherent r2 where r1.nom=r2.nom and r1. numad <>r2. numad;

Renommage : affichage NOM P1 P2 Duval Paul Jean Duval Jean Paul

Exemple complet Liste des adhérents habitant Orléans avec leurs activites : select nom, prenom, numact act from Adherent a, Participe p where a. numad=p. numad and adresse = Orleans ;

Calculs dans le select Les colonnes du select peuvent être le résultat d un calcul : select Upper(nom), ( Sysdate - datenais )/365 from Adherent; Affiche le nom des adhérents en majuscules ainsi que leur age. Les calculs peuvent se faire entre plusieurs colonnes d une même ligne : select intitule, prixht*qte from commande;

Formatage du résultat élimination des doublons tri des données

Elimination des doublons Apres une projection, il y a risque de doublons dans le résultat : select ville from Adherent; Ville Orleans Tours Orleans

Elimination des doublons Elimination des doublons par DISTINCT : select DISTINCT ville from Adherent; Ville Orleans Tours

Tri des données Par la clause order by order by ::= order by bycols bycols ::= bycol bycol ::= col bycol, bycols col desc l ordre par défaut est ascendant (sauf avec desc). La clause order by est toujours placée en dernier dans la requête

Exemple select nom, prenom from Adherent order by nom, prenom; cette requête affiche la liste des adhérents classée dans l ordre alphabétique par nom puis prenom

Exemple select Activite. intitule from Activite, Participe where Activite. numact = Participe. numact and anneeparticipe =2000 order by Activite. intitule; affiche la liste classée par ordre alphabétique des activités ayant eu des participants en 2000

Exemple select nom, prenom, datenais from Adherent order by datenais desc; affiche la liste des adhérents du plus jeune au plus agé