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 :
II. Commandes de gestion de la base de données
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
Utiliser une base de données en utilisant l’ordre SQL USE.
Syntaxe :
USE nom de la base de données
Exemple
USE GestCom
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
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.
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 :
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.
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 :
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’)
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
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 :
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.
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 :
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
Modification de Colonnes
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;
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
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;
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
CREATE TABLE
ALTER TABLE
DROP TABLE
TRUNCATE
SELECT …INTO
Ajouter un commentaire
Veuillez vous connecter pour ajouter un commentaire.
Pas encore de commentaires.