Créer une table SQL Server avec CREATE TABLE

Exemple de script SQL Server Create Table pour créer une table de ventes et de clients.

Ce code SQL est un script de type Language de Définition de Données (LDD) pour créer une table SQL Server. 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.

1. 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)

1.1 Tester et supprimer la table si besoin

Pour commencer, tester si la table existe dans la base avec la fonction Exists(). Si c’est le cas alors la table est supprimée avec la commande T-SQL drop table.

-- 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

1.2 Créer la table avec le script SQL

Créer ensuite la table VENTES qui contient les 2 colonnes:

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

1.3 Insérer des données dans la 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.

2. Créer une table SQL Server avec différents types de données

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
);

3. Requête T-SQL pour créer une table clients et stocker des données

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 SQL à partir d’une table. Cet autre tutoriel explique comment transposer les colonnes en lignes avec la requête SQL UNPIVOT.

En conclusion, SQL Server propose de nombreux formats de données, alphanumériques ou numériques. Adapter l’utilisation des formats et des tailles de colonnes au besoin effectif pour mieux gérer l’espace disque des bases de données sur les serveurs. Pour aller plus loin, cet article explique comment modifier le type de données d’une colonne SQL Server.

Modifier une colonne SQL Server avec un script

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *