Introduction à SQL Server et installation
Introduction à SQL Server et installation
SQL Server
I. Présentation du SGBDR SQL Server
1. Définition : SQL Server est un système de gestion de base de données client/serveur
qui utilise transact-SQL pour transmettre des requêtes entre un client et SQL Server.
SQL Server et beaucoup plus robuste et évolutif d’un SGBD bureau tel que Access.
SQL Server peut être exécuté comme un SGBD bureau, mais il est plus utilisé comme
un SGBD Serveur.
1. Editions du SQL Server: SQL Server 2008 est disponible en plusieurs éditions :
- Enterprise Edition : L'édition Entreprise est la plus complète, elle est disponible
pour les versions 32 et 64 bits.
- Standard Edition : Cette édition correspond à la demande de la plupart des
entreprises. Elle offre une facilité d'utilisation et de gestion pour l'exécution des
applications.
- Workgroup Edition
- Developer Edition
- WebEdition
- Compact Edition
- Express Edition : C’est une version gratuite, supporte un petit volume de données,
peut être installée sur toutes les éditions de Windows. C’est la version que nous
allons utiliser pendant le semestre.
- Edition d’évaluation pour 180 jours
1
[Link]
INSFP Ain Oulmene
Module: SQL Server
2. Configuration requise:
Nous allons utiliser SQL Server 2008 Express with Advanced Services.
3. Installation:
Depuis SQL Server 2005, plusieurs outils d’administration de SQL Server 2000 ont été
intégrés dans SQL Server Management Studio, d’autres ont été intégrés dans le gestionnaire
de configuration SQL Server.
2
[Link]
INSFP Ain Oulmene
Module: SQL Server
3
[Link]
INSFP Ain Oulmene
Module: SQL Server
1. Types des bases de données SQL Server : SQL Server héberge deux types de
base de données : base de données système et base de données utilisateurs.
1.1. Bases de données
système : Elles contiennent des informations nécessaires au bon fonctionnement de
SQL Server. Lors de l’installation de SQL Server, le programme d’installation crée
plusieurs bases de données système :
- master : contrôle les bases de données utilisateurs et le fonctionnement global de
SQL Server.
- model : utilisée pour la création de nouvelle base de données utilisateur.
- tempdb : offre une zone de stockage pour les tables temporaires et les autres
besoins de stockage temporaire.
- msdb : offre une zone de stockage pour les informations de programmation et
l’historique des travaux
1.2. Bases de données
utilisateur : Selon les options choisies, le programme d’installation peut créer les
bases de données utilisateurs suivantes :
- Pubs : propose un exemple de base de données comme outil d’apprentissage.
- Northwind : propose un exemple de base de données comme outil d’apprentissage
avec un grand nombre de données.
4
[Link]
INSFP Ain Oulmene
Module: SQL Server
On peut faire référence aux objets SQL Server de plusieurs manières : on peut spécifier le
nom complet de l’objet ou ne spécifier qu’une partie du nom de l’objet et laisser SQL
Server déterminer le reste du nom à partir de votre connexion de travail.
[Link]é[Link]é[Link]
3.2. Noms incomplets : Lorsqu’on fait référence à un objet, on n’est pas toujours obligé
de spécifier le serveur, la base de données et le propriétaire. Lorsqu’on crée un
objet, si différentes parties du nom ne sont pas spécifiées, SQL Server utilise les
valeurs par défaut décrites ci-dessous.
- Le serveur est défini par défaut sur le serveur local.
- La base de données en cours est utilisée par défaut.
- Le nom d’utilisateur est employé comme propriétaire par défaut dans la base de
données, associée à l’ID de connexion de la connexion en cours.
4. Tables systèmes
Les tables système stockent des informations (métadonnées) relatives au système et aux
objets dans les bases de données. Les métadonnées sont des informations relatives aux
données. Chaque base de données (y compris master) contient un ensemble de tables
système qui stockent les métadonnées. Cet ensemble de tables système constitue le
5
[Link]
INSFP Ain Oulmene
Module: SQL Server
Lorsque vous rédigez des applications conçues pour extraire des informations à partir des
tables système, vous devez utiliser les procédures stockées système, les fonctions système
ou les vue de schéma d’informations fournies par le système.
Vous pouvez interroger une table système comme toute autre table de base de données pour
extraire des informations relatives au système. Toutefois, il est déconseillé de modifier
directement les tables système. Cela risque d’empêcher SQL Server de procéder à une
récupération correcte en cas de panne du système.
L’utilisateur est alors autorisé à accéder aux bases de données sur le serveur. Pour cela, des
autorisations spécifiques aux bases de données sont affectées aux comptes d’utilisateur et aux
rôles. Les autorisations contrôlent les activités que l’utilisateur est autorisé à effectuer dans une
base de données SQL Server.
7
[Link]
INSFP Ain Oulmene
Module: SQL Server
8
[Link]
INSFP Ain Oulmene
Module: SQL Server
- Print : est une instruction permettant de générer une ligne en sortie de procédure.
- Exec[ute] : est utilisée pour exécuter une fonction ou une procédure stockée.
3.2. Commentaires
--Commentaire :
en ligne
/* Commentaire en
Bloc*/
9
[Link]
INSFP Ain Oulmene
Module: SQL Server
3. Création des bases de données : La gestion d’une base de données ou d’un objet
d’une base de données SQL Server se fait soit en utilisant l’inspecteur d’objet de
Microsoft SQL Server Management Studio, soit du code Transact SQL.
10
[Link]
INSFP Ain Oulmene
Module: SQL Server
- Pour créer une BD il suffit de faite un clic droit sur « databases » new database.
- Ou bien en utilisant un code SQL : Pour créer une base de données, on doit définir
les éléments suivant : son nom, sa taille et les fichiers utilisés pour la stocker
Exemple :
create database exemple
on
primary (name = donneesExemple,
filename = 'D:\tp1\[Link]',
size = 10MB,
maxsize = 15MB,
filegrowth = 20%)
Log On
(name = nournExemple,
filename = 'D:\tp1\[Link]',
size = 3MB,
maxsize = 5MB,
filegrowth = 1MB)
11
[Link]
INSFP Ain Oulmene
Module: SQL Server
- cliquer sur la BD
- Faire un clic droit sur tables new table saisir les attributs de la table ainsi que
leurs types
- Faire un clic droit sur l’attribut clé et mettre « set primary key »
- Enfin, enregistrer la table.
1.4. Editer les données d’une table : pour ajouter, supprimer ou modifier une
donnée :
Le mot-clé AS permet de créer des colonnes calculées à partir des valeurs d’autres colonnes.
Exemple :
Syntaxe : Pour ajouter une colonne : Alter table nomTable add colonne type
Pour supprimer une colonne : Alter table nomTable drop att1, att2...
13
[Link]
INSFP Ain Oulmene
Module: SQL Server
1. Introduction : Les contraintes d’intégrité permettent d’assurer des contrôles sur les
données saisies dans la base de données. Il existe différents catégories : contraintes
d’entités, contraintes de domaine et contrainte d’intégrité référentielle.
2. Contraintes d’entités : permet de définir une ligne comme une entité unique.
2.2. Unique : permet de garantir qu’aucune valeur en double n’est entrée dans une
colonne spécifique.
14
[Link]
INSFP Ain Oulmene
Module: SQL Server
Exemple : create table employe ( numE int identity (10,1) primary key,
NSS int
)
Go
3.1. Check : permet de définir une condition que la valeur doit respecter avant d’être
enregistrée.
3.2. Default : permet de définir une valeur par défaut pour une colonne.
3.3. [not]null : permet de définir la possibilité pour une colonne d’accepter une valeur
null.
create table apprenti ( num int primary key,
nom char (30) not null
Exemple :
)
Go
4. Contrainte d’intégrité référentielle : elle est fondée sur les relations entre les
clés étrangères et les clés primaires. Elle préserve les relations définies entre les tables
lorsque des valeurs, de clé étrangère, sont entrés et aussi lorsque des valeurs, de clé
primaire, sont modifiés ou supprimées.
15
[Link]
INSFP Ain Oulmene
Module: SQL Server
La contrainte Foreign key appliqué à une colonne, permet de vérifier la valeur doit
exister dans la colonne référencée.
Note :
Questions :
16
[Link]
INSFP Ain Oulmene
Module: SQL Server
X. Manipulation de données
Exemple :
Update employer set salaire = salaire+1000
TP :
17
[Link]
INSFP Ain Oulmene
Module: SQL Server
- L’hôtel offre une remise de 1000DA pour les chambres doubles, programmer cette
modification.
- Supprimer les chambres non réservées.
1. Introduction: L’extraction de données se base sur une requête. Une requête est une
demande de données stockées dans SQL Server
Exemple : select *
From apprenti
where dateN > '01/01/1990' /* afficher la liste des apprenté nés
aprés le 01/01/1990*/
La condition de recherche est une combinaison d’une ou plusieurs opérateurs logiques. En plus
des opérateurs de comparaison standard, on peut aussi utiliser les suivants :
Expression [not] between valeur1 and valeur2
Expression is [not] null
Expression [not] like chaine /* l’opérateur like permet
d’effectuer des comparaisons sur des chaînes de caractères*/
18
[Link]
INSFP Ain Oulmene
Module: SQL Server
4. La clause Order By : La clause order by spécifie l’ordre de tri affecté aux colonnes
renvoyées dans une instruction Select
Exemple : select *
From apprenti
order by dateN desc /* Afficher la liste des apprentis par ordre
décroissant par date de naissance. On peut aussi utiliser
l’argument Asc pour un ordre de tri croissant*/
Le mot-clé Distinct permet d’éliminer les doublant dans le jeu de résultat d’une instruction
Select.
select distinct typeP
Exemple : From produit /* Afficher la liste des différents types des
produits*/
Le mot-clé Top permet de limiter le nombre de lignes renvoyées dans le jeu de résultat d’une
instruction Select.
select top 5 *
Exemple : From apprenti /* Afficher la liste des cinq premiers apprentis*/
Questions :
19
[Link]
INSFP Ain Oulmene
Module: SQL Server
2. Jointure interne : Elle retourne les enregistrements uniquement quand les deux
tables respectent les conditions de la jointure.
3. Jointure externe : Elle retourne tous les enregistrements d’au moins une des deux
tables mentionnées dans la clause From et renvoient les lignes de l’autre table qui
répondent à la condition mentionnée par la clause On.
20
[Link]
INSFP Ain Oulmene
Module: SQL Server
3.1. Jointure externe gauche : introduite par la clause left outer join. Elle retourne
tous les enregistrements qui respectent la condition ainsi que tous les enregistrements de
table à gauche du form qui ne respectent pas la condition ;
3.2. Jointure externe droite : introduite par la clause right outer join. Elle retourne
tous les enregistrements qui respectent la condition ainsi que tous les enregistrements de
table à droite du form qui ne respectent pas la condition.
3.3. Jointure externe complète : introduite par la clause full outer join. Elle retourne
tous les enregistrements qui respectent la condition, et dans les cas où la condition ne
peut être satisfaite de ces lignes met la valeur NULL dans les champs inhabités.
4. Jointure croisée: est un cas spécial de jointure qui permet d’obtenir le produit
cartésien des tables impliquées dans la jointure. Elle est introduite par la clause Cross
Join.
Questions :
21
[Link]
INSFP Ain Oulmene
Module: SQL Server
1. Fonctions d’agrégation:
Min() : renvoie la valeur minimale d’une colonne ou d’une expression.
Max() : renvoie la valeur maximale d’une colonne ou d’une expression.
Sum() : renvoie la somme d’une colonne ou d’une expression de type numérique.
Avg() : renvoie la moyenne d’une colonne ou d’une expression de type numérique.
Count() : retourne le nombre d’éléments d’une colonne ou d’une expression.
Use pubs
Exemple: select type, min(price), max(price), avg(price)
from titles
group by type
having max(price)>1000
go
Exercice :
23
[Link]
INSFP Ain Oulmene
Module: SQL Server
4) Donner les noms, fonctions et salaires des employés classés par salaire en ordre
décroissant
5) Donner la somme des salaires par fonction
6) Parmi les agents, quel est le nom et le salaire de l'employé le moins payé
7) Donner le nom du chef de l’employé ‘Boutayeb’
8) Donner les noms, fonctions et salaires des employés exerçant la même fonction que
'Nasri' (triés par ordre croissant des salaires)
9) Donner les noms et fonctions des employés ainsi que le nom du service où ils
travaillent
10) Pour les employés qui ont des enfants, donner leurs noms et celui de leurs enfants
et leurs âges
11) Donner les noms de tous les employés et pour ceux qui ont des enfants donner les
noms de ces derniers
12) Donner les noms des 5 employés les plus payés ainsi que leurs fonctions et salaires
1. Introduction : Une sous-requête est une requête Select qui est imbriquée dans une
autre requête.
select nom ‘ ‘ + prenom as [Nom Complet]
Exemple: from sectionInf
where moyenne > (select AVG (moyenne)
from sectionInf)
Order by moyenne desc
/* Aficher par ordre décroissant de moyenne, les noms des étudiants
qui ont eu une note superieure à la moyenne de la section */
24
[Link]
INSFP Ain Oulmene
Module: SQL Server
3.2. Les mots clés any et all : Le mot-clé all spécifie tous les éléments retournés
tandis que le mot-clé any spécifie l’un d’entre eux.
3.3. Les mots clés existes : Le mot-clé existes retourne une valeur booléenne qui est
vraie lorsque la sous-requête renvoie des lignes et fausse dans le cas contraire.
25
[Link]
INSFP Ain Oulmene
Module: SQL Server
Exemple:
select nom, fonction
from employe
union all
select nom, 'stagiaire'
from stagiaire
/* Afficher la liste employé ainsi que leurs fonctions et la liste
des stagiaires */
26
[Link]