Introduction aux bases de données



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

SQL Historique

Langage SQL : créer et interroger une base

Bases de données relationnelles

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

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

CREATION WEB DYNAMIQUE

Le Langage SQL version Oracle

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

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

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

Les bases de données

16H Cours / 18H TD / 20H TP

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

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

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

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

1 Introduction et installation

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

I4 : Bases de Données

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

Olivier Mondet

Le langage SQL Rappels

Le Langage De Description De Données(LDD)

Vincent Augusto

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

A QUOI SERVENT LES BASES DE DONNÉES?

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

FileMaker 13. Guide de référence SQL

Licence de MIDO - 3ème année Spécialités Informatique et Mathématiques Appliquées

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

Devoir Data WareHouse

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

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

MODE OPERATOIRE OPENOFFICE BASE

Compétences Business Objects

Historisation des données

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

INSTITUT NATIONAL DES TELECOMMUNICATIONS CONTROLE DES CONNAISSANCES. 2. Les questions sont indépendantes les unes des autres.

TD n 10 : Ma première Base de Données

BTS/CGO P10 SYSTEME INFORMATION Année

Les BASES de DONNEES dans WampServer

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Création et Gestion des tables

Introduction aux Bases de Données 2004/2005

TP3 : Creation de tables 1 seance

TP base de données SQLite. 1 Différents choix possibles et choix de SQLite : 2 Définir une base de donnée avec SQLite Manager

MySQL / SQL EXEMPLES

Structured Query Language

Objectifs du TP : Initiation à Access

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

WEB DEVELOPER SGBD SYSTEME DE GESTION DE BASES DE DONNEES L étudiant sera capable :

OpenPaaS Le réseau social d'entreprise

Bases de données relationnelles & SQL

1. Base de données SQLite

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

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

Bases de données. Yamine AIT AMEUR. INPT-ENSEEIHT DIMA 2 Rue Charles Camichel Toulouse Cedex 7

Bases de données élémentaires Maude Manouvrier

Bases de données. PTSI Lycée Eiffel. 28 février 2014

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

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

Systèmes de Gestion de Bases de Données

Introduction aux Bases de Données

Durée : 4 heures Le sujet se présente sous la forme de deux dossiers indépendants

Chapitre 3 LE MODELE RELATIONNEL ET SQL (DDL)

Pratique et administration des systèmes

I. MySQL : Serveur et SGBD

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

Application web de gestion de comptes en banques

Hala Skaf-Molli. Nancy-Université 14 mai 2007

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

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

BASES DE DONNEES TP POSTGRESQL

Comprendre les bases de données

Information utiles. webpage : Google+ : digiusto/

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

Mejdi BLAGHGI & Anis ASSÈS

SUPPORT SQL. Thierry GRANDADAM

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

Mysql avec EasyPhp. 1 er mars 2006

TP Contraintes - Triggers

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

Cours 3. Développement d une application BD. DBA - Maîtrise ASR - Université Evry

Chapitre 11 Bases de données

Support de cours. Introduction à SQL et MySQL. 2003, Sébastien Namèche

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

MySQL avec Mac OS X. Quelques manipulations avec le terminal sont nécessaires si une version de MySQL est déjà lancée:

Bases de données Cours 4 : Le langage SQL pour ORACLE

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

Durée : 4 heures coefficient : 4 Le sujet se présente sous la forme de deux dossiers indépendants

Bases de données Outils de gestion

LE LANGAGE SQL2 1. INTRODUCTION

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

Transcription:

Introduction aux bases de données Cours 3. : Le langage SQL Vincent Martin email : vincent.martin@univ-tln.fr page personnelle : http://lsis.univ-tln.fr/~martin/ Master 1. LLC Université du Sud Toulon - Var 16 novembre 2012 M1 - LLC 1/18

L algèbre relationnelle Définition L algèbre relationnelle définit l ensemble des opérations de base pour manipuler les relations. Attention Langage formel Basé sur la théorie des ensembles Deux types d opérations ensemblistes : opérations binaires agissant sur 2 relations et en produisant une troisième spécifiques : opération unaire sur une relation et en construisant une seconde L algèbre relationnelle est un langage formel qui n est pas utilisable en tant que tel. Pour manipuler une base de données, on utilise une spécification de cette algèbre : SQL. M1 - LLC 2/18

Le langage SQL SQL (Structured Query Language) est le langage standard de manipulation des SGBD relationnels. Fortement inspiré du langage SEQUEL ; développé par IBM en 75 Dernière révision : 2011 (ajout d extensions) Les SGBDR implante tout ou partie du langage SQL permet de créer, de lire, de modifier, de supprimer tout type d objets d une BDR : schéma, relations mais aussi les droits des utilisateurs, les vues etc. M1 - LLC 3/18

L exemple des étudiants et des filières ETUDIANT ID NOM PRENOM NAISSANCE PHOTO FILIERE# 1 Durand Pierre 14/10/1989 M2 2 Dupond Marie 15/02/1988 M1 FILIERE CODE CAPACITE L1 300 L2 200 L3 150 M1 100 M2 50 M1 - LLC 4/18

Création de tables (1/2) Syntaxe CREATE TABLE <nom> ( <nom_attr> <type> <valeur_défaut> <contraintes>, <nom_attr> <type> <valeur_défaut> <contraintes>,... ); <contrainte>, <contrainte>,... M1 - LLC 5/18

Création de tables (2/2) Exemple CREATE TABLE ETUDIANT ( id INTEGER PRIMARY KEY, nom VARCHAR(50) NOT NULL, prenom VARCHAR(50) NOT NULL, date_naissance DATE NOT NULL, photo BLOB, filiere VARCHAR(10), FOREIGN KEY (filiere) REFERENCES FILIERE(code) ); M1 - LLC 6/18

Recherche de données Syntaxe SELECT <attributs> FROM <relations> [WHERE <contraintes>] [GROUP BY <attributs_partitionnement> HAVING <conditions_partitionnement> ] ORDER BY <attribut> <ordre>, [, <attribut> <ordre>]] M1 - LLC 7/18

Expressions de sélections simples Quels sont les noms des étudiants? SELECT nom Quels sont les noms (sans doublons) des étudiants? SELECT DISTINCT(nom) Quelles sont toutes les informations des étudiants? SELECT * M1 - LLC 8/18

Expressions avec restriction(s) Quels sont les étudiants (nom et prénom) n ayant pas de photo? SELECT nom, prenom WHERE photo = NULL; Quels sont les étudiants (id, nom, prénom) de plus de 26 ans? SELECT id, nom, prénom WHERE data_naissance < 1986-12-01 Quels sont les étudiants dont le nom ou le prénom commence par Mar. Sélectionner toutes les informations SELECT * WHERE nom LIKE Mar% OR prenom LIKE Mar% M1 - LLC 9/18

Calculs et agrégats Combien y a-t-il d étudiants en tout? SELECT count(id) Combien y a-t-il d étudiants de plus de 26 ans? SELECT count(id) WHERE date_naissance < DATE_SUB(NOW(), INTERVAL 26 YEAR) M1 - LLC 10/18

Jointures Quels sont les étudiants et leur filière (sélectionner toutes les informations)? SELECT *, FILIERE WHERE ETUDIANT.filiere = FILERE.code; Autre écriture SELECT * INNER JOIN FILIERE ON ETUDIANT.filiere = FILIERE.code Quels sont les étudiants de M2 SELECT ETUDIANT.* INNER JOIN FILIERE ON ETUDIANT.filiere = FILIERE.code WHERE FILIERE.code = M2 ; M1 - LLC 11/18

Ordre et tri Sélectionner les noms et prénoms des étudiants classés par ordre alphabétique SELECT nom ORDER BY nom asc Sélectionner les noms, prénoms et dates de naissance des étudiants classés du plus jeune au plus vieux SELECT nom, prenom, date_naissance ORDER BY date_naissance desc M1 - LLC 12/18

Sous-requête Quel est la moyenne d âge des étudiants? SELECT avg(age) as moyenne_age FROM ( SELECT YEAR(NOW()) - YEAR(date_naissance) as age ) M1 - LLC 13/18

Mises à jour : 3 opérateurs INSERT : insertion de lignes dans une table UPDATE : modification de lignes dans une table DELETE : suppression de lignes dans une table M1 - LLC 14/18

INSERT Syntaxe INSERT INTO <relation> [(attribut [,attribut]...)] VALUES (<valeur> [, <valeur>]...) Ajouter un nouvel étudiant INSERT INTO ETUDIANT (id, nom, prenom, date_naissance, photo) VALUES (125, Nicolas, Dupond, 1987-08-12, NULL); Ajouter une nouvelle filière INSERT INTO FILIERE (code, capacite) VALUES ( DUT_1, 200); M1 - LLC 15/18

UPDATE Syntaxe UPDATE <relation> SET <attribut> = <valeur>, [<attribut> = <valeur>],... [WHERE <condition>] Changer la capacité de la filière DUT 1 à 150 UPDATE FILIERE SET capacite = 150 WHERE code= DUT_1 ; ATTENTION Si on ne met pas de WHERE dans une mise à jour (UPDATE), ce sont toutes les lignes qui sont modifiées! M1 - LLC 16/18

DELETE Syntaxe DELETE FROM <relation> [WHERE] <condition>] Supprimer les étudiants qui sont dans aucune filière DELETE WHERE filiere = NULL; ATTENTION Même remarque que précédemment. Si la condition WHERE n est pas définie, ce sont toutes les lignes qui sont supprimées!!! M1 - LLC 17/18

Ce qu il faut retenir SQL permet de manipuler le schéma et les données Interrogation :SELECT...FROM...WHERE...ORDER BY... Modification : INSERT, UPDATE, DELETE (attention à ne pas oublier le WHERE!) Principaux opérateurs :AND, OR, IN, LIKE %...%, =, <, >, min(...), max(...), avg(...) M1 - LLC 18/18