Académique Documents
Professionnel Documents
Culture Documents
Numériques :
1. bigint : Type de données entier codé sur 8 octets.
2. int : Nombre entier entre -231 et +231 - 1
3. smallint : Nombre entier entre -215 et 215 - 1
4. tinyint : Nombre entier positif entre 0 et 255.
5. float(n) : Numérique approché de n chiffres, n allant de 1 à 53.
6. real : Identique à float(24).
7. Money : Numérique au format monétaire.
8. decimal [(p[,d])] : Numérique exact de précision p (nombre de
chiffres total), avec d chiffres à droite de la virgule. p est compris
entre 1 et 38, 18 par défaut. d est compris entre 1 et p, 0 par
défaut.
Date :
1. Datetime : Permet de stocker une date et une heure sur 8 octets.
2. Smalldatetime : Permet de stocker une date et une heure sur 4
octets.
3. Date : Permet de stocker une date
4. Time : Permet de stocker une donnée positive de type heure
inférieure à 24h00
1
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
Options:
o NO ACTION : Elle permet d’obtenir le même comportement
que si nous n’avions rien précisé. C’est la valeur par défaut
o ON DELETE CASCADE : Précise que si une ligne contenant
la clé primaire référencée est supprimée, toute les lignes
contenant une clé étrangère référencé sur cette clé primaire
seront supprimées, sous réserve que la clé primaire et la ou
les clés étrangères possèdent la même valeur
d’enregistrement.
2
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
3
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
Fonctions d'agrégation :
Les fonctions d'agrégation effectuent un calcul sur un ensemble de
valeurs et retournent une valeur unique. À l'exception de COUNT, les
fonctions d'agrégation ignorent les valeurs NULL. Les fonctions
d'agrégation sont souvent utilisées avec la clause GROUP BY de
l'instruction SELECT.
Exemple de fonction d’agrégation : sum(), avg(), count(), min(),
max(),etc.
Exemple : la requête suivante donne le salaire moyen des employés.
select avg(salaire) as 'salaire moyen' from employe
La clause GROUP BY :
Regroupe un ensemble sélectionné de lignes en un ensemble de lignes
de synthèse selon les valeurs d'une ou plusieurs colonnes. Une ligne est
retournée pour chaque groupe. Cette commande doit toujours s’utiliser
après la commande WHERE. De plus, toutes les colonnes représentées
hors des calculs d'agrégation doivent figurer dans la clause GROUP BY.
Syntaxe Simple :
Exemple :
La requête suivante donne le nombre des employés pour chaque
département :
select count(*), id_dept from emp
group by id_dept
4
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
La clause Having :
Spécifie une condition de recherche pour un groupe ou pour une
agrégation. La clause HAVING est généralement utilisée avec la clause
GROUP BY.
Syntaxe : Having(condition de recherche). La condition spécifie la
condition de recherche que le groupe doit respecter.
Exemple : la requête suivante donne les départements (id_dept) ayant
un nombre d’employés supérieur à 10.
select count(*), id_dept from emp
group by id_dept having(COUNT(*)>10)
La clause distinct :
Le mot clé DISTINCT supprime les doublons de ligne dans les résultats
d'une instruction SELECT. Si DISTINCT n'est pas précisé, toutes les
lignes sont retournées, y compris les lignes dupliquées. Pour le mot clé
DISTINCT, les valeurs NULL sont considérées comme des doublons
entre elles. Lorsque DISTINCT est inclus dans une instruction SELECT,
une seule valeur NULL est retournée dans les résultats, quel que soit le
nombre de valeurs NULL rencontrées.
Exemple: select distinct id_dept from emp
5
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
Type de jointures :
1. Naturelle : s’il y a au moins une colonne qui porte le même nom
entre les tables.
2. équi-jointure : jointure basée sur l'égalité des valeurs des
colonnes.
3. Non equi-jointure : jointures basée sur un critère différent de
l'égalité.
4. Auto-jointure : joindre une table sur elle-même.
5. jointure interne : permet de retourner les enregistrements quand
la condition est vraie dans les tables. C’est l’une des jointures les
plus communes.
6. Jointure externe : Une jointure externe permet de retourner des
lignes répondant à la condition de jointure mais aussi toutes
celles qui ne vérifient pas cette condition.
Les jointures externes peuvent être des jointures externes
gauches, droites ou complètes. Lorsqu'elles sont spécifiées dans
la clause FROM, les jointures externes sont spécifiées à l'aide
d'un des ensembles de mots clés suivants :
• LEFT JOIN ou LEFT OUTER JOIN
Jointure externe pour retourner tous les enregistrements de la
table de gauche (LEFT = gauche) même si la condition n’est pas
vérifié dans l’autre table.
• RIGHT JOIN ou RIGHT OUTER JOIN
Jointure externe pour retourner tous les enregistrements de la
table de droite (RIGHT = droite) même si la condition n’est pas
vérifié dans l’autre table.
• FULL JOIN ou FULL OUTER JOIN
Une jointure externe complète renvoie toutes les lignes des tables
de gauche et de droite. Chaque fois qu'une ligne n'a pas de
correspondance dans une autre table, les colonnes de la liste de
sélection de l'autre table comportent des valeurs NULL. Lorsqu'il
existe une correspondance entre les tables, la ligne de l'ensemble
de résultats tout entière contient des valeurs de données des
tables de base.
• La syntaxe de la jointure externe est la suivante :
SELECT ...
FROM <table gauche>
LEFT | RIGHT | FULL JOIN <table droite>
where condition
6
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
Exemples :
Une sous-requête est une requête qui est imbriquée dans une
instruction SELECT, INSERT, UPDATE ou DELETE, ou dans une autre
sous-requête. Une sous-requête peut être utilisée partout où une
expression est autorisée.
La requête SELECT d'une sous-requête se place toujours entre
parenthèses.
Il existe trois sous-requêtes de base :
• les sous-requêtes qui opèrent sur des listes, introduites par IN,
EXISTS, ou par un opérateur de comparaison modifié par ANY ou
ALL ;
• les sous-requêtes introduites par un opérateur de comparaison
non modifié (=, <, >) et qui doivent retourner une valeur unique ;
• Les sous-requêtes corrélées. La clause WHERE de la requête
interne fait référence à une des tables de la requête externe. Dans
ce cas, la sous-requête interne est exécutée pour chaque ligne
extraite par la requête externe.
7
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
Syntaxes:
Sous-requêtes avec IN
Les sous-requêtes introduites par le mot-clé in renvoient une liste
contenant zéro ou plusieurs valeurs.
L’opérateur UNION
L’opérateur UNION va nous permettre d’obtenir un ensemble de ligne
provenant de plusieurs requêtes différentes. Toutes les requêtes doivent
fournir le même nombre de colonnes avec les mêmes types de données
pour chaque colonne (correspondance deux à deux). les lignes
dupliquées ne sont retournées qu’une seule fois.
Syntaxe :
SELECT ... UNION SELECT ...
8
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
L’opérateur INTERSECT
Grace à cet opérateur, il va être possible d’identifier en une seule
requête, des lignes d’informations simultanément présentes dans deux
jeux de résultats distincts, mais de mêmes structures.
Syntaxe :
SELECT ... INTERSECT SELECT ...
L’opérateur Except
Il permet de localiser les lignes d’informations présentes dans un jeu de
résultats et qui ne le sont pas dans un autre.
Cette différence ne peut être réalisée qu’entre des jeux de résultats
possédant la même structure, c’est à dire le même nombre de colonnes,
définies dans le même ordre et sur les mêmes types de données pour les
deux jeux de résultats.
Syntaxe :
SELECT ... EXCEPT SELECT ...
Questions :
1. Donner tous les n-uplets de DEPT
2. Donner tous les n-uplets de EMP
3. Donner les noms et les salaires des employés
4. Donner les professions des employés (après élimination des
duplicats)
5. Donner les dates d'embauche des techniciens.
6. Faire le produit cartésien entre EMP et DEPT
7. Donner les noms des employés et les noms de leur département.
8. Donner les numéros des employés travaillant à BOSTON.
9. Donner les noms des directeurs des départements 1 et 3.
10. Donner les noms des employés travaillant dans un département
avec au moins un ingénieur.
11. Donner le salaire et le nom des employés gagnant plus qu'un (au
moins un) ingénieur.
12. Donner le salaire et le nom des employés gagnant plus que tous
les ingénieurs.
13. Donner les noms des employés et les noms de leurs directeurs.
14. Trouver les noms des employés ayant le même directeur que JIM
15. Donner le nom et la date d'embauche des employés embauchés
avant leur directeur; donner également le nom et la date
d'embauche de leur directeur.
16. Donner les départements qui n'ont pas d'employés
9
Département d’informatique
2éme année LMD 2014/2015
Base de données SQL & SQL server 2008
Sauvegarde et restauration :
//En cours de construction
10