Home

Introduction aux Données

 

Principes de Base des Enregistrements

 

Introduction

 

Une table est un objet qui conserve les informations d'une base de données. Puis qu'une table est la partie centrale d'une base de données, les informations qu'elle contient doivent être organisées méticuleusement. Afin de mieux gérer ses informations, les données d'une table sont organisées en une série de champs appelés cellules.

 

Dès qu'une table contient des informations, vous pouvez la consulter à l'aide de SQL Server Management Studio ou une application externe.

Les tables d'une base de données affichent dans l'Explorateur d'objets sous leur nœud de base de données. Pour ouvrir une table pour la saisie des données, cliquez dessus avec le bouton droit de la souris et cliquez sur Modifier les 200 premières lignes.

Navigation de données de table dans SQL Server Management Studio

La navigation de données consiste à afficher et à voir des données. Puisque les informations d'une base de données sont stockées dans des tables, votre principal moyen de visualisation de données se compose de l'ouverture d'une table dans un affichage qui affiche ses informations.

Lorsqu'une table affiche ses enregistrements, vous accédez par le biais de ses champs en utilisant la souris ou le clavier. À l'aide de la souris, pour accéder à n'importe quelle cellule, vous pouvez simplement cliquer dessus. Pour naviguer dans les enregistrements à l'aide du clavier, vous pouvez appuyer sur :

  • La touche flèche droite pour déplacer vers la cellule droite ; si le caret est déjà dans la cellule plus à droite, elle pourrait être déplacée vers la première cellule de l'enregistrement suivant, jusqu'à la dernière cellule vide du premier enregistrement vide
  • La touche flèche vers la gauche pour déplacer vers la cellule précédente ; si le caret est dedans ou a atteint la cellule plus à gauche du premier enregistrement, rien ne se passerait lorsque vous appuyez sur le la touche flèche gauche
  • La touche flèche bas pour déplacer vers la cellule sous celle en cours ; si le caret est déjà dans la dernière cellule de la colonne actuelle, rien ne se passerait
  • La touche flèche haut pour déplacer vers la cellule juste au-dessus de celle en cours ; si le caret est déjà dans la première cellule de la colonne actuelle, rien ne se passerait
  • La page suivante pour passer au groupe suivant de la cellule qui correspondrait à la page suivante ; si le nombre d'enregistrements est inférieur à une page complète, le caret serait déplacé vers la dernière cellule de la colonne courante
  • Le haut de la page pour déplacer vers le prochain groupe de cellule qui correspondrait à la page suivante ; si le nombre d'enregistrements est inférieur à une page complète, le caret serait déplacé vers la première cellule de la colonne courante

Saisie de données visuelles

 

Introduction

Comme vous le savez probablement déjà, les colonnes sont utilisées pour organiser les données par catégories. Chaque colonne a une série de champs sous l'en-tête de colonne. L'un des objectifs réels d'une table est d'afficher les données qui sont disponibles pour chaque champ dans le cadre d'une colonne donnée. L'entrée de données consiste à fournir les valeurs nécessaires des champs d'une table. Les données sont entrées dans un champ et chaque fois que cela est fait, la base de données crée une ligne de données. Cette ligne est appelée un enregistrement. Cela signifie que la saisie de données crée également ses lignes.

Il existe quatre façons principales que vous pouvez effectuer une saisie de données pour une table Microsoft SQL Server :

  • Vous pouvez utiliser une table à partir de l'Explorateur d'objets
  • Vous pouvez entrer des données en tapant le code dans une fenêtre de requête
  • Vous pouvez importer des données à partir d'un autre objet ou d'une autre base de données
  • Vous pouvez utiliser une application externe tel que Microsoft Access, Microsoft Visual Basic, Borland C++ Builder, Microsoft Visual C++, Borland Delphi, Microsoft Visual Basic, c#, Visual c#, J#, etc..

L'utilisation de l'Explorateur d'objets

Probablement la voie la plus facile et la plus rapide pour entrer des données dans une table consiste à utiliser SQL Server Management Studio. Bien entendu, vous devez d'abord ouvrir la table souhaitée d'une base de données disponible. Dans l'Explorateur d'objets, après avoir développé les bases de données et les nœuds de tables, ouvrez une table pour la saisie de donné. Si la table ne contient pas de données, elle apparaitraît avec une ligne vide :

Table

Si certains enregistrements étaient déjà saisis, leurs lignes montreraient et la table fournirait une ligne vide à la fin, en attendant un nouvel enregistrement.

Pour effectuer la saisie de données sur une table, vous pouvez cliquer dans un champ. Au dessus de chaque colonne, il y a un titre, appelé une légende. Cette section grise en haut est appelée un en-tête de colonne. Dans SQL Server, il affiche le nom réel de la colonne. Vous faites référence à l'en-tête de colonne pour savoir quelle sorte de données devrait aller dans un champ sous une colonne particulière. C'est pourquoi vous devez concevoir vos colonnes méticuleusement. Après avoir identifié une colonne, vous pouvez saisir une valeur. À l'exception des colonnes basées sur du texte, un champ peut accepter ou rejeter une valeur si la valeur n'est pas conforme au type de données qui a été définie pour la colonne. Cela signifie que, dans certaines circonstances, il se peut que vous deviez fournir une ou plusieurs informations explicites à l'utilisateur.

Practical LearningEtude pratique : Présentation de saisie de données

  1. Démarrez Microsoft SQL Server, sélectionnez les options appropriées dans la boîte de dialogue de Connect To Server/connectez-vous au serveur
  2. Cliquez avec le bouton droit de la souris sur le nom du serveur, puis cliquez sur Nouvelle requête
  3. Pour créer une nouvelle base de données, dans la fenêtre vide, tapez ce qui suit :
    CREATE DATABASE WorldStatistics 
    GO 
    USE WorlStatistics ; 
    GO 
    CREATE TABLE Countries 
    (
           [Country Name] NVARCHAR (50), 
           Area INT, 
           Population BIGINT, 
           Capital  NVARCHAR(50), 
           [Internet Code]) nchar (2)
    ); 
    GO
  4. Pour exécuter l'instruction SQL, appuyez sur la touche F5
  5. Fermez la fenêtre de requête
  6. A la demande si vous souhaitez l'enregistrer, cliquez sur Non
  7. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur bases de données, puis cliquez sur Start PowerShell
  8. Tapez SQLCMD et appuyez sur la touche Entrée
  9. Pour créer une nouvelle base de données, tapez la commande suivante et appuyez sur la touche Entrée à la fin de chaque ligne :
    USE master ; 
    GO 
     
     
    IF EXISTS(SELECT name 
            FROM sys.databases 
            WHERE name = N'CeilInn1') 
    DROP DATABASE CeilInn1 
    GO 
     
     
    CREATE DATABASE CeilInn1 
    GO
  10. Appuyez sur la touche Entrée
  11. Revenez à Microsoft SQL Server Management Studio.
  12. Dans l'Explorateur d'objets, cliquez avec le bouton droit sur le nœud de bases de données et cliquez sur Actualiser. Développez le nœud de bases de données.
    Sous bases de données, développez WorldStatistics, puis développez tables
  13. Si vous ne voyez pas une table nommée Countries, cliquez avec le bouton droit de la souris sur les tables de nœud et cliquez sur Actualiser.
    Cliquez avec le bouton droit de la souris sur Countries, puis cliquez sur Modifier les 200 premières lignes
  14. Cliquez sur la première cellule vide sous CountryName, tapez Côte-d'Ivoire et appuyez sur la touche Entrée
  15. Tapez 322460 pour la région et appuyez sur la touche Tabulation
  16. Tapez 16,393,221 et appuyez sur la touche Entrée
  17. Notez que vous recevez un message d'erreur, car les virgules ne sont pas autorisées :

    Microsoft SQL Server Management Studio - Error
  18. Cliquez sur OK dans la boîte de message d'erreur.
  19. Modifiez la valeur à 16393221 People et appuyez sur la touche Tabulation
  20. Notez que vous recevez une autre erreur parce que la colonne est configurée pour un nombre naturel et pas une chaîne
  21. Cliquez sur OK dans la boîte de message d'erreur et de supprimer People
  22. Sous Internet Code, tapez ci et appuyez sur la touche Entrée
  23. Cliquez dans le champ sous Capital, tapez Yamoussoukro et appuyez deux fois sur la touche Entrée
  24. Remplissez la table comme suit :
    Nom du pays Zone Population Capital Code Internet
    Côte d'Ivoire 322460 16393221 Yamoussoukro ci
    Panama 78200 3191319 Panama pa
    Australie 7686850 20264082 Canberra au
    Canada 9984670 33098932 Ottawa ca
    Iran 1648000 68688433 Téhéran ir
  25. Fermez la table

Saisie de données par programmation

Introduction

Pour exécuter par programmation l'entrée des données, vous utilisez une commande de DDL (Data Definition Language) appelée INSERT. Pour commencer, si vous travaillez dans Microsoft SQL Server :

  • Dans l'Explorateur d'objets, à droite la table, positionnez la souris sur Script Table As-> INSERT To->New Query Editor Windouw. Vous pouvez obtenir le code comme suit :
    INSERT INTO [Exercise]. [dbo]. [Employees] 
                ([EmployeeNumber]
               ,[LastName]
               ,[FirstName]
               ,[Username]
               ,[DateHired]
               ,[HourlySalary]) 
    VALUES 
               (<EmployeeNumber,int,>
               ,<LastName, nvarchar (20),>
               ,<FirstName, nvarchar (20),>
               ,<Username, nchar(8),>
               ,<DateHired, date,>
               ,<HourlySalary, money,>)
    GO
  • Ouvrez une fenêtre de requête vide et tapez votre code

La commande DDL pour effectuer la saisie des données est INSERT combinée avec VALUES. L'instruction primaire utilise la syntaxe suivante :

INSERT TableName VALUES (Column1, Column2, Column_n) ;

Alternativement, ou pour être plus précis, vous pouvez utiliser le mot-clé INTO entre le mot-clé INSERT et le facteur TableName pour spécifier que vous saisissez des données dans la table. Cela est fait avec la syntaxe suivante :

INSERT INTO TableName VALUES (Column1 Column2, Column_n)

Le facteur de TableName doit être un nom valide d'une table existante dans la base de données que vous utilisez. Si le nom est erroné, l'interprète SQL considérerait simplement que la table à laquelle vous faites allusion n'existe pas. Par conséquent, vous recevriez un message d'erreur.

Le mot-clé VALUES indique que vous êtes prêt à énumérer les valeurs des colonnes. Les valeurs des colonnes doivent être incluses entre parenthèses.

Si la colonne est un type de données BIT, vous devez spécifier une de ses valeurs comme 0 ou 1.

Si la colonne est de type numérique, vous devriez faire attention au numéro que vous tapez. Si la colonne a été configurée pour recevoir un entier (int, bigint, smallint), vous devez fournir un numéro naturel valide sans le séparateur décimal.

Si la colonne est pour un nombre décimal (float, real, decimal, numéric), vous pouvez taper la valeur avec son séparateur de caractères (Period pour l'anglais américain).

Si la colonne a été créée pour un type de données date, assurez-vous que vous fournissez une date valide.

Si le type de données d'une colonne est de type chaîne, vous devez inclure son entrée entre apostrophes. Par exemple, un numéro d'emplacement peut être spécifié comme 'HHR-604' et un milieu initial peut être donné comme 'D'.

Author Note Dans les paragraphes précédents, nous "vous" indiquions comme si vous serez une entrée de données performantes. En réalité, l'utilisateur va effectuer la saisie de données sur vos produits. Par conséquent, il est de votre responsabilité de réduire, autant que possible, les risques d'erreurs. Bien entendu, il existe diverses façons, par le biais d'une application "visuelle" telle que Borland C++ Builder, Microsoft Visual Basic, c# ou MS Visual C++, etc., dont vous pouvez vous en occuper .

Saisie de données adjacentes

La méthode la plus courante d'effectuer la saisie de données nécessite que vous connaissiez la séquence des champs de la table dans laquelle vous souhaitez saisir des données. Avec cette liste suite à l'esprit, entrez la valeur de chaque champ dans sa position correcte.

Lors de la saisie de données sur les champs adjacents, si vous ne disposez pas d'une valeur pour un champ numérique, tapez 0 comme sa valeur. Pour un champ de chaîne contenant les données que vous n'avez pas et ne ouvez pas fournir, tapez deux unique-devis '' pour spécifier un champ vide.

Practical LearningEtude pratique : Exécution de saisie de données adjacentes

  1. Pour ouvrir une nouvelle fenêtre de requête, appuyez sur CTRL + N
  2. Dans la fenêtre de requête, pour créer un enregistrement, tapez :
    USE WorldStatistics ; 
    GO 
    INSERT INTO Countries 
    VALUES(N'Angola', 1246700, 12127071, N'Luanda', N'ao') ; 
    GO
  3. Appuyez sur F5 pour exécuter
  4. Supprimer la partie supérieure de la fenêtre
  5. Pour entrer des enregistrements différents en même temps, entrez l'instruction suivante :
    USE WorldStatistics ; 
    GO 
    INSERT INTO Countries 
    VALUES(N'Mexico', 1972550, 107449525, N'Mexico City', N'mx'); 
          (N'South Africa', 1219912, 44187637, N'Pretoria', N'za '); 
          (N'Iraq', 0,0, N'Baghdad', N'iq'); 
          (N'United States, 9826630, 0, N'',N ''); 
          (N'Saudi Arabia ', 2149690, 0, N'Riyadh ', N''); 
    GO
  6. Appuyez sur F5 pour exécuter l'instruction.

Saisie de données aléatoires

L'entrée de données adjacentes, que nous avons réalisées nécessite que vous connaissiez la position de chaque colonne. Le SQL fournit une alternative qui vous permet d'effectuer la saisie de données en utilisant le nom d'une colonne au lieu de sa position.Cela vous permet de fournir les valeurs des colonnes dans un ordre de votre choix. Nous venons de voir quelques exemples où les valeurs de certains champs n'étaient pas disponibles lors de la saisie des données. Au lieu de se souvenir de taper 0 ou NULL pour ces champs ou laisser vides entre guillemets pour un champ, vous pouvez utiliser les noms des champs pour spécifier les champs dont vous souhaitez fournir les données.

Pour effectuer la saisie de données dans un ordre de votre choix, vous devez fournir votre liste des champs de la table. Vous pouvez utiliser toutes les colonnes ou fournir une liste des mêmes colonnes mais dans votre propre ordre. De la même façon, vous n'avez pas à fournir des données pour tous les champs, seulement ceux souhaités, dans l'ordre que vous voulez.

Practical LearningEtude pratique : Exécution aléatoire de saisie de données

  1. Pour effectuer la saisie de données, saisissez et exécutez l'instruction suivante :
    USE WorldStatistics ; 
    GO 
    INSERT Countries([Country Name],Capital,[Internet Code],Population,Area) 
    VALUES(N'China', N'Beijing', N'cn', 1313973713, 9596960) 
    GO
  2. Appuyez sur F5 pour exécuter l'instruction.
  3. Pour effectuer d'autres entrées, entrez l'instruction suivante :
    USE WorldStatistics ; 
    GO 
    INSERT Countries(Capital, [Internet Code], [Country Name]) 
    VALUES(N'Nouakchott', N'mr', N'Mauritania') 
    GO 
    INSERT Countries([Internet Code], Population, [Country Name]) 
    VALUES(N'ro', 22303552, N'Romania')
    GO
    INSERT Countries (Area, [Country Name], population) 
    VALUES (21040, N'EL Salvador',6822378)
    GO
    INSERT Countries (Capital, [Country Name]) 
    VALUES(N'Phnom Penh', N'Cambodia') 
    GO
  4. Pour exécuter l'instruction, appuyez sur la touche F5
  5. Fermez la fenêtre de requête
  6. A la question si vous souhaitez l'enregistrer, cliquez sur Non

Création d'enregistrements multiples

Dans les sections précédentes, nous avons ajouté un enregistrement unique à chaque utilisation de la formule INSERT. Vous pouvez ajouter des enregistrements différents avec un seul appel d'INSERT. Si vous ajoutez une valeur pour chaque colonne de la table, après le nom de la table, tapez VALUES, ouvrez et fermez les parenthèses en premier. À l'intérieur des parenthèses, incluez les valeurs souhaitées. Pour ajouter un autre enregistrement, tapez une virgule après la parenthèse fermante, ouvrez une nouvelle parenthèse, énumérez les nouvelles valeurs et fermez la parenthèse. Faites-le autant de fois que vous avez besoin d'ajouter des enregistrements. Voici un exemple :

--=============================================
--Database : Video Collection 
--============================================= 
USE master 
GO 
--Dorp the database if it already exists 
IF EXISTS (SELECT Name 
           FROM sys.databases 
           WHERE Name = N'VideoCollection'
) 
DROP DATABASE VideoCollection 
GO 
CREATE DATABASE VideoCollection 
GO
--=============================================
--Database : Video Collection 
--Table : Vidéos
--========================================= 
USE VideoCollection
GO

IF OBJECT_ID(N'Videos', N'U') IS NOT NULL
   DROP TABLE Videos
GO

CREATE TABLE Videos 
(
       Title nvarchar(50), 
       Director nvarchar(50), 
       Rating nchar(10), 
       YearReleased int
) 
GO
 
 
INSERT INTO videos 
VALUES(N'Her Alibi', N'Bruce Beresford', N'PG-13', 1998), 
      (N'Memoirs of a Geisha ', N'Rob Marshall', N'PG-13', 2006), 
      (N'Two for the Money', N'D.J. Caruso', N'R', 2008); 
GO

Ceci est valable pour la saisie de données adjacentes. Si vous souhaitez suivre votre propre ordre des colonnes, sur le côté droit du nom de la table, incluez une liste de colonnes entre parenthèses. Ensuite, en donnant les valeurs, pour chaque enregistrement, suivez l'ordre dans lequel vous avez énuméré les colonnes. Voici un exemple :

--=============================================
--Database : Video Collection
--============================================= 
USE master 
GO 
--Drop the Database if it already exists 
IF EXISTS(SELECT name 
          FROM sys.databases 
          WHERE name = N'VideoCollection'
) 
DROP DATABASE VideoCollection 
GO 
 
 
CREATE DATABASE VideoCollection 
GO
 
 
--=============================================
--Database : Video Collection
--Table : Videos
--========================================= 
USE VideoCollection
GO 
IF OBJECT_ID(N'Videos', N'U') IS NOT NULL 
   DROP TABLE Videos 
GO 
 
 
CREATE TABLE Videos 
(
       Title nvarchar(50), 
       Director nvarchar(50), 
       Rating nchar(10), 
       YearReleased int
) 
GO
 
 
INSERT INTO Videos(Rating, Title, Director) 
VALUES(N'R', N'Wall Street', N'Oliver Stone'), 
(N '', N'Michael Jackson Live in Bucarest ', N'Andy Morahan'), 
(N'PG-13', 'N'Sneakers, N'Paul Alden Robinson'), 
(N'R', N'Soldier ', N'Paul Anderson') ; 
GO

Sortie du résultat d'insertion

Dans les techniques que nous avons utilisées jusqu'ici, quand ou si les enregistrements ont été ajoutés à une table, si l'opération a réussi ou non, nous n'avons eu aucun moyen de savoir. Une façon dont vous pouvez obtenir cette information consiste à stocker les enregistrements insérés dans une autre table. Pour cela, Transact-SQL fournit l'opérateur OUTPUT. La formule à utiliser est la suivante :

INSERT INTO TableName OUTPUT INSERTED.Columns 
VALUES (Value_1, Value_2, Value_X)

Vous démarrez avec l'insertion normale de l'enregistrement avec l'expression de TableName INSERT INTO. Ceci est suivi par l'opérateur OUTPUT suivi par l'opérateur INSERTED et une période. Si vous ajoutez une valeur pour chaque enregistrement, suivez la période avec *. L'instruction continue avec l'opérateur VALUES qui est suivi de parenthèses dans lesquelles vous spécifiez les valeurs à ajouter à la table. Voici un exemple :

USE VideoCollection ; 
GO 
 
 
CREATE TABLE Videos 
      (Title nvarchar(50), 
      Director nvarchar(50), 
      WideScreen bit, 
      Rating nchar(10), 
      YearReleased)int 
)
GO 
INSERT INTO Vidoos 
OUTPUT inserted.* 
VALUES(N'War of the Roses (The)', N'Dany de Vito', 0, N'R ', 2001), 
      (N'Memoirs of a Geisha', N'Rob Marshall', 1, N'PG-13 ', 2006), 
      (N'Last Castle (The)», N'Rod Lurie ', 1, N '', 2001), 
      ('N'Sneakers, N'Phil Alden Robinson', 1, N'PG-13 ', 2003); 
GO

Lors de l'exécution de cette instruction, si vous travaillez dans Microsoft SQL Server Management Studio, la partie inférieure afficherait une liste des enregistrements qui ont été ajoutés :

OUTPUT

Si vous utilisez la formule ci-dessus, lorsque vous fermez la base de données, la référence est perdue. Si vous souhaitez stocker la liste des enregistrements nouvellement créés dans une table, sur le côté droit de l'opérateur INSERTED et sa durée, tapez INTO suivi du nom de la table qui recevra les valeurs. La table doit avoir été créée ; autrement dit, il doit exister au moment où cette opération insérée se déroule. Voici un exemple :

USE VideoCollection ; 
GO 
 
 
CREATE TABLE Archives 
(
       Title nvarchar(50), 
       Director nvarchar(50), 
       WideScreen bit, 
       Rating nchar(10), 
       YearReleased int
) 
GO 
 
 
INSERT INTO Videos 
OUTPUT inserted.* INTO Archives 
VALUES(N'Two for the Money', N'D.J. Caruso', 1, N'R', 2006), 
      (N'Wall Street',  N'Oliver Stone ', 0, N'R ', 2000); 
GO

Dans ce cas, une copie des documents nouvellement créés est enregistrée dans la table d'indication.

Les techniques ci-dessus supposent que vous ajoutez un enregistrement complet ; c'est-à-dire que vous fournissez une valeur pour chaque colonne du tableau. Nous avons déjà vu que si vous souhaitez fournir des valeurs pour certaines colonnes, après le nom de la table, fournissez la liste des colonnes entre parenthèses. Pour obtenir la liste des enregistrements récemment insérés, après le mot clé OUTPUT, tapez INSERTED suivi d'une période et suivi par le nom de la première colonne. Effectuez cette opération pour chaque colonne. La formule à utiliser est la suivante :

INSERT INTO TableName (Column_1, Column_2, Column_X) 
OUTPUT INSERTED.Column_1,INSERTED. Column_2,INSERTED. Column_X
VALUES (Value_1, Value_2, Value_X)

Bien entendu, vous pouvez répertorier les colonnes dans un ordre de votre choix, tant que le TableName et la section OUTPUT utilisent tous deux le même ordre exact. Voici un exemple :

USE VideoCollection ; 
GO 
INSERT INTO Video (Director, Rating, Title)
OUTPUT inserted.Director, inserted.Rating, inserted.Title 
VALUES(N'Jonathan Lynn', N'R', N'Distinguished Gentleman (The) '), 
      (N'Paul ANDERSON ', N'R', N'Soldier'); 
GO

Dans ce cas, lorsque l'instruction est exécutée, le résultat s'affiche dans la partie inférieure de Microsoft SQL Server Management Studio. Si vous souhaitez stocker le résultat dans une table, utilisez la formule suivante :

INSERT INTO TableName (Column_1, Column_2, Column_X) 
OUTPUT INSERTED.Column_1, INSERED.Column_2? INSERED.Column_X INTO TargetTable
VALUES (Value_1, Value_2, Value_X)

Voici un exemple :

USE VideoCollection ; 
GO 
 
 
CREATE TABLE Entertainment 
(
       Title nvarchar(50), 
       Director nvarchar(50)
) 
GO 
INSERT INTO Videos(Title, Director) 
OUTPUT inserted.Title, inserted.Director INTO Entertainment 
VALUES(N'Michael Jackson Live in Bucharest', N'Andy Morahan') 
(N'Outfoxed ', N'Robert Greenwald'); 
GO

Colonnes des tables et des expressions

 

Introduction

Il existe diverses manières que vous pouvez aider l'utilisateur avec l'entrée de données. En plus de l'utilisation d'une fonction, vous pouvez créer une expression à l'aide des opérateurs tels que ceux que nous avons examinés dans les leçons 3 et 5. Vous pouvez créer une expression lors de la création d'une table, que ce soit dans la fenêtre de la table ou dans une fenêtre de requête en utilisant SQL.

Création visuelle d'une expression

Pour créer une expression lors de la création visuelle d'une table, dans la partie supérieure, spécifiez le nom de colonne (uniquement le nom de la colonne est important). Dans la section inférieure, développez le champ Computed Column Specification et, dans son domaine (formule), entrez l'expression de votre choix. Voici un exemple :

Création d'une expression SQL

Vous pouvez également créer une expression d'expression SQL que vous utilisez pour créer une table. Pour le faire, dans l'espace réservé à la colonne, entrez le nom de la colonne, suivi de AS et suivi de l'expression de votre choix. Voici un exemple :

CREATE TABLE Circle
(
        CircleID int identity(1,1) NOT NULL, 
        Radius decimal(8, 3)NOT NULL, 
        Area AS Radius * Radius * PI()
); 
GO

Utilisation d'une expression lors de la saisie de données

Lors de l'exécution d'entrée de données, vous ne devez pas fournir une valeur pour une colonne qui a une expression ; l'interprète SQL fournirait la valeur automatiquement. Voici un exemple de saisie des données de la table de cercle ci-dessus :

INSERT INTO Circle(Radius) VALUES(46.82) ; 
GO
INSERT INTO Circle(Radius) VALUES(8.15) ; 
GO 
INSERT INTO Circle(Radius) VALUES(122.57) ; 
GO
 

 

  
 

La Nullité d'un champ

 

Introduction

Lors de la saisie de données, les utilisateurs de votre base de données seront confrontés aux champs qui attendent les données. Parfois, pour une raison ou une autre, les données ne seront pas disponibles pour un champ particulier. Un exemple serait un champ MI (milieu initial) : certaines personnes ont une initiale du deuxième prénom, d'autres ne l'ont pas ou ne vont pas (ou ne peuvent pas) le fournir. Cet aspect peut se produire pour n'importe quel champ de votre table. Par conséquent, vous devez penser de manière à y faire face.

Un champ est appelé null lorsqu'aucune entrée de données n'a été apportée :

  • Dire qu'un champ est null ne veut pas dire qu'il contient 0 parce que 0 est une valeur
  • Dire qu'un champ est null ne veut pas dire que c'est vide. Un champ vide peut signifier que l'utilisateur a supprimé son contenu ou que le champ lui-même n'accepterait pas ce que l'utilisateur a essayé d'entrer dans ce champ, mais un champ vide peut avoir une valeur

Un champ est appelé null s'il n'y a aucun moyen de déterminer la valeur de son contenu (en réalité, l'ordinateur, c'est-à-dire le système d'exploitation, a son propre mécanisme interne de vérifier la valeur d'un champ) ou sa valeur est simplement inconnue. Comme vous pouvez l'imaginer, ce n'est pas une bonne idée d'avoir un champ vide dans votre table. Comme un développeur de base de données, il est de votre responsabilité de toujours connaître avec certitude la valeur de chaque champ de votre table.

Un champ est considéré comme requis si l'utilisateur doit fournir une valeur pour lui avant de passer à un autre enregistrement. En d'autres termes, le champ ne peut être laissé vide lors de la saisie de données.

Pour résoudre le problème des champs nuls et requis, Microsoft SQL Server propose l'une des deux options : autoriser ou de ne pas autoriser les valeurs null dans un champ. Pour une table typique, il y a des morceaux d'informations que l'utilisateur doit s'assurer d'entrer ; dans le cas contraire, l'entrée de données n'aurait pas été validée. S'assurer que l'utilisateur remplit toujours un certain champ avant de passer au champ suivant, c'est-à-dire, pour exiger la valeur, si vous créez visuellement la table, désactivez la case à cocher Allow Nulls autorisé pour le champ. D'autre part, si la valeur d'un champ n'est pas particulièrement importante, par exemple, si vous souhaitez ne pas impliquer cette valeur dans une opération algébrique, activez la case à cocher Allow Nulls autorisé.

NULL ou NOT NULL ?

Si vous créez une table à l'aide de SQL, pour indiquer qu'il peut autoriser les valeurs nulles, tapez NULL sur le côté droit de la colonne. Pour spécifier que les valeurs de la colonne sont nécessaires, sur la droite, tapez NOT NULL. Si vous ne spécifiez pas NULL ou NOT NULL, la colonne sera créée comme NULL. Voici des exemples :

CREATE TABLE Persons 
(
FirstName varchar(20) NULL, 
LastName varchar(20) NOT NULL,
Gender smallint
); 
GO

Si la table avait déjà été créée et qu'elle contient déjà certaines valeurs, vous ne pouvez pas définir l'option Allow Nulls sur les colonnes qui n'ont pas de valeurs.

Spécifiez après qu'une colonne pourrait autoriser les valeurs NOT, NULL, si l'utilisateur tente de créer un enregistrement mais omet de créer une valeur pour la colonne, une erreur affichera. Voici un exemple :

No row was updated

Cette boîte de message d'erreur indique que l'utilisateur a essayé de soumettre une valeur nulle pour une colonne. Pour annuler l'action, vous pouvez appuyez sur Echap.

Practical LearningEtude pratique : Application de champs Nullity

  1. Dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur le noeud Countries dans le WorldStatistics puis cliquez sur Modifier
  2. Appliquez la nullité des champs comme suit :

  3. Enregistrez la table.

La valeur par défaut d'une colonne

 

Introduction

Parfois la plupart des enregistrements sous une certaine colonne peuvent contenir la même valeur bien que quelques uns soient différents. Par exemple, si une école utilise une base de données pour enregistrer ses étudiants, ils sont tous susceptibles d'être dans le même état. Dans un tel cas, vous pouvez aider l'utilisateur en fournissant automatiquement une valeur pour cette colonne. L'utilisateur acceptera alors simplement la valeur et la modifiera uniquement dans les rares cas où la valeur arrive à être différente. Pour aider l'utilisateur avec cette valeur commune, vous créez ce qui est considéré comme valeur par défaut.

Création visuelle d'une valeur par défaut

Vous pouvez créer une valeur par défaut d'une colonne lors de la création d'une table. Pour spécifier la valeur par défaut d'une colonne, dans la partie supérieure, cliquez sur la colonne. Dans la section inférieure, cliquez sur la valeur par défaut ou liaison, entrez la valeur souhaitée, suivant les règles du type de données de la colonne :

C'est le type de données Instructions
Basé sur du texte (char, varchar, text et leurs variantes) Entrez la valeur unique entre-guillemets
Numeric-based Entrez la valeur comme un nombre, mais suivant les règles du type de données.
Par exemple, si vous entrez une valeur supérieure à 255 pour un tinyint, vous recevrez une erreur
Date ou heure Entrez la date comme JJ/MM/AAAA ou AAAA/MM/JJ. Vous pouvez éventuellement inclure la date unique entre-guillemets.
Entrez l'heure suivant les règles définies dans le panneau de configuration (paramètres régionaux).
BIT Saisissez True ou False

Création d'une valeur par défaut par programmation

Pour spécifier la valeur par défaut dans une instruction SQL, lors de la création de la colonne, après avoir spécifié les autres éléments d'information de la colonne, tapez DEFAULT suivi d'un espace vide et suivi par la valeur souhaitée. Voici des exemples :

CREATE TABLE Employees 
(
FullName VARCHAR (50), 
Address  VARCHAR(80), 
City VARCHAR (40), 
State VARCHAR (40) DEFAULT 'NSW', 
PostalCode VARCHAR DEFAULT '2000', 
COUNTRY VARCHAR(20) DEFAULT 'AustraliA'
); 
GO

Lors d'une saisie de données sur la table, l'utilisateur n'a pas à fournir une valeur pour une colonne qui a une valeur par défaut. Si l'utilisateur ne fournit pas de valeur, la valeur par défaut sera utilisée lors de l'enregistrement.

Author Note Si l'utilisateur fournit une valeur pour une colonne qui a une valeur par défaut et puis supprime la valeur, la règle de valeur par défaut ne s'applique plus : le champ deviendrait simplement vide
 

Practical LearningEtude pratique : Affectation d'une valeur par défaut à une colonne

  1. Affichez la fenêtre PowerShell
  2. Pour modifier la base de données, tapez la commande suivante et appuyez sur la touche Entrée à la fin :
    USE CeilInn1 ; 
    GO
  3. Pour créer une nouvelle table dont les colonnes ont une valeur par défaut, tapez la commande suivante et appuyez sur la touche Entrée à la fin :
    CREATE TABLE Rooms (
         RoomNumber nvarchar(10), 
         RoomType nvarchar (20) default N'Bedroom ', 
         BedType nvarchar (40) default N'Queen', 
         Rate money default 75.85, 
         Available bit default 0
    ); 
    GO
  4. Pour effectuer la saisie de données sur la nouvelle table, tapez la commande suivante et appuyez sur la touche Entrée à la fin :
    INSERT INTO Rooms(RoomNumber) VALUES(104) ; 
    GO
  5. Pour ajouter un autre enregistrement à la nouvelle table, tapez ce qui suit :
    INSERT INTO Rooms (RoomNumber, BedType, Rate, Available) 
              VALUES(105, N'King', 85.75, 1), 
                    (106, N'King ' 85.75, 1) 
    GO
  6. Pour ajouter un autre enregistrement, tapez ce qui suit :
    INSERT INTO Rooms(RoomNumber, Available) VALUES(107, 1) 
    GO
  7. Pour ajouter un autre enregistrement, tapez ce qui suit :
    INSERT INTO Rooms (RoomNumber, BedType, Rate) VALUES(108, N'King', 85.75) 
    GO
  8. Pour ajouter un autre enregistrement, tapez ce qui suit :
    INSERT INTO Rooms(RoomNumber, Available) VALUES (109,1)
    GO
  9. Pour ajouter encore un enregistrement, tapez ce qui suit :
    INSERT INTO Rooms (RoomNumber, RoomType, BedType, Rate, Available) 
              VALUES(110, N'Conference', N'', 450.00, 1) 
    GO
  10. Revenez à Microsoft SQL Server Management Studio.

Colonnes d'identité

 

Introduction

Un des objectifs d'une bonne table est de pouvoir identifier chaque enregistrement. Dans la plupart des cas, le moteur de base de données ne devrait pas confondre deux enregistrements. Examinez le tableau suivant :

Catégorie Nom de l'élément Taille Prix unitaire
Femmes Robe Jersey longues manches Grand 39,95
Garçons Pantalon kaki plissé S 39,95
Hommes Chemise longues manches rayées Grand 59.60
Femmes Robe Jersey longues manches Grand 45.95
Filles Sac à main de l'épaule 45,00
Femmes Jupe continentale Petite 39,95

Imaginez que vous souhaitez modifier la valeur d'un élément nommé robe jersey longues manches. Puisque vous devez trouver l'élément par programmation, vous pouvez lancer la recherche d'un élément portant le même nom. Cette table arrive à avoir deux éléments portant le même nom. Vous pouvez alors décider de rechercher un élément en utilisant sa catégorie. Dans la colonne catégorie, il y a trop d'articles nommés femme. De la même façon, il y a trop d'enregistrements qui ont une grande valeur dans la colonne taille, la même chose, un problème dans la colonne prix unitaire. Cela signifie que vous ne disposez pas d'un bon critère que vous pouvez utiliser pour isoler l'enregistrement dont le nom de l'article est longues manches.

Pour résoudre le problème de l'enregistrement de l'identifiant de manière unique, vous pouvez créer une colonne particulière dont le but principal est de distinguer un enregistrement de l'autre. Pour vous aider à cela, le SQL vous permet de créer une colonne dont le type de données est de type nombre entier, mais l'utilisateur n'a pas besoin d'entrer des données pour cette colonne. Une valeur devrait automatiquement être entrée dans le champ lors de la création d'un nouvel enregistrement. Ce type de colonne est appelé une colonne d'identité.

Vous ne pouvez pas créer une colonne d'identité à une table existante, uniquement sur une nouvelle table.

Créer visuellement une colonne IDENTITY

Pour créer une colonne d'identité, si vous travaillez visuellement dans la vue de conception de la table, dans la partie supérieure, spécifiez le nom de la colonne. Par tradition, le nom de cette colonne ressemble à celui de la table, mais au singulier. Également, par habitude, le nom de la colonne se termine avec _id, Id ou ID.

Après avoir spécifié le nom de la colonne, définissez son type de données pour un type basé sur un nombre entier. Généralement, le type de données utilisé est int. Dans la section inférieure, cliquez dessus et développez la propriété Identity Specification. La première action que vous devez prendre est de définir sa propriété (Is Identity) de Non à Oui.

Une fois que vous avez défini la valeur de la propriété (Is Identity) sur Oui, la première fois que l'utilisateur exécute l'entrée de données, la valeur du premier enregistrement serait fixée à 1. Cette caractéristique est contrôlée par Identity Seed property. Si vous souhaitez que le nombre de commencer à une valeur autre que 1, spécifiez-le sur cette propriété.

Une fois que la propriété (Is Identity) a été définie sur Oui, l'interprète SQL augmentera la valeur de chaque nouvel enregistrement par 1, qui est la valeur par défaut. Cela signifie que le premier enregistrement aurait une valeur égale à 1, le deuxième pourrait avoir une valeur de 2 et ainsi de suite. Cet aspect est contrôlé par la propriété Identity Increment/Accroissement de l'identité. Si vous voulez augmenter plus que cela, vous pouvez modifier la valeur de la propriété Identity incrément.

Practical LearningEtude pratique : Création d'une colonne IDENTITY

  1. Dans l'Explorateur d'objets, sous WorldStatistics, cliquez avec le bouton droit de la souris sur Table et cliquez sur Nouveau...
  2. Définissez le nom de la colonne sur ContinentID et appuyez sur la touche de tabulation
  3. Définissez son type de données int et appuyez sur la touche F6.
    Dans la section inférieure du tableau, développez les caractéristiques de l'identité, puis double-cliquez sur (Is Identity) pour définir sa valeur sur Oui
  4. Remplissez le tableau comme suit :
    Nom de la colonne Type de données Allow Nulls
    ContinentID
    Continent varchar(80) Unchecked
    Région bigint
    Population bigint
  5. Enregistrez la table comme Continents

Création d'une colonne d'identité à l'aide de SQL

Si vous créez par programmation une colonne, pour indiquer qu'elle sera utilisée sous la forme d'une colonne d'identité après son nom et son type de données, tapez identity suivi des parenthèses. Entre les parenthèses, entrez la valeur de semences, suivie par une virgule, suivie par la valeur augmentée. Voici un exemple :

CREATE TABLE StoreItems(
ItemID int IDENTITY(1, 1) NOT NULL, 
Category varchar(50), 
[Item Name] varchar (100) NOT NULL, 
Size varchar(20), 
[Unit Price])money); 
GO

Practical LearningEtude pratique : Création d'une colonne d'identité à l'aide de SQL

  1. Affichez la fenêtre PowerShell
  2. Tapez la commande suivante :
    USE CeilInn1 ; 
    GO
  3. Pour créer une table avec une colonne identity, tapez la commande suivante et appuyez sur la touche Entrée après chaque ligne :
    DROP TABLE Rooms ; 
    GO 
     
     
    CREATE TABLE Rooms (
        RoomID int identity(1, 1) NOT NULL, 
        RoomNumber nvarchar (10), 
        RoomType nvarchar (20) default N'Bedroom ', 
        BedType nvarchar (40) default N'Queen', 
        Rate money default 75.85, 
        Available bit default 0
    ); 
    GO
  4. Pour effectuer la saisie des données sur la nouvelle table, tapez la commande suivante et appuyez sur la touche Entrée à la fin :
    INSERT INTO Rooms(RoomNumber) VALUES(104) ; 
    GO
  5. Pour ajouter un autre enregistrement à la nouvelle table, tapez ce qui suit :
    INSERT INTO Rooms (RoomNumber, BedType, Rate, Availableble) 
              VALUES(105, N'King', 85.75, 1), 
                    (106, N'King ' 85.75, 1) 
    GO
  6. Pour ajouter un autre enregistrement, tapez ce qui suit :
    INSERT INTO Rooms(RoomNumber, Available) VALUES (107,1)
    GO
  7. Pour ajouter un autre enregistrement, tapez ce qui suit :
    INSERT INTO Rooms(RoomNumber, BedType, Rate) VALUES(108, N'King', 85.75) 
    GO
  8. Pour ajouter un autre enregistrement, tapez ce qui suit :
    INSERT INTO Rooms(RoomNumber, Available) VALUES (109,1)
    GO
  9. Pour ajouter un enregistrement en plus, tapez ce qui suit :
    INSERT INTO Rooms(RoomNumber, RoomType, BedType, Rate, Available) 
             VALUES(110, N'Conference', N'', 450.00, 1) 
    GO
  10. Revenez à Microsoft SQL Server Management Studio.

La controverse autour des enregistrements

 

Introduction

L'une des principales préoccupations des enregistrements est leur unicité. Dans une base de données professionnelles, vous souhaitez généralement vous assurer que chaque enregistrement sur une table est unique. Microsoft SQL Server fournit de nombreux moyens de prendre soin de cela. Ceux-ci incluent la colonne d'identité, la clé primaire et les index. Nous allons examiner ces questions dans les leçons ultérieures. Néanmoins, un moyen pour le faire est d'appliquer une règle d'unicité sur une colonne.

Création d'une règle de controverse

Pour vous aider à créer des colonnes dont les valeurs seront différenciées, Transact-SQL fournit l'opérateur UNIQUE. Pour l'appliquer sur une colonne, après le type de données, tapez UNIQUE. Voici un exemple :

USE Exercise ; 
GO 
CREATE TABLE Students 
(
    StudentNumber int UNIQUE, 
    FirstName nvarchar(50, 
    LastName nvarchar(50) NOT NULL
); 
GO

Lorsqu'une colonne a été marquée comme unique, lors de la saisie de données, l'utilisateur doit fournir une valeur unique pour chaque nouvel enregistrement créé. Si une valeur existante est affectée à la colonne, cela entraînerait une erreur :

USE Exercise ; 
GO 
CREATE TABLE Students 
(
     StudentNumber int UNIQUE, 
     FirstName nvarchar(50), 
     LastName nvarchar(50) NOT NULL
); 
GO 
 
 
INSERT INTO Students 
VALUES(24880, N'John', N'Scheels'), 
    (92846, N'R©n©e', 'N'Almonds), 
    (47196, N'Peter ', N'Sansen '), 
    (92846, N'Daly ', N'Camara '), 
    (36904, N'Peter ', N'Sansen '); 
GO

Au moment de la saisie du quatrième enregistrement, puisqu'il utilise un numéro d'étudiant qui existe déjà, le moteur de base de données devrait produire une erreur :

MSG 2627, Level 14, State 1, Line 2 
Violation of UNIQUE KEY constraint 'UQ__Students__DD81BF6C145C0A3F'.
Cannot insert duplicate key in object 'dbo.Students'.
The statement has been terminated.

Practical LearningEtude pratique : Application de la controverse autour d' une colonne

  1. Dans la fenêtre PowerShell, pour créer une nouvelle table qui a une règle d'unicité sur une colonne, tapez ce qui suit :
    CREATE TABLE Customers (
        CustomerID int identity(1, 1) NOT NULL, 
        AccountNumber nchar(10) UNIQUE, 
        FullName nvarchar(50)
    ); 
    GO
  2. Pour effectuer la saisie de données sur la table, tapez la commande suivante et appuyez sur la touche Entrée à la fin de chaque ligne :
    INSERT INTO Customers (AccountNumber, FullName) 
                   VALUES(395805, N'Ann Zeke'), 
                         (628475, N'Peter Dokta'), 
                         (860042, N'Joan Summs') 
    GO
  3. Essayez d'ajouter un autre enregistrement à la table, tapez la commande suivante et appuyez sur la touche Entrée à la fin de chaque ligne :
    USE CeilInn1 ; 
    GO 
     
     
    INSERT INTO Customers (AccountNumber, FullName) 
                   VALUES(628475, N'James Roberts')
    GO
  4. Notez que vous recevez un message d'erreur

Autres fonctionnalités de saisie de données

 

Is RowGuid

Cette propriété vous permet de spécifier qu'une colonne avec la propriété Identity définie sur Oui est utilisée comme une colonne ROWGUID.

Classement

Étant donné que les différents langages utilisent différents mécanismes dans leurs caractères alphabétiques, cela peut affecter la manière dont certains algorithmes de tri ou de requêtes sont effectuées sur les données, vous pouvez demander à la base de données d'appliquer un certain mécanisme de langue dans le champ en changeant la propriété de classement. Dans le cas contraire, vous devez accepter la valeur par défaut spécifiée par la table.

Pour trouver quelle langue votre serveur utilise actuellement, dans une fenêtre de requête ou de PowerShell, vous pouvez taper :

SELECT @@ LANGUAGE ; 
GO
 
 
   
 

Précédent Copyright © 2010 Yevol.com Suivant