Créer une table SQL Server (CREATE TABLE)

Voici un exemple de script SQL Server Create Table pour créer une table de clients ou de ventes. Ce code T-SQL est un script de type Data Definition Langage (DDL) ou Language de Définition de Données (LDD). Ces tables servent d’exemple dans de nombreux articles Transact-SQL du site sur Expert-Only. Ces scripts simples testent au préalable si la table existe, si elle existe alors elle est supprimée.

Ensuite, créer la table SQL Server des ventes. Deux colonnes la composent, une colonne pour les mois et une autre pour les montants des ventes mensuelles.

Exemple de script SQL Server pour créer une table de ventes

Il suffit de COPIER / COLLER le script dans SQL Server Management Studio (SSMS) par exemple.

Cette table contient deux colonnes :

  • Une colonne MOIS de type NVARCHAR(20)
  • Une colonne MONTANT de type NUMERIC(5)

Pour commencer, tester si la table existe dans notre base avec la fonction exists(). Si c’est le cas alors la table est supprimée avec la commande T-SQL drop table. Créer ensuite la table VENTES qui contient simplement 2 colonnes:

-- Tester si la table existe déjà
-- Si oui alors supprimer la table
IF exists ( 
	SELECT 1 FROM sys.objects
     WHERE  object_id = object_id(N'[dbo].[VENTES]')
	AND type in (N'U')  
)
BEGIN 	
	DROP TABLE [dbo].[VENTES]
END
GO

-- Créer la table d'exemple pour stocker les VENTES
CREATE  table [dbo].[VENTES] (
	[MOIS]       nvarchar(20),
	[MONTANT]    numeric(5)
)
GO
Exemple de script SQL Server pour créer une table
Script SQL Server pour créer une table

Insertion de quelques lignes dans la table pour manipuler les données pour les trois premiers mois de l’année civile.

-- Insérer des données de Ventes pour notre exemple
INSERT INTO dbo.VENTES ( MOIS, MONTANT ) VALUES  ( N'Janvier', 1000);
INSERT INTO dbo.VENTES ( MOIS, MONTANT ) VALUES  ( N'Février', 2000);
INSERT INTO dbo.VENTES ( MOIS, MONTANT ) VALUES  ( N'Mars', 3000);
GO

-- Sélectionner les résultats pour contrôler le contenu de table
SELECT * 
FROM   dbo.VENTES;
Sélectionner les données de la table SQL Server
Sélectionner les données de la table SQL Server

Cet article décrit un exemple en langage Transact-sql pour créer une table qui contient des données de ventes mensuelles. Les autres scripts SQL du blog utilisent cet exemple, volontairement basique.

Exemple de script SQL Server Create Table avec différents types de données numériques

Cet exemple de création d’une table des Ventes utilise différents types de données. Les colonnes sont par exemple de types binaires, numériques, entiers ou encore chaines de caractères.

Une solution possible est d’utiliser une commande T-SQL CREATE TABLE. Par exemple, voici un extrait de code facile à adapter à différents besoins pour créer une nouvelle table.

CREATE TABLE [dbo].[VENTES] 
(
 [MoisNom] NVARCHAR(50), -- alphanumérique
 [MoisCourant]  BIT, -- booléen, 0 ou 1 , false / true
 [NumeroMois] TINYINT, -- très petit entier, de 0 à 255
 [NumeroEmploye] SMALLINT, -- petit entier, minimum -2^15, maximum 2^15
 [NombreClients] INTEGER, -- entier, minimum -2^31, maximum 2^31
 [NombreVentes] BIGINT, -- grand entier, minimum: -2^63, maximum 2^63
 [Montant_HT] NUMERIC(15,5), -- numérique, 15 chiffres, dont 5 après la virgule
 [Montant_TTC] DECIMAL(15,5) -- décimal, 15 chiffres, dont 5 après la virgule
);

Requête T-SQL pour stocker une liste de clients dans une table

Ce troisième exemple concerne la table CLIENTS qui est utilisé dans de nombreux tutoriels. Ensuite la table SQL Server appelée [dbo].[CLIENTS] est créée.

De la même manière, il suffit de COPIER / COLLER le script dans votre outil de gestion de base SQL Server, comme SSMS par exemple.

Cette table CLIENTS contient trois colonnes :

  1. Une première colonne NOCLIENT de type int et auto-incrémentée.
  2. Une colonne NOM de type nvarchar(20) et UNIQUE.
  3. Une dernière colonne VILLE de type nvarchar(20).
-- Tester si la table CLIENTS existe déjà
-- Et la supprimer au besoin
IF EXISTS( 	
	SELECT 	1 FROM sys.objects
	WHERE 	object_id = object_id(N'[dbo].[CLIENTS]') 
		AND type in (N'U')
)
BEGIN
	DROP TABLE [dbo].[CLIENTS]
END
GO

-- Créer la table CLIENTS avec la colonne NOM déclarée comme UNIQUE
-- Le mot clef UNIQUE définit la colonne avec une valeur unique
-- Insérer deux clients avec le même nom est donc impossible
CREATE TABLE [dbo].[CLIENTS] (
	[NOCLIENT] int IDENTITY(1,1),
	[NOM]   	 nvarchar(20) UNIQUE,
	[VILLE] 	 nvarchar(20)
)
GO

-- Insérer des données pour les exemples de manipulation
INSERT INTO dbo.CLIENTS ( NOM, VILLE ) VALUES ( N'MAMMADOU', 'Lyon');
INSERT INTO dbo.CLIENTS ( NOM, VILLE ) VALUES ( N'SERGEI', 'Lyon');
INSERT INTO dbo.CLIENTS ( NOM, VILLE ) VALUES ( N'CHRISTOPHE', 'Paris');

-- Vérifier des lignes insérées
SELECT * 
FROM dbo.CLIENTS;

Pour continuer dans le sens de la manipulation et du stockage de données en base, voici comment créer une vue à partir d’une table existante.

Pour aller plus loin, voici une troisième table des ventes qui stocke tous les mois en colonnes. Cet article explique comment transposer les colonnes en lignes avec une requête SQL.

En conclusion, SQL Server propose de nombreux formats de données, alphanumériques ou numériques. Pour aller plus loin, cet article explique comment modifier une table avec un nouveau type de données pour une colonne.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*