COURS MS SQL SERVEUR
FORMATEUR : ABOURI CAYROL
Cours de Microsoft SQL Server I
Chapitre 1 : INTRODUCTION AU SGBDR MS SQL SERVER
1. Quel SGBDR choisir ?
Essayez-vous de décider si MySQL ou SQL Server est le bon système de gestion de base de données
(SGBD) pour votre entreprise ? Vous êtes arrivé au bon endroit. Dans cet article, nous aborderons deux
des SGBD les plus populaires : MySQL et SQL Server. Nous expliquerons leur fonctionnement et
explorerons les différences entre eux, afin que vous puissiez choisir en toute confiance la meilleure option
pour vos besoins centrés sur les données.
MySQL Server est un système de gestion de base de données relationnelle (RDBMS) open source basé
sur le langage de requête structuré (SQL). Il a été conçu pour la vitesse et l'évolutivité et prend en charge
une grande variété d'applications, des applications Web aux entrepôts de données.
D'autre part, SQL Server est un produit Microsoft conçu pour s'adapter au système d'exploitation
Windows. Il est légèrement plus robuste que MySQL en termes de fonctionnalités, mais il peut aussi être
plus cher en raison des frais de licence. De plus, comme il est conçu pour Windows, vous n'obtiendrez pas
le même niveau de support qu'avec MySQL.
1.1. Qu'est-ce que MySQL ?
MySQL est une source ouverte Système de gestion de base de données relationnelle, propriété d'Oracle
Corporation. Il est sous licence GPL (General Public License) ou une licence commerciale. MySQL est
disponible gratuitement et créé en 1995 par un programmeur suédois, Michael « Monty » Widenius. Il
fonctionne sur de nombreuses plates-formes différentes et constitue la base de données par défaut de
nombreuses applications Web populaires, telles que WordPress et Joomla.
MySQL est écrit en C et C++, il utilise le langage SQL (Structured Query Language) pour interagir avec
les bases de données et peut gérer de gros volumes de données. Il est suffisamment polyvalent pour être
utilisé avec PHP, Java, et les langages de programmation Python, entre autres. De plus, MySQL offre un
contrôle puissant sur la sécurité des données en permettant aux utilisateurs d'accéder aux autorisations au
niveau de la table, une fonction importante dans les environnements d'entreprise où plusieurs utilisateurs
ont besoin d'accéder aux mêmes données.
1
Cours de Microsoft SQL Server I
Maintenant que vous en savez un peu plus sur MySQL, regardons SQL Server.
1.2. Qu'est-ce que SQL Server ?
SQL Server est un système de gestion de base de données relationnelle (RDBMS) développé par
Microsoft, sous licence propriétaire. Il est utilisé par les organisations pour stocker des informations et
manipuler des données via des requêtes. Vous pouvez utiliser un serveur SQL pour ajouter, supprimer ou
mettre à jour des enregistrements, ou interroger les données qui y sont stockées.
En termes de fonctionnalités, SQL Server propose :
Analyses avancées optimisées par les services d'apprentissage automatique
OLTP en mémoire (OLTP en mémoire est la technologie de premier plan disponible dans SQL
Server et SQL Database pour optimiser les performances du traitement transactionnel, l'ingestion
des données, le chargement des données, et les scénarios de données temporaires.)
Options de haute disponibilité et de reprise après sinistre
Fonctionnalités de sécurité avancées comme Always Encrypted
Virtualisation des données avec Polybase
1.3. MySQL vs SQL Server : différences
MySQL et SQL Server sont tous deux des systèmes de gestion de bases de données relationnelles
(RDBMS) utilisés pour stocker et gérer des données, mais il existe quelques différences essentielles entre
eux :
1. Systèmes d'exploitation: MySQL est conçu pour fonctionner sur plusieurs systèmes
d'exploitation tels que Windows, Linux et macOS. SQL Server, d'autre part, est conçu pour
fonctionner principalement sur Windows, mais peut également fonctionner sur Linux.
2. Évolutivité: MySQL est connu pour son évolutivité et peut gérer efficacement de grandes
quantités de données. SQL Server offre également une évolutivité, mais il convient mieux aux
grandes entreprises ayant des besoins en données plus complexes.
3. Applicabilité: MySQL peut être utilisé pour prendre en charge les applications Web et les
applications mobiles, tandis que SQL Server a tendance à être mieux adapté aux grandes
applications commerciales telles que la finance.
2
Cours de Microsoft SQL Server I
4. Performance: MySQL est conçu pour le traitement de données hautes performances et peut gérer
facilement les sites Web et les applications à fort trafic. SQL Server offre de bonnes performances
mais nécessite plus de ressources système et de matériel pour atteindre le même niveau de
performances que MySQL.
5. Sécurité: Les deux offrent des fonctionnalités de sécurité renforcées, telles que l'authentification
des utilisateurs, les contrôles d'accès et le cryptage. Cependant, SQL Server offre des
fonctionnalités de sécurité plus avancées, telles que le chiffrement transparent des données et les
groupes de disponibilité permanents.
6. Prix: MySQL est open source et gratuit, mais l'édition entreprise de MySQL et les services
d'assistance commerciale peuvent avoir un coût. SQL Server, en revanche, nécessite une licence
pour chaque instance et peut être plus coûteux.
7. Moteurs de stockage: MySQL offre une gamme plus large de moteurs de stockage par rapport à
SQL Server, ce qui permet plus de flexibilité lorsqu'il s'agit d'optimiser les performances sur
différentes charges de travail de données.
Dans l'ensemble, le choix entre eux dépend en grande partie des besoins spécifiques de l'organisation, tels
que le budget, les exigences en matière de données et l'infrastructure informatique.
MySQL vs SQL Server : similitudes
À un niveau élevé, MySQL et SQL Server sont
assez similaires. Ils proposent tous deux des
systèmes de gestion de bases de données
relationnelles qui fonctionnent comme des
clients/serveurs et utilisent le langage SQL
(Structured Query Language) pour manipuler les
données. Les deux offrent également
les mêmes fonctionnalités de base, notamment :
Indexage
Réplication de données
Sauvegarde et récupération
Sécurité
Support pour transaction en cours
3
Cours de Microsoft SQL Server I
De plus, MySQL Server et SQL Server peuvent être utilisés pour une variété de sources de données, y
compris les applications d'entreprise, les applications Web, les entrepôts de données et les applications
intégrées. Les deux plates-formes sont entièrement compatibles avec de nombreux systèmes d'exploitation
et langages - la principale différence entre eux réside dans leur langage de conception.
MySQL utilise le langage MySQL, tandis que SQL Server utilise Transact-SQL (T-SQL). T-SQL possède
des fonctionnalités supplémentaires qui ne sont pas présentes dans le langage MySQL d'origine, telles que
la gestion des erreurs TRY/CATCH des procédures stockées, les requêtes récursives avec Common Table
Expressions (CTE) et d'autres fonctions qui facilitent l'écriture de requêtes complexes.
Les procédures stockées sont des ensembles d'instructions pré-écrites qui peuvent être réutilisées pour
effectuer une tâche spécifique. La gestion des erreurs TRY/CATCH permet aux développeurs d'écrire du
code capable de gérer avec élégance les erreurs pouvant survenir lors de l'exécution d'une procédure
stockée ou d'autres requêtes. Les requêtes récursives avec CTE facilitent l'écriture de requêtes qui doivent
se référencer à plusieurs reprises ou d'autres tables.
En termes plus simples, T-SQL dispose d'outils et de fonctionnalités supplémentaires qui
MySQL. Ces fonctionnalités permettent aux développeurs d'écrire du code réutilisable, de gérer les erreurs
avec plus de grâce et d'écrire des requêtes qui se référencent elles-mêmes ou d'autres tables plus
facilement.
4
Cours de Microsoft SQL Server I
2. Présentation Microsoft SQL Server
Microsoft SQL Server est un Système de gestion de base de données relationnel et transactionnel
développé et commercialisé par Microsoft.
Microsoft SQL Server utilise le langage T-SQL (Transact-SQL) pour ses requêtes, c'est une
implémentation de SQL qui prend en charge les procédures stockées et les déclencheurs. La dernière
version est SQL Server 2022. La première ayant appartenu à Microsoft seul est en 1994. (Contrairement
à Oracle qui sort la première version en 1979 voire 1977)
Durant, le semestre 2 nous avons étudié SQL en utilisant le SGBDR MySQL. Il faut savoir que, tous les
SGBDR relationnels (Oracle, MS SQL Server, MySQL, SQLite, DB2, PostgreSQL...) utilisent un SQL
standard.
Ce qui implique que TOUS ce que vous avez appris durant le cours de « Introduction aux bases de données
» au semestre 2 s’applique et reste valable pour les autres SGBDR à quelques exceptions près.
La Commande CREATE TABLE reste la même. Mais certains SGBDR comme MySQL et plus, MS SQL
Server, et MY SQL ont implémenté le concept de l’incrémentation automatique de la clé primaire.
La commande ALTER Table est la même. De même que la commande DROP Table.
La commande SELECT reste la même. Les jointures se font au niveau du FROM et non au niveau du
WHERE.
Sauf le SQLite, les SGBDR cités plus haut sont TOUS des SGBDR SERVEURS. SQLite est un SGBD
embarqué.
Tous les SGBDR offrent une interface ou un logiciel de gestion des bases de données. Pour Oracle, nous
l’avons vu, c’est SQL Developer. Pour MS SQL Server c’est SQL Server Management Studio, pour
MySQL c’est MySQL Workbench, pour SQLite c’est SQLite DB Browser.
Cependant,
Les SGBDR n’ont pas la même architecture. Pour Oracle, quelle que soit la version, il manque la couche
« Base de Données ». Tous les usagers sont connectés à une unique base de données qui est ORCL dans
la plupart des cas. La base de données et créée au moment de l’installation. Ce point est très important
pour la suite du cours. Pour MS SQL Server, chaque utilisateur doit créer sa propre base de données, et il
peut en créer plusieurs BD.
5
Cours de Microsoft SQL Server I
Lorsque vous êtes connectés à un serveur MS SQL Server, la première opération à exécuter est : (si vous
n’avez pas de BD)
CREATE DATABASE nomdelaBD;
Exemple :
CREATE DATABASE empclg;
Comme il est possible que vous ayez plus qu’une base de données, avant toute utilisation de celle-ci il
faudra l’indique au SGBD.
USE nomdelaBD;
Exemple
USE empclg;
Il est de même pour le SGBD MySQL concernant le CREATE DATABASE et le USE .
Les attributs n’utilisent pas les mêmes types. Exemple, pour Oracle, on utilise le VARCHAR2(n) alors
pour MS SQL server c’est le VARCHAR(n). Avant de créer une table, ce serait utile de consulter les types
de données manipulés par le SGBD.
MS SQL Server a implémenté la propriété IDENTITY pour l’incrémentation automatique de la clé
primaire. Cette propriété se retrouve dans ORACLE 12c et plus. Pour MySQL, il utilise la propriété :
AUTO_INCREMENT.
Pour Oracle 11g (la base de données que nous avons utilisée lors de la dernière session), le principe de
l’incrémentation automatique utilise une séquence et un trigger. On utilise [Link] pour
incrémenter automatiquement une valeur.
6
Cours de Microsoft SQL Server I
Attention : (Rappel)
Si une séquence démarre à 1 pour Oracle 11g, la valeur qui sera insérée est 2.
(nextval).Ce qui n’est pas le cas avec IDENTIT (1,1) qui indique que la valeur
qui sera insérée est 1.
Les SGBD sont très différents concernant l’extension de la couche SQL. Ils sont différents pour l’écritures
des procédures stockées et des triggers. Cette session, nous allons étudier le Transact-SQL qui est
l’extension du SQL pour MS SQL Server. À titre d’information, pour ORACLE, cette extension du SQL
s’appelle : PL/SQL. Pour SQLite, cette couche gère uniquement les triggers.
L’interface graphique de SQL Server Management Studio permet de créer directement la base de
données à l’aide du schéma. En d’autres mots, pas besoin de générer le code SQL du diagramme pour
l’exécuter puisque les tables sont déjà créées. Ce qui n’était pas le cas avec Oracle SQL developer Data
Modeler où est-ce qu’il faut générer le code SQL puis l’exécuter. En ce sens,
MY SQL WorkBench est semblable à Oracle.
SQL Server Management Studio est un excellent outil pour créer et exploiter vos bases de données MS
SQL Server indépendamment d’un langage de programmation. MAIS… il faut savoir que Visual Studio
vous permet aussi de créer et gérer vos bases de données MS SQL Server. On verra ce point plus loin.
Ce qu’il faut savoir pour la suite du cours, c’est que votre poste de travail est à la fois serveur et client.
Dans ce cas, il faut être conscient que n’importe qui peut supprimer votre BD puisque tous les étudiants
sont ADMIN de leur poste de travail. Par conséquent il faut :
Essayer le plus possible de garder votre poste de travail le reste de la session.
Garder en tout temps vos scripts SQL.
7
Cours de Microsoft SQL Server I
3. Installation, Configuration Et Connexion
3.1. Installation de SQL Server 2022 Express
1. Téléchargez et installez Microsoft .NET Framework 3.5 SP1 ou une version supérieure depuis le
site Web de Microsoft. Microsoft SQL Server 2022 Express Edition nécessite .NET
Framework 3.5 SP1 ou une version supérieure.
2. Téléchargez Microsoft SQL Server 2022 Express Edition depuis le site Web Microsoft.
3. Double-cliquez sur [Link] pour démarrer le programme d'installation de SQL Server 2022
Express. La page Termes du contrat de licence s'ouvre.
8
Cours de Microsoft SQL Server I
4. Lisez les termes de la licence, puis cliquez sur J'accepte les termes du contrat de licence.
9
Cours de Microsoft SQL Server I
5. Cliquez sur Suivant. La page Microsoft Update s'ouvre.
6. Cochez la case Utiliser Microsoft Update pour rechercher les mises à jour.
7. Cliquez sur Suivant. La page Installer les fichiers d'installation s'ouvre. Les fichiers
d'installation de SQL Server sont en cours d'installation sur votre ordinateur. Cela peut prendre
quelques minutes.
8. Cliquez sur Suivant. La page Règles d'installation s'ouvre et affiche l'état des règles.
10
Cours de Microsoft SQL Server I
9. Cliquez sur Suivant. La page Extension Azure pour SQL Server s'ouvre.
11
Cours de Microsoft SQL Server I
10. Entrez les informations requises pour installer et activer l'extension Azure, puis cliquez
sur Suivant. La page Sélection de composant s'ouvre.
12
Cours de Microsoft SQL Server I
11. Sélectionnez les composants nécessaires, puis cliquez sur Suivant. La page Configuration de
l'instance s'ouvre.
13
Cours de Microsoft SQL Server I
12. Cliquez sur Instance nommée et indiquez une valeur. Par exemple, MSSQLSERVER.
13. Cliquez sur Suivant. La page Configuration du serveur s'ouvre.
14
Cours de Microsoft SQL Server I
14. Dans l'onglet Comptes de service, sélectionnez le nom du compte depuis la liste disponible
pour chaque service SQL Server. Vous pouvez également spécifier un nouveau nom de compte et
un nouveau mot de passe.
15. Cliquez sur Suivant. La page Configuration du moteur de base de données s'ouvre.
15
Cours de Microsoft SQL Server I
16. La page Configuration du moteur de base de données est composée des onglets suivants :
Configuration du serveur : il vous permet de spécifier le mode d'authentification et l'administrateur
du moteur de base de données.
a. Cliquez sur Mode d'authentification Windows ou Mode mixte pour choisir le mode
d'authentification.
b. Si vous sélectionnez Mode mixte en tant que mode d'authentification, vous devez spécifier un mot
de passe. L'administrateur SQL Server par défaut pour le mode mixte est sa.
c. Vous pouvez spécifier les administrateurs SQL Server en ajoutant de nouveaux utilisateurs ou en
ajoutant l'utilisateur actuel.
16
Cours de Microsoft SQL Server I
Répertoires de données : spécifie l'emplacement des différents répertoires de base de données.
FILESTREAM : permet d'autoriser ou de restreindre l'accès aux informations FILESTREAM.
17. Cliquez sur Suivant. La page Progression de l'installation s'ouvre.
18. Une fois l'installation effectuée, la page Terminé s'ouvre. Cliquez sur Fermer pour quitter.
Une fois que le serveur est installé, vous devez installer SSMS version 18.2 (SQL Server Management
Studio), ce qui vous permet de gérer et d’exploiter vos bases de données avec SQL Server. Pour cela vous
devez vous rendre sur le site :
17
Cours de Microsoft SQL Server I
[Link]
server-2017
L’installation se fait automatiquement.
Attention :
Il faut redémarrer l’ordinateur pour que l’installation soit complète
Si votre serveur ne démarre pas, il faudra le faire manuellement :
Mode d’authentification :
Authentification Windows : Si vous choisissez ce mode d’authentification, cela veut
dire que le serveur de base de données, lorsque vous essayez de vous connecter, ne
vous demandera pas de mot de passe. Utiliser ce mode d’authentification si vous
n’avez pas de compte sur le serveur de base de données. C’est avec ce mode que l’on
se connecte pour la première fois.
Authentification SQL server : Si vous choisissez ce mode d’authentification, cela veut
dire que vous avez un compte sur le serveur de bases de données. Vous avez besoin
d’un nom d’usager, d’un mot de passe et d’une base de données. C’est ce mode
d’authentification que l’on va utiliser durant toute la session. C’est ce mode
d’authentification que vous allez avoir en entreprise.
Étape 1 : Changer le mode d’authentification
Lorsqu’on établit une connexion pour la première fois, nous allons faire une authentification
Windows. (Vous n’avez pas encore de compte sur le Serveur SQL server) —voir la figure
suivante.
18
Cours de Microsoft SQL Server I
Attention :
Le nom du serveur est le nom de votre ordinateur\nom de l’instance
19
Cours de Microsoft SQL Server I
Sinon, dérouler le nom du serveur, faire parcourir (ou <Browse for more …> et trouver votre serveur et
son instance.
Une fois que vous êtes connecté, allez sur les propriétés de votre connexion et changez le
mode d’authentification. Figure suivante.
Bouton droit sur votre
serveur, puis propriété
Sécurité
A l’onglet Sécurité, choisir Mode d’authentification SQL Server et Windows. Faites OK.
Redémarrer le serveur. (Bouton droit puis redémarrer.).
20
Cours de Microsoft SQL Server I
Attention :
Vous devez redémarrer le serveur
21
Cours de Microsoft SQL Server I
Il est probable que le serveur vous fasse une mise en garde quant au changement du mode
d’authentification et qu’il faut redémarrer le serveur. Faîtes juste OK.
Étape 2 : Créer une nouvelle connexion
Sur le bouton droit de l’onglet Sécurité, créer une nouvelle connexion.
22
Cours de Microsoft SQL Server I
23
Cours de Microsoft SQL Server I
Donner un nom significatif sans caractères spéciaux et sans accents
Choisir Authentification SQL Server.
Choisir un mot de passe qui respecte la stratégie des mots de passe Windows
Server
Décocher l’utilisateur doit changer le mot de passe.
Vous pouvez décocher la case « Conserver la stratégie des mots de passe. Mais
ce n’est pas conseillé.
Comme vous n’avez pas de base de données, la connexion utilise la Base de
données par défaut qui master.
Ne vous inquiétez pas, vous aller avoir votre propre base de données
24
Cours de Microsoft SQL Server I
Une fois que cette étape est terminée, vérifier que votre connexion est bien créée. Pour
cela allez dans l’onglet Sécurité-puis Connexion et repérer votre connexion
Étape 3 : Attribuer les rôles
Pour pouvoir créer votre propre base de données vous devez posséder les droits nécessaires
(ou le rôle).
Si vous êtes administrateur alors vous avez déjà ces rôles, sinon vous devez les attribuer à
votre connexion avant de créer la bd.
Attention :
Pour créer la base de données vous devez avoir au moins le rôle dbcreator
Les membres du rôle de serveur dbcreator peuvent créer, modifier, supprimer et
restaurer n'importe quelle base de données.
Pour donner les droits à votre connexion, allez à votre connexion, bouton droit, propriétés
puis rôle du serveur
25
Cours de Microsoft SQL Server I
Puis Rôles du serveur.
Puis cocher dbcreator puis cliquer sur OK.
Attention :
Ne jamais donner le rôle sysadmin. Les membres du rôle sysadmin peuvent effectuer
toute activité sur le serveur. Faîtes attention !!
26
Cours de Microsoft SQL Server I
Étape 4, Connexion avec l’authentification SQL Server et création de la base de données.
Vous pouvez vous déconnecter du serveur et vous reconnecter avec votre nouvelle
connexion (SQL Server) comme suit.
Pour vous déconnecter du serveur, utiliser le bouton Déconnecter
Ou bien Bouton droit sur la Votre serveur, puis déconnecter .
Attention :
Ne jamais mémoriser le mot de passe
Attention :
Ne jamais mémoriser le mot de passe
27
Cours de Microsoft SQL Server I
Pour créer une nouvelle base de données, placez-vous à l’onglet bases de données, puis
nouvelle base de données. Ou utiliser la commande CREATE DATABASE
Donnez un nom significatif à votre base de données.
28
Cours de Microsoft SQL Server I
Avant de cliquer sur OK, cliquer sur propriétaire, vous allez avoir la figure suivante :
Cliquez ensuite sur parcourir, puis trouvez votre connexion et cochez-la. (voir figure
suivante).
Cliquez OK sur chaque fenêtre
Après la création de la base de données, nous allons faire en sorte que le login pointe
directement sur la nouvelle base de données.
29
Cours de Microsoft SQL Server I
Sous l’onglet Sécurité, déroulez les connexions. Repèrerez la vôtre. Puis bouton droit de
la souris et Propriétés.
Choisir ensuite le nom de votre BD par défaut. Tester à nouveau votre connexion.
Important :
Vous pouvez également créer votre base de données avec la commande CREATE
CREATE DATABASE nomdelaBD;
Où est stockée la base de données ?
En cliquant sur le bouton droit de votre base de données, puis propriétés à l’onglet
fichier vous allez trouver les deux fichiers de la bd et leur emplacement.
30
Cours de Microsoft SQL Server I
Ces fichiers sont dans :
C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS2017\MSSQL\DATA
Vous y trouverez deux types de fichiers pour chaque BD : L’un .mdf et l’autre. ldf
Les données sont stockées dans un fichier MDF, toutes les transactions, les modifications
de la base de données SQL Server effectuées par chaque transaction sont stockées dans un
fichier LDF
[Link] et Patochebd_log.ldf
Vous pouvez récupérer votre base en faisant : Bouton droit sur Bases de données, puis
Joindre. Vous aurez la fenêtre suivante.
31
Cours de Microsoft SQL Server I
Cliquer sur le bouton Ajouter. Choisir le fichier en question (le [Link]) puis faire OK,
puis OK.
Votre base de données va apparaitre dans l’explorateur d’objets. Vous pouvez alors
l’exploiter comme vous voulez.
32
Cours de Microsoft SQL Server I
Attention :
Une base de données ne peut être jointe plus qu’une fois.
Lorsque vous essayez de joindre une Base de données déjà jointe, cela provoquera une
erreur.
Il faut que vos fichiers soient dans le bon dossier.
Attention Récupération de la base de données:
Pour récupérer votre base de données effectuer les étapes suivantes :
1- Dans tous les cas garder vos scripts SQL.
2- Copier les deux fichiers .mdf et .ldf de votre base de données (patochebd
et patoche_log) dans votre clé USB
3- pour ouvrir les fichiers que vous avez copiés dans votre clé USB sur un autre
ordinateur, vous devez d’abord JOINDRE le [Link]
4- Si vous êtes certains que votre BD a été copiée proprement alors vous pouvez la
supprimer pour qu’il n’y ait pas de plagiat.
33
Cours de Microsoft SQL Server I
34
Cours de Microsoft SQL Server I
Chapitre 1 : CREATION DES TABLES
1. Types de données SQL Server
1.1. Types numériques exacts
Type À partir de À
bigint -[Link].854.775.808 [Link].854.775.807
int -2147483648 2147483647
smallint -32768 32767
tinyint 0 255
bit 0 1
Decimal -10 ^ 38 1 10 ^ 38 -1
numeric -10 ^ 38 1 10 ^ 38 -1
money -922,337,203,685,477.5808 +922,337,203,685,477.5807
smallmoney -214,748.3648 +214,748.3647
Numerics approximatif
Type À partir de À
float 1,79 E + 308- 1,79 E + 308
reel -3.40E + 38 3.40E + 38
35
Cours de Microsoft SQL Server I
1.2. Datetime et smalldatetime
Type À partir de À
datetime (3,33 exactitude millisecondes) 1 janvier 1753 31 déc 9999
smalldatetime (précision de 1 minute) 1 janvier 1900 6 juin 2079
1.3. Chaînes de caractères
Type Description
char De longueur fixe de caractères Unicode avec une longueur maximum de
8000 caractères.
varchar Texte unicode de longueur variable allant jusqu’à 2 Go.
text Texte non unicode de longueur maximale 2Go
36
Cours de Microsoft SQL Server I
Les chaînes de caractères Unicode
Type Description
nchar la longueur de données Unicode-fixe avec une longueur maximale de 4000
caractères.
nvarchar la longueur de données Unicode et variable, avec une longueur maximum
de 4000 caractères.
nvarchar longueur Unicode données variables avec une longueur maximale de 230
(max) caractères (SQL Server 2005 uniquement).
ntext la longueur de données Unicode et variable, avec une longueur maximale de
1073741823 caractères.
1.4. Binary Cordes
Type Description
binaire De longueur fixe des données binaires d'une longueur maximale de 8000
octets.
varbinary De longueur variable des données binaires d'une longueur maximale de 8000
octets.
varbinary De longueur variable des données binaires d'une longueur maximale de 231
(max) octets (SQL Server 2005 uniquement).
image De longueur variable des données binaires d'une longueur maximale de
2147483647 octets.
Pour plus de détails, allez sur :
37
Cours de Microsoft SQL Server I
[Link] server-2017
2. La propriété « IDENTITY » d’une table
Vous pouvez mettre en œuvre des colonnes d'identification à l'aide de la propriété IDENTITY. Ce qui
permet de réaliser un auto incrément sur une colonne.
En général, la propriété IDENTITY se définie sur la clé primaire.
SI la propriété IDENTITY est définie sur une colonne, alors c’est le système qui insères des données dans
cette colonne (pas l’utilisateur).
38
Cours de Microsoft SQL Server I
Attention :
Vous ne pouvez [Link] une colonne existante pour y ajouter la prorité IDENTITY.
Exemple1 :
create table Eleves
(
num int identity,
nom varchar(30),
prenom varchar(30),
constraint pkeleve primary key(num));
insert into Eleves (nom,prenom) values('Patoche','Alain');
Remarquez :
1. La colonne num a la propriété IDENTITY.
2. Nous n’avons pas inséré dans la colonne num. C’est le système qui le fait pour nous.
3. Le num de Patoche sera 1, le num de Simba sera 2 et ainsi de suite.
Lorsque vous utilisez la propriété IDENTITY pour définir une colonne d'identification, tenez compte des
éléments suivants :
Une table ne peut comprendre qu'une colonne définie à l'aide de la propriété IDENTITY, et cette
colonne doit être définie à l'aide d'un type de données decimal, int, numeric,smallint, bigint ou
tinyint.
Vous pouvez spécifier la valeur de départ et l'incrément. La valeur par défaut est 1 dans les deux
cas.
La colonne d'identification ne doit ni accepter les valeurs NULL, ni contenir une définition ou un
objet DEFAULT. En général c’est la clé primaire.
La colonne peut être référencée dans une liste de sélection par l'emploi du mot clé $IDENTITY
après la définition de la propriété IDENTITY. La colonne peut également être référencée par son
nom.
SET IDENTITY_INSERT ON peut être utilisé pour désactiver la propriété IDENTITY d'une
colonne en activant les valeurs à insérer explicitement.
39
Cours de Microsoft SQL Server I
Exemple 2
La numérotation automatique commence à 10 et elle est à pas de 2.
create table ClientsInfo
(
numcl smallint IDENTITY(10,2),
nomcl varchar(30),
constraint pkcl primary key (numcl)
);
insert into Clientsinfo (nomcl) values ('Gavroche');
Sion on veut faire une insertion manuelle dans la colonne num (IDENTITY) il faut mettre
INDENTITY_INSERT a ON
Exemple 3 :
set identity_insert eleves on;
insert into eleves (num,nom, prenom) values
(20,'Simpson','Fred');
Attention, le num de Simpson est 20
Si on veut revenir à l’incrémentation automatique il faut faire
set identity_insert eleves off;
insert into eleves(nom, prenom) values ('Simon','Pascal');
Attention: le num de Simon est 21.
40
Cours de Microsoft SQL Server I
Création des tables avec SQL Server
Les mêmes syntaxes s’appliquent à la création de tables avec SQL Server. Exemple1 : Dans l’exemple
qui suit remarquez la colonne identity et le type money
create table programmes
(codep char(3),
nomprogramme varchar(30),
constraint pkprg primary key(codep)
);
create table etudiants
(
numad int identity ,
nom varchar(20),
prenom varchar(30),
salaire money,
Remarque1 : Avec SQL Server on peut définir un seul INSERT INTO et donner la lise des valeurs.
insert into programmes values
('inf','Informatique'),
('tge','Techniquw de genie'),
('ele','Electronique'),
('sim','Sciences maths info');
Pour exécuter un commit après une opération DML, il faut mettre l’opération entre
begin transaction;
opérations DML
commit;
41
Cours de Microsoft SQL Server I
Exemple 2
begin transaction;
insert into etudiants (nom, prenom,salaire,codep) values
('Patoche','Alain',12.33,'tge');
insert into etudiants (nom, prenom,salaire,codep) values
('Gavroche','Miserable',1.33,'inf');
insert into etudiants (nom, prenom,salaire,codep) values
('Bien','Henry',18.33,'inf');
En général, l’ensemble des contraintes que nous avons vues avec ORACLE se définissent de la
même façon avec SQL Server.
alter table etudiants add constraint
cksal check(salaire>1);
42