Bases de données. Chapitre 1. 1.1 Généralité sur les bases de données. 1.2 Avec sqlite3. 1.1.1 Le langage SQL et les bases de données



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

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Langage SQL : créer et interroger une base

Le langage SQL Rappels

1 Introduction et installation

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

SQL Historique

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

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

CREATION WEB DYNAMIQUE

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

MODE OPERATOIRE OPENOFFICE BASE

Le Langage SQL version Oracle

Les BASES de DONNEES dans WampServer

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Objectifs du TP : Initiation à Access

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.

Bases de données élémentaires Maude Manouvrier

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

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

Bases de données relationnelles

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

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

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

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

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

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

Olivier Mondet

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

Devoir Data WareHouse

1. Base de données SQLite

Vincent Augusto

16H Cours / 18H TD / 20H TP

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

Modélisation et Gestion des bases de données avec mysql workbench

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

Compétences Business Objects

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

MySQL / SQL EXEMPLES

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

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

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

FileMaker 13. Guide de référence SQL

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

Introduction aux Bases de Données 2004/2005

Création et Gestion des tables

Raja Bases de données distribuées A Lire - Tutoriel

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

Le Langage De Description De Données(LDD)

SOMMAIRE. Travailler avec les requêtes... 3

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

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

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

Base de données relationnelle et requêtes SQL

Créer une base de données

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

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

Mise en oeuvre d'une base de données mono-utilisateur avec SQLite

Bases de données Outils de gestion

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

Access et Org.Base : mêmes objectifs? Description du thème : Création de grilles d écran pour une école de conduite.

Mysql avec EasyPhp. 1 er mars 2006

Gestion de références bibliographiques

Pratique et administration des systèmes

La Clé informatique. Formation Excel XP Aide-mémoire

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

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

PRÉSENTÉ PAR : NOVEMBRE 2007

Chaîne opératoire de réalisation d une base de données. ANF «Comment concevoir une base de données» (29-30/01/2015)

TP3 : Creation de tables 1 seance

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

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de Données. Plan

PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

Sybase Adaptive Server Enterprise 15

A QUOI SERVENT LES BASES DE DONNÉES?

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

Gestion des utilisateurs et de leurs droits

I. MySQL : Serveur et SGBD

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

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

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

SQL MAP. Etude d un logiciel SQL Injection

Tutorial sur SQL Server 2000

Bases de données cours 1

Bases de Données. Le cas des BD relationnelles ouverture sur les BD relationnelles spatiales Séance 2 : Mise en oeuvre

OpenPaaS Le réseau social d'entreprise

5 - SQL - Bases de données

Optimisation SQL. Quelques règles de bases

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)

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

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

Transcription:

Chapitre 1 Bases de données 1.1 Généralité sur les bases de données 1.1.1 Le langage SQL et les bases de données La base de données (BDD) est un système qui enregistre des informations. Ces informations sont toujours classées. On peut donc faire des recherches sur ces données. Les SGBD (Systèmes de Gestion de Bases de Données) sont les programmes qui se chargent du stockage de vos données. Les plus connus sont : MySQL : libre et gratuit, c est probablement le SGBD le plus connu. PostgreSQL : libre et gratuit comme MySQL, avec plus de fonctionnalités mais un peu moins connu ; SQLite : libre et gratuit, très léger et adapté pour des petites bases de donnée ; Oracle : utilisé par les très grosses entreprises ; Vous donnez les ordres au SGBD en langage SQL (Structured Query Language). Voici un exemple de commande en langage SQL, pour vous donner une idée : SELECT id, auteur, message, datemsg FROM livreor ORDER BY datemsg DESC Pour communiquer avec une base de donnée (créer, modifier, faire une requête) on le fait avec : un logiciel : sqlitebrowser pour sqlite, pgadmin pour postgree. php : phpmyadmin pour mysql ou phppgadmin pour postgree. python : (import sqlite3), il y a aussi des modules pour mysql et postgree. 1.1.2 Structure d une base de données Avec les bases de données, il faut utiliser un vocabulaire précis. Une table est représentée sous la forme d un tableau ; par exemple, le tableau suivante vous montre à quoi peut ressembler le contenu d une table appelée «eleve». id nom prénom classe date_naissance LV1 LV2 1 ACHARD Quentin TS3 1995 anglais espagnol 2 AREZKI Yasmine TS2 1995 anglais espagnol 1.2 Avec sqlite3 Aller sur mon site http://megamaths.free.fr/pdf/bases/, télécharger la base de donnée isn.sqlite3 et avec le gestionnaire de fichier : clic droit ouvrir un terminal ici sqlite3 isn.sqlite3 SELECT * FROM sqlite_master; On a ainsi le détail de la base de donnée. 1

1.3 Avec un logiciel sqlitebrowser Ouvrez sqlitebrowser : Menu Développement SQLite database browser Ouvrer alors la base isn.sqlite3, cliquer alors sur l onglet browse data pour voir la base. On peut bien sur modifier les entrées, en ajouter et enlever. 1.4 Avec python Ouvrez ipython3 (ouvrir une console et taper ipython3) import sqlite3 # import du module con = sqlite3.connect('isn.sqlite3') # ouverture de la base c = con.cursor() # obtention d'un curseur c.execute("select * FROM sqlite_master") # la requête c.fetchall() #fetch signifie récupérer en anglais # idem mais en une seule ligne c.execute("select * FROM sqlite_master").fetchall() c.execute("select * FROM eleves").fetchall() # pour voir toute la table On utilise des bases de données pour effectuer des requêtes et avoir rapidement un résultat. Par exemple pour afficher tous les élèves de TS3 né en 1995 c.execute("select * FROM eleves WHERE classe='ts3'").fetchall() c.execute("select nom, prenom FROM eleves WHERE classe='ts3'").fetchall() c.execute("select * FROM eleves WHERE classe='ts3' ").fetchall() c.execute("select * FROM eleves WHERE classe='ts3' ORDER BY annee_naissance"). fetchall() c.execute("select * FROM eleves WHERE classe='ts3' ORDER BY id").fetchall() c.execute("select * FROM eleves WHERE nom='sajide' AND prenom='soufiane' "). fetchall() c.execute("select * FROM eleves WHERE nom LIKE 's%' ").fetchall() On peut bien sur modifier une base de donnée #pour ajouter c.execute("insert INTO eleves (nom, prenom, classe,annee_naissance) VALUES (' Simpson', 'bart', 'TS3', 1995)") con.commit() # pour valider l'écriture de la base c.execute("select * FROM eleves").fetchall() c.execute("select * FROM eleves WHERE prenom='bart'").fetchall() # pour modifier c.execute("update eleves SET prenom='lisa' WHERE nom='simpson' AND prenom='bart'") # effacer c.execute("delete FROM eleves WHERE nom='simpson'") # tous les simpson seront effac és con.commit() c.execute("select * FROM eleves").fetchall() ISN Page 2

1.5 Exercices Exercice 1 Les communes en France communes.sqlite3 Télécharger la base communes.sqlite3 Cette table porte sur les communes en france ref : (IGN) id code_comm insee_com nom_comm statut x_chf_lieu y_chf_lieu x_centroid y_centroid 1 271 29271 SAINT-VOUGAY Commune simple 1743 68564 1737 68559 z_moyen superficie population code_cant code_arr code_dept nom_dept code_reg nom_region 88 1483 0.9 31 3 29 FINISTERE 53 BRETAGNE À l aide de python et sqlite3 répondez aux questions suivantes : 1. Quelles sont les caractéristiques de la communes qui a pour id 586? 2. La liste des régions 3. Obtenez de même la liste des valeurs de statut. 4. Donner le nom des villes des sous prefectures de la région Picardie. 5. Combien y a t il de communes en france? 6. Combien y a t il de Sous-préfecture dans ma base de donnée? 7. Combien y a t il de communes dans le département de l isère? 8. Combien y a t il de communes dans le département de l isère entre 10 000 habitants et 20 000 habitants? 9. Les 3 communes de l isère qui ont la plus grande superficie. 10. Citer les 10 communes les plus peuplés dans le département de l isère. 11. Les 10 les moins peuplés. 12. Le nombre de communes en france dont le nom commence par Gren 13. Le nom des communes du département de l isère dont le nom commence par Gre ISN Page 3

1.6 Memento 1.6.1 Obtention des données SELECT <liste des noms de colonnes> FROM <liste des noms de tables> SELECT * FROM tab1 /*(toutes les colonnes)*/ SELECT col1,col3 FROM tab1 /*(une partie des colonnes)*/ SELECT DISTINCT col1 FROM tab1 /*(élimine les doublons)*/ SELECT nom AS "nom personne" FROM tab1 /*(renommage des colonnes)*/ SELECT nom "nom personne" FROM tab1 1.6.2 Expression des restrictions SELECT * FROM tab1 WHERE <condition(s)> SELECT * FROM tab1 WHERE ville IN ('Brest ','Rennes ','Paris ') SELECT * FROM tab1 WHERE age NOT BETWEEN 15 AND 20 SELECT * FROM tab1 WHERE travail IS NULL SELECT * FROM tab1 WHERE travail IS NOT NULL SELECT * FROM tab1 WHERE ville LIKE 'Gre%' /* commence par Gre */ SELECT * FROM tab1 WHERE ville LIKE 'reno%' /* contient reno */ > >= < <= = <> /*(comparateur arithmétiques)*/ AND OR NOT /*(comparateur logique)*/ % /*(n'importe quelle séquence de car.)*/ _ (barre basse) /*(n'importe quel caractère)*/ 1.6.3 Tri et présentation des résultats SELECT * FROM tab1 ORDER BY col1 /*(tri ascendant par défaut)*/ SELECT * FROM tab1 ORDER BY col5,col7 /*(tri par col5 puis tri par col7)*/ SELECT * FROM tab1 ORDER BY age ASC, sexe DESC /*(tri ascendant ou descendant)*/ SELECT * FROM tab1 ORDER BY age LIMIT 0,10 /* Les 10 premiers résulats*/ SELECT * FROM tab1 ORDER BY age LIMIT 10,5 /* Les 5 suivants*/ 1.6.4 Expression des jointures SELECT * FROM tab1,tab2 /*(jointure sans qualification =produit cartésien)*/ SELECT * FROM tab1,tab2 WHERE tab1.col1=tab2.col2 /*(jointure avec égalité = équijointure)*/ SELECT * FROM tab1 t1,tab2 t2,tab3 t3 WHERE t1.col1=t2.col2 AND t2.col2=t3.col3 /*(jointures en cascades)*/ 1.6.5 Expression des manipulations de données SELECT designation,prix*1.196 AS "P. TTC" FROM tab1 YEAR, MONTH, DATE /*(date)*/ SUBSTRING, UPPER, LOWER, CHARACTER_LENGTH /* (manipulation de chaînes de car.)*/ ISN Page 4

1.6.6 Regroupements SELECT * FROM tab1 GROUP BY col1 1.6.7 Les fonctions statistiques AVG COUNT MAX MIN SUM SELECT COUNT(*)FROM tab1 SELECT SUM(col1) FROM tab2 /*(moyenne)*/ /*(nombre d'éléments)*/ /*(maximum)*/ /* (minimum)*/ /*(somme)*/ 1.6.8 Sous-requêtes SQL SELECT * FROM tab1 WHERE prix > (SELECT MIN(prix) FROM tab2) SELECT * FROM tab1 WHERE nom NOT IN (SELECT nom FROM tab2) SELECT * FROM tab1 WHERE prix > ALL (SELECT prix FROM tab2) SELECT * FROM tab1 WHERE (sup. à ttes les valeurs) SELECT * FROM tab1 WHERE prix > ANY (SELECT prix FROM tab2) SELECT * FROM tab1 WHERE (sup. à au moins 1) 1.6.9 Opérateurs ensemblistes UNION INTERSECT EXCEPT /*S'intercalent entre deux sélections*/ 1.6.10 Insertions INSERT INTO tab1 VALUES ('abc',5,7) /*(toutes les valeurs doivent être renseigné es)*/ INSERT INTO tab1(col1,col7) VALUES ('abc',7) /*(on ne renseigne que les colonnes indiquées, les cols non précisées sont mises à NULL)*/ INSERT INTO tab1 SELECT * FROM tab2 1.6.11 Mises à jour UPDATE tab1 SET col7='abc' WHERE col1=1 1.6.12 Suppressions DELETE FROM tab1 WHERE col1=1 DELETE FROM tab1 WHERE col1 IN (SELECT no FROM tab2) DELETE FROM tab1 /*(vide complètement la table)*/ Ref : http://public.enst-bretagne.fr/~ptanguy/mementos/memento_sql.pdf ISN Page 5

1.7 La base de donnée communes.sqlite3 Une clé primaire : id Type : INTEGER NOT NULL PRIMARY KEY Code géographique de la commune : CODE_COMM. Il s agit du code géographique permettant d identifier la commune dans son département d appartenance (texte de trois caractères). Numéro INSEE de la commune : INSEE_COM. Il s agit d un numéro de 5 caractères : le code du département suivi du code géographique de la commune. Pour les DOM, le 3ème caractère est commun au n de département et au n de commune. Nom : NOM_COMM. Nom de la commune (source INSEE). C est un texte en majuscules non accentuées d au plus 50 caractères. Statut administratif : STATUT Type : énuméré. Valeurs possibles : - Capitale d État - Préfecture de région - Préfecture de département - Sous préfecture - Chef-lieu de canton - Commune simple Abscisse du chef-lieu : X_CHF_LIEU Abscisse du chef-lieu de la commune (en hectomètres). Ordonnée du chef-lieu : Y_CHF_LIEU Ordonnée du chef-lieu de la commune (en hectomètres). Abscisse du centroïde : X_CENTROID Abscisse du centroïde de la commune (en hectomètres). Ordonnée du centroïde : Y_CENTROID Ordonnée du centroïde de la commune (en hectomètres). Altitude moyenne : Z_MOYEN Altitude moyenne de la commune (en mètres). Superficie : SUPERFICIE Superficie de la commune en hectares. C est la somme des surfaces des faces BD CARTOcomposant la commune (avant allégement géométrique et suppression des îles et enclaves). ISN Page 6

Population : POPULATION Type : décimal Chiffre de population sans doubles comptes au dernier recensement, en milliers d habitants, à une décimale. Pour Mayotte, ce chiffre provient du recensement de 1997. Code géographique du canton : CODE_CANT Code géographique du canton auquel appartient la commune (texte de deux caractères). Code géographique de l arrondissement : CODE_ARR Code géographique de l arrondissement auquel appartient la commune (texte d un caractère). Ce champ est vide pour les communes de Mayotte : il n y a pas d arrondissement dans cette collectivité départementale Code géographique du département : CODE_DEPT Code géographique du département auquel appartient la commune (texte de deux caractères). Nom du département : NOM_DEPT Nom du département auquel appartient la commune. C est un texte en majuscules non accentuées d au plus 30 caractères. Code géographique de la région : CODE_REG Code géographique de la région à laquelle appartient la commune (texte de deux caractères). Nom de la région : NOM_REGION Nom de la région à laquelle appartient la commune. C est un texte en majuscules non accentuées d au plus 30 caractères. ISN Page 7