Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours bases de données » Cours SQL

Cours langage SQL

Cours langage SQL
Participez au vote ☆☆☆☆☆★★★★★

Chapitre 1 Notes de cours

1.1 Introduction

1.1.1 Qu’est-ce qu’un SGBDR ?

Un SGBD (Système de Gestion de Bases de Données) est un logiciel qui stocke des données de façon organisées et cohérentes. Un SGBDR (Système de Gestion de Bases de Données Relationnelles) est le type particulier de SGBD qui fera l’objet de ce cours. Il vous sera décrit plus tard ce qui fait qu’une bases de données est relationnelle.

Les bases de données les plus répandues sont :

  • Oracle, qui est considéré comme un des SGBDR les plus performants.
  • Microsoft SQL Server, la mouture de microsoft, qui est intégré au framework .NET.
  • mySQL, un logiciel libre fonctionnant souvent de pair avec Apache et Php, et de ce fait très répandu dans la programmation web.
  • Access, incorporé à Microsoft Office. Il présente l’énorme avantage de mettre à disposition de l’utilisateur une interface graphique. En contrepartie il est mono-utilisateur et de faible capacité.

Les SGBDRs sont généralement des serveurs auxquels des clients se connectent, il doivent supporter plusieurs connections simultanées. Les clients dialoguent alors avec le serveur pour lire ou écrire des donnés dans la base.

1.1.2 SQL

Le SQL, Structured Query Language, est un langage Standard permettant à un client de communiquer des instructions à la base de données. Il se décline en quatre parties :

  • le DDL (Data definition language) comporte les instructions qui permettent de définir la façon dont les données sont représentées.
  • le DML (Data manipulation language) permet d’écrire dans la base et donc de modifier les données.
  • le DQL (Data query language) est la partie la plus complexe du SQL, elle permet de lire les données dans la base à l’aide de requêtes.
  • le DCL (Data control language), qui ne sera pas vu dans ce cours permet de gérer les droits d’accès aux données.

A cela s’ajoute des extensions procédurales du SQL (appelé PL/SQL en Oracle). Celui-ci permet d’écrire des scripts exécutés par le serveur de base de données.

1.1.3 Connexion à une base de données

Dans une base de données relationnelle, les données sont stockées dans des tables. Une table est un tableau à deux entrées. Nous allons nous connecter à une base de données pour observer les tables.

Oracle

Sous oracle, le client s’appelle SQL+, le compte utilisateur par défaut a pour login scott et password tiger.

La liste des tables s’affiche en utilisant l’instruction

SELECT TABLE_NAME FROM USER_TABLES

mySQL

La méthode la plus simple pour s’initier à mysql est d’utiliser un kit de easyphp, wamp, etc. Vous disposez dans ce cas d’une option vous permettant d’ouvrir une console mysql.

La liste des bases de données stockées dans le serveur s’obtient avec l’instruction show databases

Database

arbreGenealogique

banque

clients

geometrie

information_schema

livraisons

mysql

performance_schema

playlist

repertoire

secretariat

sys

On se connecte à l’une des bases de données avec l’instruction use nomdelabase

1.1.4 Consultation des tables

Une fois dans la base, on obtient la liste des tables avec l’instruction show tables

Tables_in_livraisons

DETAILLIVRAISON

FOURNISSEUR

LIVRAISON

PRODUIT

PROPOSER

On affiche la liste des colonnes d’une table avec l’instruction

desc PRODUIT

Field Type Null Key Default Extra

numprod int NO PRI NULL

nomprod varchar ( 6 4 ) YES NULL

Le contenu d’une table s’affiche avec l’instruction

SELECT ∗ FROM PRODUIT

numprod nomprod

1 Bocal de cornichons

2 Tube de dentifrice

3 Flacon de lotion anti−escarres

4 Dé odorant fra î cheur 96 heures

1.1.5 Organisation relationnelle des données

Nous utiliserons pour commencer les types suivants :

  • numérique entier : int
  • numérique à point fixe : number (Oracle seulement)
  • numérique à point flottant : real
  • chaîne de caractères : varchar(taille) ou varchar2(taille) (Oracle seulement).

Créer des tables

Voici un exemple de création de table :

CREATE TABLE CLIENT (

numcli int ,

nomcli varchar ( 3 2 ) ) ;

desc CLIENT ;

Field Type Null Key Default Extra

numcli int YES NULL

nomcli varchar ( 3 2 ) YES NULL

Ajouter une ligne dans une table

Voici un exemple d’insertion de données dans une table :

INSERT INTO CLIENT ( numcli , nomcli )

VALUES ( 1 , ’ Marcel ’ ) , ( 2 , ’Gégé ’ ) ;

SELECT ∗ FROM CLIENT ;

numcli nomcli

1 Marcel

2 Gégé

Attention, chaque commande SQL se termine par un point-virgule !

Suppression d’une table

Une table se supprime avec l’instruction DROP TABLE.

DROP TABLE CLIENT ;

1.2 Contraintes déclaratives

1.2.1 Valeurs par défaut

create tab le client

(

numcli int ,

nom varchar ( 2 5 6 ) de fau lt ’Moi ’ ,

prenom varchar ( 2 5 6 )

)

fait de ’Moi’ le nom par défaut.

1.2.2 Champs non renseignés

create tab le client

(

numcli int ,

nom varchar ( 2 5 6 ) NOT NULL,

prenom varchar ( 2 5 6 ) NOT NULL

)

force la saisie des champs nom et prénom.

1.2.3 Clé primaire

Une clé primaire est :

— toujours renseignée

— unique

On peut préciser PRIMARY KEY dans la création de table

create tab le client

(

numcli int PRIMARY KEY,

nom varchar ( 2 5 6 ) ,

prenom varchar ( 2 5 6 )

)

La colonne numcli est clé primaire, toute insertion ne respectant pas la contrainte de clé primaire sera refusée par le SGBD.

1.2.4 Clé étrangère

Dans le cas où l’on souhaite garder en mémoire des factures émises par des clients, la façon de faire est de créer une deuxième table contenant la liste des factures :

create tab le facture

(

numfact int PRIMARY KEY,

montantFacture int ,

numcli int REFERENCES CLIENT ( numCli )

) ;

Le champ numCli dans cette table est clé étrangère, ce qui signifie qu’une ligne ne pourra être insérée dans la table facture que si le numcli de cette ligne existe dans la colonne numcli de la table client.

La syntaxe est

REFERENCES <nomtable> (<nomcolonne >)

1.2.5 Syntaxe alternative

Il est possible de définir les contraintes après la création d’une table.

ALTER TABLE nomtable

ADD [CONSTRAINT nomcontrainte ] descriptioncontrainte ;

descriptioncontrainte d’une clé primaire :

PRIMARY KEY( colonne1 , . . . , colonnen )

descriptioncontrainte d’une clé étrangère :

FOREIGN KEY( colonne1 , . . . , colonnen )

REFERENCES tablereferencee ( colonne1 , . . . , colonnen )

Il est aussi possible de placer une descriptioncontrainte dans le CREATE TABLE. Par exemple,

create tab le facture

(

numfact int ,

montantFacture int ,

numcli int ,

PRIMARY KEY ( numfact ) ,

FOREIGN KEY nucli REFERENCES CLIENT ( numcli )

) ;

On remarque qu’il est possible de nommer une contrainte. C’est utile si on souhaite la supprimer :

ALTER TABLE nomtable DROP CONSTRAINT nomcontrainte ;

Pour lister les contraintes sous Oracle, on utilise la commande :

SELECT ∗ FROM USER_CONSTRAINTS ;

Sous mySQL :

SHOW TABLE STATUS ;

7

1.3 Introduction aux requêtes

1.3.1 Compléments sur SELECT

Il est possible d’utiliser SELECT pour n’afficher que certaines colonnes d’une table. Syntaxe :

SELECT <colonne_1 >, <colonne_2 >, . . . , <colonne_n>

FROM <table>

Cette instruction s’appelle une requête, elle affichera pour chaque ligne de la table les valeurs des colonnes colonne1 à colonnen. Il est possible de supprimer les lignes en double à l’aide du mot-clé DISTINCT. Par exemple :

SELECT DISTINCT <colonne_1 >, <colonne_2 >, . . . , <colonne_n>

FROM <table>

Pour trier les données, on utilise ORDER BY. Exemple :

SELECT <colonne_1 >, <colonne_2 >, . . . , <colonne_n>

FROM <table>

ORDER BY <colonne_1bis >, <colonne_2bis >, . . . , <colonne_nbis>

Cette instruction trie les données par colonne1bis croissants. En cas d’égalité, le tri est fait par colonne2bis croissants, etc. Pour trier par ordre décroissant, on ajoute DESC après le nom de la colonne choisie comme critère décroissant.

Par exemple :

SELECT <colonne_1 >, <colonne_2 >, . . . , <colonne_n>

FROM <table>

ORDER BY <colonne_1bis> DESC, <colonne_2bis >, . . . , <colonne_nbis>

1.3.2 Instruction WHERE

Cette instruction permet de ne sélectionner que certaines lignes de la table. Par exemple la requête va afficher le nom du produit numéro 1 :

SELECT nomprod

FROM produit

WHERE numprod = 1

La syntaxe générale est

SELECT <colonne_1 >, <colonne_2 >, . . . , <colonne_n>

FROM <table>

WHERE <condition> condition sera évaluée pour chaque ligne de la table, et seules celles qui véfieront cette condition feront partie du résultat de la requête.

1.3.3 Conditions

Comparaison

Les conditions peuvent être des relations d’égalité (=), de différence (<>), d’inégalité (<, >, >= ou <=) sur des colonnes :

numero_client = 2

nom_client = ’ Marcel ’

prenom_client <> ’ Ginette ’

salary < 230

taxes >= 23000

Négation

La négation d’une condition s’obtient à l’aide de NOT. Par exemple, il est possible de ré-ecrire les conditions ci-avant :

NOT ( numero_client <> 2 )

NOT ( nom_client <> ’ Marcel ’ )

NOT ( prenom_client = ’ Ginette ’ )

NOT ( salary >= 2 3 0 )

NOT ( taxes < 2 3 0 0 0 )

Connecteurs logiques

De même, vous avez à votre disposition tous les connecteurs logiques binaires : AND, OR. Ainsi, les deux conditions

suivantes sont les mêmes :

NOT( ( nom = ’ Raymond ’ ) AND ( prenom <> ’ Huguette ’ ) )

( nom <> ’ Raymond ’ ) OR ( prenom = ’ Huguette ’ )

NULLité

Un champ non renseigné a la valeur NULL, dans une comparaison, NULL n’est jamais égal à quelque valeur qu’il

soit ! La condition suivante est toujours fausse :

NULL = NULL;

La requête suivante ne renvoie aucune ligne :

INSERT INTO MP3 ( numMp3 ) VALUES ( 3 ) ;

SELECT ∗

FROM MP3

WHERE nomMp3 = NULL;

Pour tester la nullité d’un champ, on utilise IS NULL, par exemple :

SELECT ∗

FROM MP3

WHERE nomMp3 IS NULL;

La non-nullité se teste de deux façons :

WHERE NOT ( nomMp3 IS NULL) ;

ou encore

SELECT ∗

FROM MP3

WHERE nomMp3 IS NOT NULL;

numMp3 nomMp3

1 Get Lucky

2 Locked Down

Encadrement

Une valeur numérique peut être encadrée à l’aide de l’opérateur BETWEEN, par exemple les deux conditions suivantes

sont équivalentes :

SALAIRE BETWEEN 1000 AND 5000

( SALAIRE >= 1 0 0 0 ) AND ( SALAIRE <= 5 0 0 0 )

Decouvrir ces documents

  • Cours de Fortran 90/95 et C

    Cours de Fortran 90/95 et C

  • Support d’introduction au langage PL SQL

    Support d’introduction au langage PL SQL

  • Cours ebook : langage C un premier langage de Jacques le maitre

    Cours ebook : langage C un premier langage de Jacques le maitre

  • Cours langage procédural PL SQL

    Cours langage procédural PL SQL

  • Formation complet langage SQL Server

    Formation complet langage SQL Server

  • Cours complet de langage C

    Cours complet de langage C

  • Structures de données dynamiques dans le langage langage C++

    Structures de données dynamiques dans le langage langage C++

  • Cours du langage procédural PL/SQL

    Cours du langage procédural PL/SQL

Articles connexes

  • Cours de soutien scolaire bénévole - Informations et conseils
  • Cours particuliers : une nouvelle école informelle ?
  • Exercice Langage SQL : Une Médiathèque (Suite...)
  • Quel logiciel de gestion du planning de cours choisir ?
  • Placement d'Or : Règles et astuces pour réussir son investissement
  • Comment créer et convertir vos vidéos pour vos cours en ligne ?
  • Exercice Access 2003 : gestion des cours avec requêtes
  • Comment les cours préparatoires sont-ils essentiels à la réussite en architecture ?
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02