Memento SQL. Memento SQL. Jérôme DESMOULINS 18 septembre Jérôme DESMOULINS Page 1 / 8

Documents pareils
Langage SQL : créer et interroger une base

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

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

Le langage SQL Rappels

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

SQL Historique

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

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

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

FileMaker 13. Guide de référence SQL

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Le Langage SQL version Oracle

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

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

TP3 : Creation de tables 1 seance

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

1 Introduction et installation

Le Langage De Description De Données(LDD)

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

16H Cours / 18H TD / 20H TP

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

BTS/CGO P10 SYSTEME INFORMATION Année

Introduction aux Bases de Données 2004/2005

Partie I : Créer la base de données. Année universitaire 2008/2009 Master 1 SIIO Projet Introduction au Décisionnel, Oracle

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

Les bases de données

TP Contraintes - Triggers

FORMATION A L UTILISATION DE PMB QUELQUES NOTIONS DE SQL

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

Devoir Data WareHouse

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

Cours 4 : Agrégats et GROUP BY

I/ Présentation. On considère une BD CIRQUE dont le schema conceptuel : PERSONNEL _CIRQUE (NOM, ROLE) ;

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

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

MySQL / SQL EXEMPLES

Optimisation SQL. Quelques règles de bases

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

A QUOI SERVENT LES BASES DE DONNÉES?

Bases de données relationnelles

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

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

Olivier Mondet

SQL sous SqlServer OLIVIER D. DEHECQ Olivier 0

Vincent Augusto

Systèmes de Gestion de Bases de Données

Gestion des utilisateurs et de leurs droits

Résumé S Q L. Auteur: Alexandre PATIN Edition: 22 février alexandre.patin@free.fr URL :

Partie II Cours 3 (suite) : Sécurité de bases de données

A QUOI SERVENT LES BASES DE DONNÉES?

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

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

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

Procédures Stockées WAVESOFT ws_sp_getidtable Exemple : ws_sp_getnextsouche Exemple :... 12

Introduction à JDBC. Accès aux bases de données en Java

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

Intégrité des données

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

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

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

TP Bases de données réparties

UE8 Systèmes d information de gestion Corrigé indicatif

Compétences Business Objects

Corrigés détaillés des exercices

Les bases fondamentales du langage Transact SQL

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

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

Historisation des données

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

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

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

CREATION WEB DYNAMIQUE

1. Base de données SQLite

Réplication E-maj Foreign Data Wrapper PostGIS PostgreSQL-f

1 Introduction. 2 Le modèle relationnel. 3 Algèbre relationnelle 4 SQL. 5 Organisation physique des données 1/228

Bases de données Oracle Virtual Private Database (VPD) pour la gestion des utilisateurs d applications

Les BASES de DONNEES dans WampServer

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

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

IFT3030 Base de données. Chapitre 1 Introduction

Oracle Décisionnel : Modèle OLAP et Vue matérialisée D BILEK

MODE OPERATOIRE OPENOFFICE BASE

LE LANGAGE SQL2 1. INTRODUCTION

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

I. MySQL : Serveur et SGBD

Présentation Windows Azure Hadoop Big Data - BI

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

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

BAREME sur 40 points. Informatique - session 2 - Master de psychologie 2006/2007

Stockage de données sous Android

Bases de données Page 1 de 11. Bases de données. Prof. : Dzenan Ridjanovic

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

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

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

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

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

Intégrité sémantique dans les bases de données relationnelles

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)

Transcription:

Memento SQL Jérôme DESMOULINS 18 septembre 2007 Jérôme DESMOULINS Page 1 / 8

Table des matières Commandes simples...3 UPDATE...3 WHERE... 3 SELECT...3 INSERT... 3 DELETE... 3 Jointure...4 Union - R1 U R2...4 Différence - R1 / R2...4 Requète imbriquées... 4 Requête imbriquées - IN / NOT IN... 4 Requêtes imbriquées - ALL...4 Requête imbriquées - ANY...4 Requête imbriquées - EXISTS...5 Prédicats... 5 Prédicat BETWEEN... 5 Prédicat LIKE... 5 Prédicat IS NULL... 5 Clauses...5 Clause GROUP BY... 5 Clause HAVING...5 Clause ORDER BY... 6 Clause DISTINCT... 6 Fonctions agrégats... 6 Agrégat - COUNT... 6 Agrégat - SUM...6 Agrégat - MIN... 6 Agrégat - MAX...7 Agrégat - AVG...7 Commandes spécifiques... 7 Oracle...7 Obtenir des informations...7 Définition d'une table... 7 Tables importantes... 7 Liste des tables... 7 Liste des objets... 8 Liste des privilèges...8 Jérôme DESMOULINS Page 2 / 8

Commandes simples UPDATE UPDATE table_name SET col_name='xxx' WHERE condition; WHERE WHERE col_name1 = 'xxx' AND col_name2 = 'xxx'; WHERE col_name1 = 'xxx' OR col_name2 = 'xxx'; SELECT SELECT [DISTINCT ALL] * FROM table_name [ WHERE condition ] [ GROUP BY expr [, expr]... ] [ HAVING condition ] [ {UNION UNION ALL INTERSECT MINUS} SELECT command ] [ ORDER BY {expr position} [ASC DESC] [, {expr position} [ASC DESC]]...] [ FOR UPDATE OF column ]; INSERT La commande INSERT permet d'insérer une ligne dans une table en spécifiant les valeurs à insérer. INSERT INTO table_name(nom_col1, nom_col2,...) VALUES (val1, val2...); La liste des noms de colonne est optionnelle. Si elle est omise, la liste des colonnes sera par défaut la liste de l'ensemble des colonnes de la table dans l'ordre de la création de la table. Si une liste de colonnes est spécifiée, les colonnes ne figurant pas dans la liste auront la valeur NULL. INSERT INTO nom_table (nom_col1, nom_col2,...) SELECT... Il est possible d'insérer dans une table des lignes provenant d'une autre table. Le SELECT peut contenir n'importe quelle clause sauf un ORDER BY qui impliquerait un classement des lignes contraire à l'esprit du relationnel. DELETE Supprime un ou plusieurs éléments dans une relation. Jérôme DESMOULINS Page 3 / 8

DELETE [ <element > ] FROM < nom_de_relation > [WHERE... ] Jointure SELECT * FROM table_name1, tablename2 WHERE table_name1.id = table_name2.id; Union - R1 U R2 SELECT * FROM t1 UNION SELECT * FROM t2; Différence - R1 / R2 SELECT * FROM R1 WHERE not exists (SELECT * FROM R2 WHERE R2.C = R1.A and R2.D = R1.B ) Requète imbriquées Requête imbriquées - IN / NOT IN SELECT col_name FROM table_name WHERE col_name IN ('XXX1', 'XXX2'); Requêtes imbriquées - ALL Compare chacune des valeurs de l'ensemble à une valeur particulière et retourne "VRAI" si la comparaison est évaluée pour chacun des éléments. Les comparateurs sont: <, <=, >, >=, =,!= SELECT Nom FROM PERSONNEL WHERE Salaire => ALL (SELECT Salaire FROM PERSONNEL ); Requête imbriquées - ANY Compare chacune des valeurs de l'ensemble à une valeur particulière et retourne "VRAI" si la comparaison est évaluée à "VRAI" pour au moins un des éléments. Les comparateurs sont: <, <=, >, >=, =,!= SELECT Nom FROM PERSONNEL WHERE Nom = ANY (SELECT Nom FROM ABONNE ); Jérôme DESMOULINS Page 4 / 8

Requête imbriquées - EXISTS Retourne "VRAI" si une requête imbriquée retourne au moins une ligne. SELECT NumAbo FROM ABONNE WHERE NOT EXISTS (PRET); Prédicats Prédicat BETWEEN Teste l'appartenance d'une valeur à un intervalle. Ex : Nom et prénom des salairés qui gagne entre 10000 et 12000 f. SELECT Nom, Prenom FROM PERSONNEL WHERE Salaire BETWEEN 10000 and 12000; Prédicat LIKE Permet de faire une recherche approximative. Ex : Nom des abonnés qui habitent en Isère. SELECT Nom FROM ABONNE WHERE CodeP LIKE '38---' OR Ville LIKE '%ISERE%' Prédicat IS NULL Permet de tester si un champ a été affecté. Ex : Liste des abonnés qui n'ont pas le téléphone (ou qui sont sur liste rouge). SELECT Nom FROM ABONNE WHERE Telephone IS NULL Clauses Clause GROUP BY Application de fonction agégats à des collections d'enregistrements reliées sémentiquement. Ex : Nombre d'abonné dans chaque ville. SELECT Ville, count(*) FROM ABONNE GROUP BY Ville Clause HAVING Cette clause ne s'emploie qu'avec un "GROUP BY". Exprime une condition sur le groupe d'enregistrement associé à chaque valeur du groupage. Ex : Nombre de prets effectués avant le 22 mai par abonné. Jérôme DESMOULINS Page 5 / 8

SELECT NumAbo, count(*) FROM PRET GROUP BY NumAbo HAVING DatePret <= '22/05/00' Clause ORDER BY Permet l'ordonnancement du résultat avant l'affichage. Ex : Liste des salaires annuels classés par ordre décroissant. SELECT Salaire * 12 FROM PERSONNEL ORDER BY Salaire Clause DISTINCT Elimine les doublons avant d'utiliser une fonction agrégat. Ex : Liste de toutes les villes où habite au moins un abonné. SELECT DISTINCT Ville FROM ABONNE Fonctions agrégats Ces fonctions ne peuvent être utilisées que dans une clause SELECT ou dans une clause HAVING. On peut préfixer expr par les mots clés [DISTINCT ALL]. Agrégat - COUNT Dénombre les lignes sélectionnées. COUNT ( expr ) Ex : Nombre de salariés. SELECT COUNT( * ) FROM PERSONNEL Agrégat - SUM Additionne les valeurs de type numérique. SUM ( expr ) Ex : Somme des salaires des employé dont le prénom est "Pierre". SELECT SUM( Salaire ) FROM PERSONNEL WHERE Prenom='Pierre' Agrégat - MIN Retourne la valeur minimale d'une colonne de type caractère ou numérique. MIN ( expr ) Jérôme DESMOULINS Page 6 / 8

Ex : Abonné le plus ancien (plus petit numéro d'abonné). SELECT MIN( NumAbo ) FROM ABONNE Agrégat - MAX Retourne la valeur maximale d'une colonne de type caractère ou numérique. MAX ( expr ) Ex : Plus gros salaire parmis les employés Grenoblois. SELECT MAX( Salaire ) FROM PERSONNEL WHERE Adresse LIKE '%Grenoble%' Agrégat - AVG Calcule la moyenne d'une colonne de type numérique. AVG ( expr ) Ex : Moyenne des salaires des bibliothécaires. SELECT AVG( Salaire ) FROM PERSONNEL WHERE Fonction='Bibliothécaire' Commandes spécifiques Oracle Obtenir des informations Définition d'une table Obtenir la définition d'une table: desc ma_table; Tables importantes Liste des tables Liste de toutes les tables: Jérôme DESMOULINS Page 7 / 8

select * from all_tables; Liste de toutes les tables de l'utilisateur avec lequel on est connecté: select * from user_tables; alternative: select * from cat; Liste des objets Liste de tous les objets: select * from all_objects; Liste de tous les objets de l'utilisateur avec lequel on est connecté: select * from user_objects; alternative: select * from obj; Liste des privilèges Obtenir les privilèges système de l'utilisateur: select * from user_sys_privs; Obtenir les privilèges sur tous les objets accessibles: select * from user_tab_privs; Jérôme DESMOULINS Page 8 / 8