01 L'Ordre SELECT Élémentaire - Formation

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 17

COURS

Base de donnée

Pr H.Moutachaouik
ENSAM CASABLANCA
[email protected]
1-1

Base de donnée
Une base de donnée:
• est une collection d’informations
organisées afin d’être facilement
consultables, gérables et mises à jour.

1-2

<Course name> <Lesson number>-1


Plan
SELECT [DISTINCT] {*, column [alias], ...}
FROM table
[WHERE condition(s)]
[ORDER BY {column, expr, alias} [ASC|DESC]];

01)L'ordre • Select,from
SELECT • expression arithmétique
élémentaire • Problème de null dans le calcul
• Alias
• Concaténation || ou concat
• Doublons (distinct)
2) Sélection et • Where
Tri des Lignes • Chaînes de Caractères et Dates
• Opérateurs de Comparaison
• Recherche des valeurs NULL
• Opérateurs Logiques (AND,OR, NOT)
• Règles de Priorité (AND,OR, NOT, …………)
• ORDER BY
1-3

Plan
SELECT table1.column, table2.column
FROM table1, table2
WHERE table1.column1 = table2.column2;

03) Fonctions • Caractère


Mono-Ligne  Lower, uppe, initcap
 Concat,substr,length,instr,lpad
• Numérique : round, mod
• Date
• Conversion: convert
• If, case
• Imbrication des Fonctions
04) Afficher des • Equijointure
Données • Jointure externe
Issues de • Non-équijointure
Plusieurs Tables • Autojointure
(jointure)

1-4

<Course name> <Lesson number>-2


Plan
SELECT column, group_function
FROM table
[WHERE condition]
[GROUP BY group_by_expression]
[HAVING group_condition]
[ORDER BY column];

05) Fonctions de • AVG, COUNT, MAX, MIN, SUM


Groupe && • Divisez une table en groupes de lignes avec GROUP BY
Groupement

06) Opérateurs • Union / Union All


Ensemblistes • Intersect
• Minus

1-5

Plan
SELECT select_list
FROM table
WHERE expr operator
(SELECT select_list
FROM table);

07) Sous- • Sous-interrogation mono-ligne


Interrogations • Sous-interrogation multi-ligne
• Sous-interrogation multi-colonne
• Utilisation d'une Sous-Interrogation dans la Clause FROM

08) Manipulation • Décrire chaque ordre du LMD


des Données • Insérer des lignes dans une table
• Mettre à jour des lignes dans une table
• Supprimer des lignes d'une table

1-6

<Course name> <Lesson number>-3


Plan
CREATE TABLE [schema.]table
(column datatype [DEFAULT expr],...

09) Création et • CREATE TABLE


Gestion de • Création d'une Table au Moyen d'une Sous-Interrogation
Tables • ALTER TABLE (ADD, MODIFY, CHANGE)
• DROP TABLE
10) Contraintes • NOT NULL
et Vues • UNIQUE
• PRIMARY KEY
• FOREIGN KEY
• CREATE VIEW

Synthèse • Synthèse de la formation

1-7

Langage SQL

1-8

<Course name> <Lesson number>-4


1
L'Ordre SELECT
Elémentaire

Objectifs

A la fin de ce chapitre, vous saurez :


• Enumérer toutes les possibilités de
l’ordre SQL SELECT
• Exécuter un ordre SELECT élémentaire

1-10

<Course name> <Lesson number>-5


Les Possibilités de l'Ordre SQL
SELECT
Sélection Projection

Table 1 Table 1
Jointure

Table 1 Table 2
1-11

Ordre SELECT Elémentaire

SELECT [DISTINCT] {*, column [alias],...}


FROM table;

• SELECT indique quelles colonnes


rapporter
• FROM indique dans quelle table
rechercher

1-12

<Course name> <Lesson number>-6


Ecriture des Ordres SQL
• Les ordres SQL peuvent être écrits
indifféremment en majuscules et/ou
minuscules.
• Les ordres SQL peuvent être écrits sur
plusieurs lignes.
• Les mots-clés ne doivent pas être abrégés ni
scindés sur deux lignes différentes.
• Les tabulations et indentations permettent
une meilleure lisibilité.

1-13

Sélection de Toutes
les Colonnes
SQL> SELECT *
2 FROM dept;

DEPTNO DNAME LOC


--------- -------------- -------------
10 ACCOUNTING NEW YORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON

1-14

<Course name> <Lesson number>-7


Sélection d’Une ou Plusieurs
Colonnes Spécifiques
SQL> SELECT deptno, loc
2 FROM dept;

DEPTNO LOC
--------- -------------
10 NEW YORK
20 DALLAS
30 CHICAGO
40 BOSTON

1-15

Valeurs par Défaut des


En-têtes de Colonne

• Justification par défaut


– A gauche : date et données alphanumériques
– A droite : données numériques
• Affichage par défaut : en majuscules

1-16

<Course name> <Lesson number>-8


Expressions Arithmétiques
Possibilité de créer des expressions avec
des données de type NUMBER et DATE au
moyen d’opérateurs arithmétiques

Opérateur Description

+ Addition

- Soustraction

* Multiplication

/ Division

1-17

Utilisation des Opérateurs


Arithmétiques
SQL> SELECT ename, sal, sal+300
2 FROM emp;

ENAME SAL SAL+300


---------- --------- ---------
KING 5000 5300
BLAKE 2850 3150
CLARK 2450 2750
JONES 2975 3275
MARTIN 1250 1550
ALLEN 1600 1900
...
14 rows selected.

1-18

<Course name> <Lesson number>-9


Priorité des Opérateurs
_
* / +
• La multiplication et la division ont
priorité sur l’addition et la soustraction.
• A niveau de priorité identique, les
opérateurs sont évalués de gauche à
droite.
• Les parenthèses forcent la priorité
d’évaluation et permettent de clarifier
les ordres.
1-19

Priorité des Opérateurs

SQL> SELECT ename, sal, 12*sal+100


2 FROM emp;

ENAME SAL 12*SAL+100


---------- --------- ----------
KING 5000 60100
BLAKE 2850 34300
CLARK 2450 29500
JONES 2975 35800
MARTIN 1250 15100
ALLEN 1600 19300
...
14 rows selected.

1-20

<Course name> <Lesson number>-10


Utilisation des Parenthèses

SQL> SELECT ename, sal, 12*(sal+100)


2 FROM emp;

ENAME SAL 12*(SAL+100)


---------- --------- -----------
KING 5000 61200
BLAKE 2850 35400
CLARK 2450 30600
JONES 2975 36900
MARTIN 1250 16200
...
14 rows selected.

1-21

La Valeur NULL
• NULL représente une valeur non
disponible, non affectée ou inconnue,
• La valeur NULL est différente du zéro ou
de l’espace.

SQL> SELECT ename, job, comm


2 FROM emp;

ENAME JOB COMM


---------- --------- ---------
KING PRESIDENT
BLAKE MANAGER
...
TURNER SALESMAN 0
...
14 rows selected.
1-22

<Course name> <Lesson number>-11


Valeurs NULL dans les
Expressions Arithmétiques
Les expressions arithmétiques
comportant une valeur NULL sont
évaluées à NULL
SQL> select ename , 12*sal+comm
2 from emp
3 WHERE ename='KING';

ENAME 12*SAL+COMM
---------- -----------
KING

1-23

L’Alias de Colonne
• Renomme un en-tête de colonne
• Est utile dans les calculs
• Suit immédiatement le nom de la
colonne ; le mot-clé AS placé entre le
nom et l’alias est optionnel
• Doit obligatoirement être inclus entre
guillemets s’il contient des espaces ou
des caractères spéciaux

1-24

<Course name> <Lesson number>-12


Utilisation des Alias de Colonnes

SQL> SELECT ename AS name, sal salary


2 FROM emp;

NAME SALARY
------------- ---------
...

SQL> SELECT ename "Name",


2 sal*12 "Annual Salary"
3 FROM emp;

Name Annual Salary


------------- -------------
...

1-25

L’Opérateur de Concaténation

• Concatène des colonnes ou chaînes de


caractères avec d’autres colonnes
• Est représenté par deux barres
verticales (||) ou concat
• La colonne résultante est une
expression caractère

1-26

<Course name> <Lesson number>-13


Utilisation de l’Opérateur
de Concaténation
SQL> SELECT ename||job AS "Employees"
2 FROM emp;

Employees
-------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN
...
14 rows selected.

1-27

Utilisation de l’Opérateur
de Concaténation
SQL> SELECT concat(ename,job) AS "Employees"
2 FROM emp;

Employees
-------------------
KINGPRESIDENT
BLAKEMANAGER
CLARKMANAGER
JONESMANAGER
MARTINSALESMAN
ALLENSALESMAN
...
14 rows selected.

1-28

<Course name> <Lesson number>-14


Littéral

• Un littéral est un caractère, une


expression, ou un nombre inclus dans
la liste SELECT.
• Chaque littéral apparaît sur chaque
ligne ramenée.

1-29

Utilisation des Chaînes


de Caractères Littérales
SQL> SELECT ename ||' '||'is a'||' '||job
2 AS "Employee Details"
3 FROM emp;

Employee Details
-------------------------
KING is a PRESIDENT
BLAKE is a MANAGER
CLARK is a MANAGER
JONES is a MANAGER
MARTIN is a SALESMAN
...
14 rows selected.

1-30

<Course name> <Lesson number>-15


Doublons
Par défaut, le résultat d’une requête
affiche toutes les lignes, y compris les
doublons.
SQL> SELECT deptno
2 FROM emp;

DEPTNO
---------
10
30
10
20
...
14 rows selected.

1-31

Elimination des Doublons


Pour éliminer les doublons il faut ajouter
le mot-clé DISTINCT à la clause SELECT.

SQL> SELECT DISTINCT deptno


2 FROM emp;

DEPTNO
---------
10
20
30

1-32

<Course name> <Lesson number>-16


Contrôle des acquis

Base de données exemple


EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
DEPT (DEPTNO, DNAME, LOC)

1-33

Contrôle des acquis


Exprimer en SQL les requêtes suivantes.
a. Sélectionnez toutes les données de la table DEPT .
b. Créez une requête pour afficher le nom , le poste , la
date d'embauche et le matricule de chaque employé,
en plaçant le matricule en premier.
c. Créez une requête pour afficher les différents types
de poste existant dans la table EMP.
d. Nom , salaire, commission, salaire+commission de
tous les employés.
Base de données exemple
EMP (EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO)
DEPT (DEPTNO, DNAME, LOC)

1-34

<Course name> <Lesson number>-17

Vous aimerez peut-être aussi