Cours en Devlopement Informatique

  • SQL SEVER

Création et Gestion des objets d'une base de données



I. Introduction

Ce document vous propose d’apprendre à utiliser un sous-ensemble du langage SQL, le LDD pour créer et modifier des objets de base de données, en particulier les tables.  Vous apprendrez également à modifier et supprimer des tables.

A la fin de ce chapitre, vous saurez :

  • Créer, utiliser et supprimer une base de données.
  • Créer des tables
  • Décrire les différents types de données utilisables pour les définitions de colonne
  • Modifier la définition des tables
  • Supprimer, tronquer et copier une table

II. Commandes de gestion de la base de données

2.1 L'ordre CREATE DATABASE

Créez une base de données en utilisant l'ordre SQL CREATE DATABASE

Syntaxe :

CREATE DATABASE nom de la base de données

Exemple

CREATE DATABASE GestCom
  1.  
2.2 L'ordre USE

Utiliser une base de données en utilisant l’ordre SQL USE.

Syntaxe :

USE nom de la base de données

Exemple

USE GestCom
  1.  
2.3 L’ordre DROP DATABASE

Supprimer une base de données en utilisant l’ordre SQL DROP DATABASE.

Syntaxe :

DROP DATABASE nom de la base de données

Exemple

DROP DATABASE GestCom

III. Objets d'une Base de Données

Objet

Description

Table

Unité de stockage élémentaire, composée de lignes et de colonnes

Vue

Représente de manière logique des sous-groupes de données          

Index

Améliore les performances de certaines requêtes

Une base de données peut contenir de nombreuses structures de données. 

Chaque structure doit être prédéfinie lors de la conception de la base de données pour pouvoir être créée durant la phase de construction de la base.

  • Table : stocke les données
  • Vue : sous-groupes de données issues d'une ou de plusieurs tables. Elle propose une vue logique des données mais ne stocke pas les données.
  • Index : améliore les performances de certaines requêtes
3.1 Conventions de Dénomination
  1. Règles de Dénomination

Nommez les tables et colonnes de votre base de données en suivant les règles de dénomination applicables à tous les objets d'une base de données SQL Server.  

Les noms de tables et de colonnes doivent commencer par une lettre et peuvent comprendre de 1 à 255 caractères.

Un nom :

  • Doit commencer par une lettre
  • Peut comporter de 1 à 255 caractères
  • Ne peut contenir que les caractères A à Z, a à z, 0 à 9, (_, $, et #, et espaces déconseillés)
  • Ne doit pas porter le nom d’un autre objet appartenant au même utilisateur
  • Ne doit pas être un mot réservé SQL Server
    1.  
3.2 Conseils

Utilisez des noms signifiants.  

Utilisez une dénomination uniforme pour des colonnes identiques appartenant à des tables différentes.

Par exemple : la colonne numéro du département s'appelle DEPTNO dans la table EMP et dans la table DEPT.

Remarque : les majuscules et minuscules ne sont pas différenciées dans les noms. Par exemple, EMP est identique à eMP ou eMp. D’une manière générale, SQL server n’est pas sensible à la casse des caractères.

IV. L'ordre CREATE TABLE

Créez des tables pour stocker des données en utilisant l'ordre SQL CREATE TABLE

Syntaxe :

table         

nom de la table

column     

nom de la colonne

datatype 

type de données et longueur de la colonne

CREATE TABLE table

(col1 datatype [taille][identity] [DEFAULT expr] [NOT NULL], Col2 datatype [taille] [DEFAULT expr] [UNIQUE], ...)

Spécifiez :

  • Un nom de table
  • Le nom, le type de données et la taille des colonnes.

L'exemple ci-dessus crée la table DEPT avec deux colonnes nommées DEPTNO, DEPTNAME :

CREATE TABLE dept (DEPTNO INT, DEPTNAME CHAR (25))

Ou

CREATE TABLE dept 

(DEPTNO INT, DEPTNAME CHAR (25) DEFAULT ‘Ressources humain’)
  1.  
4.1 Expression_colonne_calculée 

Expression définissant la valeur d'une colonne calculée. Une colonne calculée est une colonne virtuelle qui n'est pas stockée physiquement dans une table. Elle est calculée à partir d'une expression qui utilise d'autres colonnes dans la même table. 

Par exemple, une colonne calculée peut avoir la définition suivante : Cout AS Prix * Quantite. 

L'expression peut être un nom de colonne non calculée, une constante, une fonction, une variable et toute combinaison de ces éléments reliés par un ou plusieurs opérateurs. L'expression ne peut pas être une sous-requête. 

Exemple :

CREATE TABLE Produit 

            (ProductID int IDENTITY(1,1) NOT NULL,

            QteStock int,

            PrixU money,

            Valeur as QteStock *PrixU)

La requête suivante calcule la colonne valeur :

Select ProductID, QteStock, PrixU, Valeur

From Produit
Les types de données dans SQL Server

Dans Microsoft SQL Server, chaque colonne, variable locale, expression et paramètre possède un type de données. L'ensemble des types de données fournis par le système est décrit cidessous. 

Les types de données de base pour les valeurs d’une colonne proposés par le système : 

bigint

binary

bit

char

datetime

decimal

float

image

int

money

nchar

ntext

numeric

nvarchar

real

smalldatetime

smallint

smallmoney

varchar

text

timestamp

tinyint

varbinary

uniqueidentifier

xml

L'affectation d'un type de données à un objet définit quatre attributs de l'objet : 

  • le type de données contenues par l'objet 
  • la longueur ou la taille de la valeur stockée 
  • la précision du nombre (types de données numériques uniquement) l'échelle du nombre (types de données numériques uniquement).

bit 

Nombre entier dont la valeur est 1 ou 0. Peut aussi être null

int 

Nombre entier dont la valeur est comprise entre -231 (-2 147 483 648) et 231 - 1 (2 147 483 647).

 smallint 

Nombre entier dont la valeur est comprise entre -215 (-32 768) et 215 - 1 (32 767). 

tinyint 

Nombre entier dont la valeur est comprise entre 0 et 255. 

decimal 

Données numériques de précision et d'échelle fixes comprises entre -1038 -1 et 1038 -1. 

numeric 

Synonyme de decimal

money 

Valeurs de données monétaires comprises entre -263 (-922 337 203 685 477,580 8) et 263 - 1 (+922 337 203 685 477,580 7), avec une précision d'un dix-millième d'unité monétaire. 

smallmoney 

Valeurs de données monétaires comprises entre - 214 748,3648 et +214 748,3647, avec une précision d'un dix-millième d'unité monétaire. 

float 

Données numériques de précision en virgule flottante comprises entre -1.79E + 308 et 1.79E + 308.

 real 

Données numériques de précision en virgule flottante comprises entre -3.40E + 38 et 3.40E + 38. 

date

Données de date comprises entre le 1er janvier 1753 et le 31 décembre 9999, 

datetime 

Données de date et d'heure comprises entre le 1er janvier 1753 et le 31 décembre 9999, avec une précision de trois centièmes de seconde ou de 3,33 millisecondes. 

smalldatetime 

Données de date et d'heure comprise entre le 1er janvier 1900 et le 6 juin 2079, avec une précision d'une minute. 

char 

Données non Unicode de longueur fixe d'un maximum de 8 000 caractères. 

varchar 

Données non Unicode de longueur variable  text 

Données non Unicode de longueur variable ne pouvant pas dépasser 231 - 1 (2 147 483 647) caractères. 

Chaînes de caractères Unicode nchar 

Données Unicode de longueur fixe ne pouvant pas dépasser 4 000 caractères. 

nvarchar 

Données Unicode de longueur variable ne pouvant pas dépasser 4 000 caractères. 

ntext 

Données Unicode de longueur variable ne pouvant pas dépasser 230 - 1 (1 073 741 823) caractères. 

binary 

Données binaires de longueur fixe.  varbinary 

Données binaires de longueur variable 

image 

Données binaires de longueur variable ne pouvant pas dépasser 231 - 1 (2 147 483 647) octets. 

V. L’ordre ALTER TABLE

Après avoir créé vos tables, il peut arriver que vous deviez en modifier la structure pour ajouter une colonne oubliée ou que vous décidiez de changer une définition de colonne. Cela est possible grâce à l'ordre ALTER TABLE.

Vous pouvez ajouter des colonnes à une table en utilisant l'ordre ALTER TABLE avec la clause ADD.

Vous pouvez modifier des colonnes existantes d'une table au moyen de l'ordre ALTER TABLE avec la clause ALTER COLUMN.  

Utilisez l'ordre ALTER TABLE pour :

  • Ajouter ou supprimer une colonne
  • Modifier une colonne existante
  • Définir une valeur par défaut pour une nouvelle colonne

Syntaxe :

ALTER TABLE table

ADD (col1 datatype [DEFAULT expr]

[, col2 datatype]...);

ALTER TABLE table

ALTER COLUMN    col1 datatype [DEFAULT expr]

[, col2 datatype]...

ALTER TABLE table

DROP COLUMN    col1 [, col2 ]

L'exemple ci-dessus ajoute la colonne nommée JOB à la table DEPT30. La colonne JOB devient la dernière colonne de la table.

Remarque : si une table contient déjà des lignes lorsque l'on ajoute une colonne, la nouvelle colonne sera initialisée à NULL pour toutes les lignes sauf si l’on précise une valeur par défaut, dans ce cas pour toutes les lignes de la table, la colonne sera initialisée avec la valeur par défaut.

• Utilisez la clause ADD pour ajouter des colonnes.

Exemple :

ALTER TABLE dept ADD  job VARCHAR(9);

La nouvelle colonne est placée à la fin.

      EMPNO            ENAME         ANNSAL       HIREDATE       JOB

--------- ---------- --------- --------- ----

      7698               BLAKE         34200         01-MAY-81

7654        MARTIN       15000         28-SEP-81 7499        ALLEN          19200         20-FEB-81

      7844               TURNER      18000         08-SEP-81

--------- ---------- --------- --------- ----

Vous pouvez modifier la définition d'une colonne au moyen de l'ordre ALTER TABLE et de la clause ALTER COLUMN. Les modifications effectuées peuvent être des modifications du type de données, de taille et de la valeur par défaut. De nombreuses restrictions existent notamment lorsque la colonne est utilisée comme contrainte.

Conseils

  • Vous pouvez augmenter la largeur ou la précision d'une colonne numérique.
  • Réduire la largeur d'une colonne. Cette réduction peut entrainer des pertes de données par troncation.
  • Modifiez le type de données dans la limite des capacités de conversion (Char en Varchar, ...)
  • La modification d'une valeur par défaut ne s'appliquera qu'aux insertions ultérieures.

 Modification de Colonnes

  • Vous pouvez modifier le type de données, la taille et la valeur par défaut d'une colonne.
   ALTER TABLE     dept

           ALTER COLUMN (DEPTNAME VARCHAR(65));

Vous pouvez supprimer une colonne au moyen de l'ordre ALTER TABLE et de la clause DROP COLUMN.

L'exemple ci-dessus supprime la colonne nommée JOB à la table DEPT30. 

Exemple :

ALTER TABLE dept DROP COLUMN job;

VI. Suppression de Tables

L'ordre DROP TABLE supprime la définition d'une table

Lorsque vous supprimez une table, la base de données perd toutes les données de la table ainsi que tous les index associés.

Syntaxe

DROP TABLE   nom de la table

Exemple

DROP TABLE dept

Conseils

  • Toutes les données de la table sont supprimées.
  • Les vues ne sont pas supprimées mais ne sont plus utilisables.
  • Toute transaction en instance est validée.
  • Seul le créateur de la table ou un utilisateur ayant le privilège DROP ANY TABLE peut supprimer une table.

Une fois exécuté, l'ordre DROP TABLE est irréversible. 

Si vous êtes le propriétaire de la table ou disposez d'un niveau de privilège élevé, la table sera immédiatement supprimée. 

Tous les ordres du LDD effectuent une validation qui rend la transaction permanente.

TRUNCATE TABLE est un autre ordre LDD, qui permet de supprimer toutes les lignes d'une table tout en libérant l'espace utilisé pour stocker cette table. L'ordre TRUNCATE TABLE ne peut être annulé.

Syntaxe

TRUNCATE  TABLE  nom de la table

L'ordre DROP quant à lui supprime aussi les lignes d'une table, mais il ne libère pas l'espace de stockage.

TRUNCATE TABLE department;
  • Vous ne pouvez pas annuler un ordre TRUNCATE
  • Vous pouvez aussi utiliser l'ordre DROP pour supprimer des lignes

VII. Copie de Tables

SELECT INTO est un autre ordre LDD, qui permet de créer une nouvelle table à partir des données d’une table de la base de données.  

Syntaxe

SELECT col1 [, col2 ] INTO nouvelle table  FROM ancienne table

Exemple

SELECT AV#, MARQUE, CAPACITE

INTO AVION1

                               FROM AVION

VIII. Résumé

CREATE TABLE

  • Crée une table.

ALTER TABLE

  • Modifie la structure d'une table.
  • Change la largeur des colonnes, le type de données des colonnes, ajoute des colonnes, supprime des colonnes.

DROP TABLE

  • Supprime les lignes et la structure d'une table.
  • Cet ordre ne peut être annulé après exécution.

TRUNCATE

  • Supprime toutes les lignes d'une table et libère l'espace occupé par la table.
  • L'ordre DROP supprime seulement les lignes.

SELECT …INTO

  • Crée une table à partir des données d’une table de la base de données.

IX. Atelier pratique

  1. Faire les exemples précédents.
  2. Créer la structure des bases de données études de cas : “Bibliothéque et Clinique ” 
    1. Créer les structures des tables de la base de données avec précision des colonnes, types, tailles
    2. Modifier les structures des tables de la base de données : supprimer la table livre
    3. Modifier les structures des tables de la base de données : ajouter la table livre
    4. Modifier les structures des tables de la base de données : supprimer la colonne éditeur de la table livre
    5. Modifier les structures des tables de la base de données : ajouter la colonne éditeur de la table livre
    6. Modifier les structures des tables de la base de données : modifier le type et la taille la colonne éditeur de la table livre

Ajouter un commentaire

Veuillez vous connecter pour ajouter un commentaire.

Pas encore de commentaires.