SQL SERVER 2008 Le 20/10/2010

publicité
SGBD SQL Server 2008 R2
BTS-DSI 2
SQL SERVER 2008
Le 20/10/2010
Définitions
Une base de données est un objet particulièrement difficile à définir puisqu’il est
abordé en pratique selon différents points de vue :
 Pour un administrateur, une base de données est un ensemble fichiers
contenant des données à sauvegarder et à sécuriser.
 Pour un utilisateur, une base de données est un espace où il peut enregistrer
des informations, les retrouver et les faire traiter automatiquement par un
ordinateur.
 Pour un développeur, une base de données est un ensemble de tables
contenant des données, d'index permettant d'accélérer leur récupération et de
procédures permettant d'y travailler de la manière la plus rapide et la plus
sûre.
Une base de données SQL est constituée d'au moins deux fichiers:
1. Un fichier de données, avec une extension .MDF ;
2. Un fichier de journal, avec une extension .LDF .
Elle est composée de plusieurs familles d'objets: tables, vues, requêtes,
procédures stockées, déclencheurs (triggers)…
Sur tout système SQL Server, on trouve quatre bases système, correspondant
chacune à une fonction propre.
master, contient toute les informations nécessaires au fonctionnement du
serveur.
model, contient plusieurs tables système, ces tables se trouvent dans toute les
bases.
msdb, est la base support de l'Agent SQL Server, qui s'en sert pour connaître les
tâches à automatiser, les évènements à traiter.
tempdb, cette base sert seulement au stockage temporaire.
Création d'une base de données.
Pour créer une base de données SQL Server, il est possible d'utiliser soit SQL
Server Management Studio, soit du code Transact SQL(T-SQL).
Démarrez / Tous les programmes / Microsoft SQL Server 2008 R2 / SQL
Server Management Studio et cliquer sur le bouton Se conn pour se
connecter à une instance du moteur de base de données SQL Server.
En utilisant SQL Server Management Studio
1. Dans l'Explorateur d'objets, Cliquez avec le bouton droit sur Bases de
données, puis cliquez sur Nouvelle base de données…
2. Dans la fenêtre Nouvelle base de données, entrez le nom de la base de
données.
3. Pour créer la base de données en acceptant toutes les valeurs par défaut,
cliquez sur OK, sinon effectuez les étapes facultatives ci-après cliquez sur
OK.
A.MAKAYSSI
SGBD SQL Server 2008 R2
BTS-DSI 2
4. Pour modifier le nom du propriétaire, cliquez sur (…) afin de sélectionner
un autre propriétaire.
Remarque: L'option Utiliser l'indexation de texte intégral est toujours
activée et estompée, car toutes les bases de données utilisateur sont activées
pour la recherche en texte intégral à partir de SQL Server 2008.
5. Pour modifier les valeurs par défaut des données primaires et des fichiers
journaux de transactions, dans la grille Fichiers de la base de données,
cliquez sur la cellule appropriée, puis entrez la nouvelle valeur.
En utilisant du code Transact SQL
Comme de nombreuses instructions Transact-SQL, l'instruction CREATE
DATABASE nécessite un paramètre obligatoire : le nom de la base de données.
Au cours de la création d'une base de données avec le langage Transact SQL, il
faut préciser :
Le nom logique du fichier pour le manipuler avec le langage Transact SQL.
Le nom physique pour préciser l’emplacement du fichier.
Une taille initiale.
Une taille maximale.
Un pas d’incrémentation.
Exemple1:
CREATE DATABASE MaBase ON
(NAME =MaBaseData, FILENAME= 'D:\MabaseData.mdf', SIZE = 20,
MAXSIZE = 100, FILEGROWTH=1)
LOG ON
(NAME =MaBaseLog, FILENAME= 'D:\MabaseLog.ldf', SIZE = 10,
MAXSIZE = 50, FILEGROWTH=1)
GO
NAME : Nom logique du fichier.
FILENAME: Emplacement et nom physique du fichier.
SIZE: Taille initiale du fichier en mégaoctets (MB). La taille par défaut est de 1
mégaoctet.
MAXSIZE: Taille maximum du fichier indiquée en mégaoctets. Si aucune valeur
n’est précisée, alors la taille du fichier sera limitée par la place libre sur le disque.
FILEGROWTH : Précise le pas d’incrément pour la taille du fichier, qui ne pourra
jamais dépasser la valeur maximale. Les extensions possèdent une taille de 64
Ko. C’est donc la valeur minimale du pas d’incrément qu’il faut fixer.
LOG ON : Emplacement du journal de transactions. Le journal de transactions
stocke les modifications apportées aux données.
À chaque INSERT, UPDATE ou DELETE, une écriture est faite dans le journal
avant l’écriture dans la base. La validation des transactions est également
consignée dans le journal. Ce journal sert à la récupération des données en cas
de panne.
A.MAKAYSSI
SGBD SQL Server 2008 R2
BTS-DSI 2
Le mot clé GO sépare les instructions si plus d'une instruction est envoyée dans
un même traitement. GO est facultatif lorsque le traitement contient uniquement
une seule instruction.
Dans l'Éditeur de requête, appuyez sur la touche F5 pour exécuter l'instruction et
créer une base de données nommée MaBase
Exemple2: Création d'une base de données sans paramètres:
CREATE DATABASE MaBase
Pour SQL Sever 2008 R2, La base de données ainsi crée se trouve par défaut
dans:
C:\Program Files\Microsoft SQL server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA
.
Remarque: Lorsque vous créez une base de données sans paramètres, SQL
Server effectue une copie de la base de données model et remplace le nom de la
copie par le nom de la base de données.
Suppression d'une base de données.
La suppression d'une base de données est une opération simple mais
irréversible. En supprimant la base, vous supprimez en même temps tous les
fichiers qui lui sont associées, sans les mettre dans la corbeille.
Syntaxe
DROP DATABASE MaBase
Supprime la base de données MaBase.
Remarque: Il n’est pas possible de supprimer les bases système.
Renommer une base de données.
Il est possible de changer le nom d'une base de données sans risque pour les
données qu'elle contient
Syntaxe
ALTER DATABASE Gestion
MODIFY
NAME = BaseGestion
Renomme la base appelée Gestion en base appelée BaseGestion.
Gestion des tables et index
Pour créer une table, vous devez fournir un nom pour la table et les noms et les
types de données de chaque colonne dans la table. Il est aussi recommandé
d'indiquer si les valeurs Null sont autorisées dans chaque colonne.
La plupart des tables possèdent une clé primaire constituée d'une ou plusieurs
colonnes de la table. Une clé primaire est toujours unique. Le Moteur de base de
données applique la restriction qui veut que les valeurs de clé primaire ne
peuvent pas être répétées dans la table.
Les types de données
Lors de la définition d’une colonne, on précisera le format d’utilisation de la
donnée ainsi que le mode de stockage par le type de la colonne.
a. Types de données système
Ces types sont disponibles pour toutes les bases de données en standard.
A.MAKAYSSI
SGBD SQL Server 2008 R2
BTS-DSI 2
Caractères
char[(n)]
Chaîne de caractères de longueur fixe, de n caractères maximum. Par défaut 1,
maximum 8000 caractères.
varchar(n|max)
Chaîne de caractères à longueur variable, de n caractères maximum. Par défaut
1, maximum 8000 caractères. En précisant max, la variable peut contenir des
données de type texte allant jusqu’à 231 caractères.
nchar[(n)]
Chaîne de caractères unicode, maximum 4000 caractères.
nvarchar(n|max)
Chaîne de caractères unicode, maximum 4000. En précisant max, la variable
peut contenir des données de type texte allant jusqu’à 231 octets.
Numérique
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,
decimal[(p[,d])]
d est compris entre 1 et p,
18 par défaut.
0 par défaut.
Exemple : pour décimal (8,3) l’intervalle admis sera de -99999,999
à +99999,999.
Les valeurs sont gérées de -1038 à 1038 -1.
numeric[(p[,d])]
Identique à decimal. Pour le type decimal, la précision pourra être parfois plus
grande que celle requise.
bigint
Type de données entier codé sur 8 octets. Les valeurs stockées avec ce type de
données sont comprises entre- 263(- 9223 372 036 854 775 808) et
263-1(9 223 372 036 854 775 807).
int
Nombre entier entre -231 (2147783648) et +231 -1 (+2147483647). Le type de
données int est spécifique SQL Server et son synonyme integer est quant à lui
compatible ISO.
smallint
Nombre entier entre - 215 (32768) et 215 -1 (+32767).
tinyint
Nombre entier positif entre 0 et 255.
float[(n)]
Numérique approché de n chiffres, n allant de 1 à 53.
real
Identique à float(24).
money
smallmoney
Numérique au format monétaire compris entre -922 337 203 685 477, 5808 et
+922 337 203 685 477, 5807 (8 octets).
Numérique au format monétaire compris entre – 214 748,3648
et +214 748,3647 (4 octets).
Date
A.MAKAYSSI
SGBD SQL Server 2008 R2
datetime
BTS-DSI 2
Permet de stocker une date et une heure sur 8 octets. 4 pour un nombre de jours par
rapport au 1er janvier 1900, 4 pour un nombre de millisecondes après minuit. Les
dates sont gérées du 1er janvier 1753 au 31 décembre 9999. Les
heures sont gérées avec une précision de 3,33 millisecondes.
Smalldatetime
Permet de stocker une date et une heure sur 4 octets. Les dates sont gérées du 1er
janvier 1900 au 6 juin 2079, à la minute près.
datetime2
Plus précis que le type datetime, il permet de stocker une donnée de type date et
heure comprise entre le 01/01/0001 et le 31/12/9999 avec une précision de 100
nanosecondes.
Datetimeoffset
Permet de stocker une donnée de type date et heure comprise entre le 01/01/0001 et
le 31/12/9999 avec une précision de 100 nanosecondes. Les informations horaires
sont stockées au format UTC et le décalage horaire est conservé afin de retrouver
l’heure locale renseignée initialement.
Date
Permet de stocker une date comprise entre le 01/01/0001 et le 31/12/9999 avec une
précision d’une journée.
time
Permet de stocker une donnée positive de type heure inférieure à 24h00 avec une
précision de 100 nanosecondes
Types de données définis par l’utilisateur
Il est possible de définir ses propres types de données, soit par l’intermédiaire de
Management Studio, soit par la commande CREATE TYPE.
Syntaxe (création)
CREATE TYPE nomType
{FROM typeDeBase [ ( longueur [ , precision ] ) ]
[ NULL | NOT NULL ]
}
Exemples:
Création d’un type MyType pour les colonnes telles que nom client, nom
fournisseur etc. :
CREATE TYPE MyType
FROM VARCHAR(30) NULL
Création d’un type MyNum pour des valeurs numériques entre -999 et +999 :
CREATE TYPE MyNum
FROM numeric(3) NOT NULL
Demander la création d’un nouveau type de données depuis SQL Server
Management Studio :
Lancez SQL Server Management Studio.
Développez votre base de données/ Programmabilité/ Types puis faites un clic-droit sur
Types de données définis par l'utilisateur et choisir Nouveau type de données défini
par l'utilisateur.
Saisissez par exemple Montant dans la zone Nom. Et sélectionnez decimal comme type
de données. Donnez 8 à la zone Précision et 2 pour Echelle. Validez par OK.
Vous verrez votre type qui figure dans le groupeTypes de données définis par l'utilisateur.
Pour supprimer un type défini par l'utilisateur, il suffit d'y faire un clic droit et sélectionner
Supprimer.
A.MAKAYSSI
SGBD SQL Server 2008 R2
BTS-DSI 2
Syntaxe (suppression)
DROP TYPE [ schema_name. ] type_name [ ; ]
Un type ne pourra pas être supprimé s’il est utilisé dans une table de la base où
il a été créé.
Exemple: le code suivant supprime le type MyType
DROP TYPE MyType
Créer une table
Dans une fenêtre Éditeur de requêtes, tapez et exécutez le code suivant pour
créer une simple table nommée Produits. Les colonnes de la table sont nommées
IDProduit, NomProduit, Prix, et DescriptionProduit. La colonne IDProduit est la
clé primaire de la table. int, varchar(25), money, et text sont les types de
données de ces colonnes. Seules les colonnes Prix et DescriptionProduit peuvent
n'avoir aucune donnée lors de l'insertion ou de la modification d'une ligne. Cette
instruction contient un élément facultatif (dbo.) appelé un schéma. Le schéma
est l'objet de base de données qui est propriétaire de la table. Si vous êtes
administrateur, dbo est le schéma par défaut. dbo représente le propriétaire de
la base de données.
Syntaxe:
CREATE TABLE [dbo.]Produits
(IDProduit int PRIMARY KEY NOT NULL,
NomProduit varchar(25) NOT NULL,
Prix money NULL,
DescriptionProduit text NULL)
GO
Pour afficher les informations sur la table Produits, on utilise la procédure stockée sp_help
comme suit EXEC sp_help Produits.
On peut créer des colonnes virtuelles calculées: par exemple, le calcul d'un prix TTC, à partir
du prix HT et du taux de TVA. Dans l'instruction CREATE TABLE, il suffit de définir la
colonne par la clause PrixTTC AS (PrixHT*(1 + TVA)). Les valeurs de cette colonne ne sont
pas stockées dans la table, mais recalculées à la demande. Il n'est pas possible de créer des
colonnes calculées à partir de l'interface de SQL Server Management Studio.
A.MAKAYSSI
Téléchargement