 |
Affichage
|
|
|
|
Lors de l'étude de l'analyse des données, une requête est une technique d'isoler une série de colonnes et/ou des enregistrements d'une table. Ceci est généralement effectué aux fins de l'analyse des données. Cela peut se faire également pour créer une nouvelle liste d'éléments pour toute raison particulière. La plupart du temps, une requête est créée temporairement, tel que lors de l'analyse de données en utilisant une table, un formulaire ou une page web. Après l'utilisation d'une telle liste temporaire, elle est alors rejetée.
|
De nombreuses applications de base de données, notamment Microsoft SQL Server, permettent de créer une requête et de pouvoir l'enregistrer pour une utilisation ultérieure, ou encore l'utiliser comme s'il s'agissait de son propre tableau.C'est l'idée derrière une vue.
Une vue est une liste de colonnes ou une série d'enregistrements extraits d'une ou de plusieurs tables existantes, ou comme une combinaison d'une ou plusieurs vues et d'une ou de plusieurs tables. Basé sur ce point, avant de créer une vue, vous devez tout d'abord décider d'où ses colonnes et enregistrements proviennent. Évidemment le plus simple affichage est celui dont les colonnes et enregistrements proviennent d'une seule table.
Formation pratique : Présentation des vues
|
|
- Démarrez Microsoft SQL Server et connectez-vous au serveur.
Assurez-vous que vous disposez de la base de données
RealEstate2 créée dans la leçon précédente. Si vous ne les avez pas créées, faites-le maintenant.
Principes fondamentaux de la création de vues |
|
Création d'une vue visuellement |
|
Pour créer une vue, vous pouvez utiliser l'Explorateur d'objets, une fenêtre de requête, l'invite de commande ou Windows PowerShell. Avant de commencer la vue, il vous faudrait spécifier les tables qui pourraient être impliquées. Pour créer une vue à partir de l'Explorateur d'objets, vous pouvez étendre la base de données, cliquez avec le bouton droit de la souris sur les vues et cliquez sur Nouvelle vue... Ceci ouvrirait la boîte de dialogue Add Table :

Les fonctionnalités de base sont exactement les mêmes que nous avons vues dans leçon 13 :
- Pour spécifier la table qui serait utilisée comme source, vous pouvez cliquer dans la zone de liste de la page de propriétés de Tables
- Si vous utiliserez une autre vue existante, à partir de la page de propriété de vues, vous pouvez cliquer sur le nom de la vue souhaitée
- Si une fonction serait utilisée pour générer les enregistrements, vous pouvez la rechercher dans la page de propriétés de fonctions. Après avoir sélectionné l'objet source, vous pouvez soit double-cliquer dessus ou vous pouvez cliquer dessus une fois et cliquez sur Add. Dans la leçon précédente, nous avons vu que vous pourriez ajouter plus d'une table existante. De la même façon, vous pouvez ajouter plus d'une vue ou fonctions
- Après la sélection de (s) la source (s), vous pouvez cliquer sur Fermer dans la boîte de dialogue Add Table
Après avoir sélectionné les objets, comme nous l'avons vu dans la leçon précédente, ils afficheraient dans la fenêtre. La barre d'outils du Concepteur de vue pourrait être ajoutée :

Si le concepteur de requêtes n'est pas visible, dans le menu principal, vous pouvez cliquer sur View->Toolbars-> Query Designer. Alternativement, vous pouvez cliquer avec le bouton droit sur n'importe quelle barre d'outils ou le menu principal et cliquez sur Concepteur de requêtes.
La fenêtre dans laquelle vous créez une vue affiche quatre sections. Cela signifie que, outre les trois sections que nous avons examinées dans la leçon 13, il y a une nouvelle section : le résultat. Chaque section est représentée dans la barre d'outils du Concepteur de requêtes par un bouton : le bouton Show Diagram Pane , le bouton Show Criteria Pane , le bouton Show SQL Pane et le bouton Show Result Pane .
Nous avons déjà passé en revue les trois principales sections (leçon 13). Les résultats de la section affiche le résultat produit par l'instruction SQL lorsqu'il est exécuté
Si vous ne souhaitez pas qu'une section particulière ou si vous souhaitez masquer certaines sections, vous pouvez cliquez avec le bouton droit de la souris n'importe où dans le tableau, placez la souris sur le volet et cliquez sur le nom de la section. Pour masquer une section quelconque, vous pouvez cliquer avec le bouton droit de la souris n'importe où dans la fenêtre, positionnez la souris sur Afficher les volets et cliquez sur l'une des sélections :

Lors de l'affichage d'une section, son option de menu est entourée.
- Comme dans la leçon précédente, si vous utilisez plusieurs tables et elles ne sont pas (encore) liées, vous pouvez faire glisser une colonne d'une table et la déposer sur une autre table pour créer une jointure entre elles.
- Comme nous l'avons vu dans les leçons précédentes, pour sélectionner une colonne, vous pouvez cliquer sur la case correspondante dans la liste supérieure. Ce serait l'afficher dans la première zone vide dans la colonne de la colonne et ajouterait son nom à l'instruction SELECT. Vous pouvez également cliquer sur une zone vide dans la colonne de la colonne pour révéler sa zone de liste déroulante, puis cliquez sur la flèche de la zone de liste déroulante et sélectionnez la colonne souhaitée dans la liste
- Après avoir sélectionné la colonne, sa case pourrait être vérifiée dans la partie supérieure de la fenêtre, son nom s'affiche dans la colonne de la colonne et elle pourrait être ajoutée à l'instruction SELECT. Si vous connaissez le nom de la colonne que vous souhaitez ajouter, vous pouvez le saisir manuellement dans l'instruction SELECT.
La structure d'une vue peut être considérée comme complète lorsque l'instruction SELECT est aussi complète que possible. À tout moment, pour tester les résultats d'une vue, vous pouvez l'exécuter.Pour le faire, vous pouvez cliquer sur le bouton Execute SQL . Cela entraînera la partie inférieure de l'affichage pour afficher les résultats de la requête. Voici un exemple :

Comme je l'ai déjà dit, l'une des raisons pour la création d'une vue est de pouvoir l'utiliser maintes et maintes fois. Pour atteindre cet objectif, la vue doit être enregistrée. Comme la plupart des objets dans SQL Server, une vue doit avoir un nom et il est enregistré dans son propre fichier. Pour enregistrer une vue à partir de la fenêtre d'affichage, vous pouvez cliquer sur le bouton Enregistrer de la barre d'outils. Vous pouvez aussi tenter de fermer la fenêtre. Vous serez alors invité à enregistrer. Lors de l'enregistrement d'une vue, vous devez lui donner un nom qui suit les règles et les suggestions de SQL.
Formation pratique : Création visuelle d' une vue
|
|
- Dans l'Explorateur d'objets, développez les bases de données et les nœuds de RealEstate2
- Cliquez avec le bouton droit de la souris sur Views, puis cliquez sur New View
- Dans la boîte de dialogue Add Table, double-cliquez sur PropertyTypes, Properties et Conditions
- Cliquez sur Fermer
- Dans le tableau PropertyTypes, faites glisser PropertyTypeID et déposez-le sur le champ PropertyTypeID de la table de propriétés
- A partir du tableau de Conditions, faites glisser ConditionID et déposez-le sur le champ ConditionID de la table de propriétés
- Sur les tables, sélectionnez les champs suivants : PropertyNumber, PropertyType, Condition, City, ZIPCode, Bedrooms, Bathrooms, FinishedBasement, Stories, YearBuilt et MarketValue
- Dans la section Critères, cliquez sur PropertyType et appuyez sur la touche Tab 6 fois. Dans son champ de filtre, tapez Single Family
- Appuyez sur la touche de tabulation et, dans son Or, tapez Townhouse
Dans nos leçons, voici les règles que nous utiliserons pour nommer nos vues :
- Un nom commence par une lettre. Exemples : n, act ou Second
- Après la première lettre, le nom aura des combinaisons de caractères de soulignement, de lettres et de chiffres. Des exemples sont n24, act_52_t
- Un nom n'inclut pas les caractères spéciaux tels que !, @, #, $, %, ^, &, ou *
- Un nom n'aura pas les espaces
- Si le nom est une combinaison de mots, chaque mot commencera par les majuscules. Exemples : DateHired, RealSport ou DriversLicenseNumber
Après avoir enregistré une vue, elle devient partie intégrante du nœud de Vues de sa base de données : un nœud serait créé pour elle et son nom s'affiche dans le nœud de vues de sa base de données.
Formation pratique : Enregistrement d'une vue
|
|
- Pour enregistrer la vue, sur la barre d'outils standard, cliquez sur le bouton Enregistrer
- Définissez le nom Homes puis cliquez sur le bouton OK.
- Fermez la fenêtre d'affichage
- Dans l'Explorateur d'objets, sous RealEstate2, cliquez avec le bouton droit de la souris sur Views et cliquez sur New View
- Dans la boîte de dialogue Add Table, double-cliquez sur PropertyTypes, Properties et Conditions
- Cliquez sur Fermer
- Dans le tableau PropertyTypes, faites glisser PropertyTypeID et déposez-le sur le champ PropertyTypeID de la table Properties
- A partir du tableau de Conditions, faites glisser ConditionID et déposez-le sur le champ ConditionID de la table de Properties
- Sur les tables, sélectionnez les champs suivants : PropertyNumber, PropertyType, Condition, City, ZIPCode, Bedrooms, Bathrooms et MarketValue
- Dans la section Critères, cliquez sur PropertyType. Appuyez sur Tab 3 fois et appuyez sur la barre d'espace pour supprimer la coche de son champ de sortie
- Appuyez sur la touche de tabulation 3 fois. Dans son champ de Filtre, tapez Condominiums et appuyez sur la touche Entrée
- Dans le menu principal, cliquez sur Fichier-> Enregistrer
- Définissez le nom de Condos puis cliquez sur le bouton OK.
- Fermez la fenêtre d'affichage
Pour créer par programmation une vue, vous utilisez la syntaxe SQL suivante :
CREATE VIEW ViewName
AS
SELECT Statement
Microsoft SQL Server peut générer du code squelette d'une vue pour vous. Pour l'utiliser, tout d'abord créez une fenêtre de requête vide. Affichez l'Explorateur de modèle. Dans l'Explorateur de modèle, développez le nœud d'affichage. À partir du nœud de la vue, faites glisser Create View et déposez-le dans la fenêtre de requête.
La création d'une vue commence avec l'expression CREATE VIEW suivie d'un nom. Le nom d'une vue suit les règles et les suggestions que nous avons examinées ci-dessus. Après le nom de la vue, utilisez le mot-clé AS pour indiquer que vous êtes prêt pour définir le mode d'affichage.
Parce qu'une vue est principalement une instruction SQL, elle est définie à l'aide d'une instruction SELECT, utilisant les mêmes règles que nous avons étudiées pour l'analyse des données. Voici un exemple d'une vue :
CREATE VIEW dbo.ListOfMen
AS
SELECT dbo.Genders.Gender,
dbo.Persons.FirstName, dbo.Persons.LastName
FROM dbo.Genders INNER JOIN dbo.Persons
ON dbo.Genders.GenderID = dbo.Persons.GenderID
WHERE (dbo.Genders.Gender = N'Male ');
GO
Après la création de l'instruction SQL qui définit la vue, vous devez exécuter l'instruction. Si à l'aide d'une fenêtre de requête, vous pouvez le faire en appuyant sur la touche F5. Une fois que l'instruction est exécutée, son nom est automatiquement ajouté au nœud de vues de sa base de données même si vous n'enregistrez pas son code.
Formation pratique : Création d'une vue
|
|
- Assurez-vous que vous disposez de la base de données BNS Yugo créée dans la Leçon13. Si vous ne l'avez pas créée, faites-le maintenant.
Dans l'Explorateur d'objets, cliquez avec le bouton droit sur YugoNationalBank, puis cliquez sur Nouvelle requête
- Pour créer un nouvel affichage, tapez le code suivant
Use YugoNationalBank ;
GO
CREATE VIEW PayrollPreparation
AS
SELECT dbo.Employees.EmployeeNumber,
dbo.Employees.LastName +', N'+
dbo.Employees.FirstName AS [Full Name],
dbo.Employees.HourlySalary,
dbo.TimeSheets.TimeSheetCode, dbo.TimeSheets.Week1Monday,
dbo.TimeSheets.Week1Tuesday, dbo.TimeSheets.Week1Wednesday,
dbo.TimeSheets.Week1Thursday, dbo.TimeSheets.Week1Friday,
dbo.TimeSheets.Week1Saturday, dbo.TimeSheets.Week1Sunday,
dbo.TimeSheets.Week2Monday, dbo.TimeSheets.Week2Tuesday,
dbo.TimeSheets.Week2Wednesday, dbo.TimeSheets.Week2Thursday,
dbo.TimeSheets.Week2Friday, dbo.TimeSheets.Week2Saturday,
dbo.TimeSheets.Week2Sunday
FROM dbo.Employees INNER JOIN dbo.TimeSheets
ON dbo.Employees.EmployeeNumber = dbo.TimeSheets.EmplNumber ;
GO
- Pour exécuter le code, appuyez sur la touche F5
- Supprimez le contenu de l'ensemble de la fenêtre d'affichage
Ouverture ou Exécution d'une vue |
|
Comme je l'ai déjà dit, une vue est une technique de sélection d'enregistrements à afficher ou à utiliser sur un nouveau. Après qu'une vue ait été créée, vous pouvez l'ouvrir. Vous disposez de deux options principales.
- Pour voir la structure d'une vue, telles que la (s) table (s) sur la/lesquelle (s) elle (s) est/sont fondée (s) et les relations, ni celles qui les composent, dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur la vue et cliquez sur Créer
- Pour voir le code SQL qui rend une vue, dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur la vue et cliquez sur Modifier
L'exécution d'une vue se compose de voir ses résultats. Pour ce faire, vous disposez de différentes options. Pour afficher les résultats d'une vue :
- Ouvrez une fenêtre de requête vide associée à la base de données qui contient la vue. Dans la fenêtre de requête, écrivez une instruction SELECT en utilisant les mêmes formules et règles que nous avons vues pour les tables. Voici un exemple :
- A partir de l'Explorateur d'objets, développez la base de données et ses vues de noeud. Cliquez avec le bouton droit de la souris sur le nom de la vue et cliquez sur Ouvrir l'affichage
Formation pratique : L'exécution d'une vue
|
|
- Dans l'Explorateur d'objets, sous RealEste2, développez des vues si nécessaire. Cliquez avec le bouton droit de la souris sur Condos, puis cliquez sur Ouvrir l'affichage
- Fermez la fenêtre d'affichage
- Dans l'Explorateur d'objets, cliquez avec le bouton droit sur YugoNationalBank, puis cliquez sur Nouvelle requête
- Pour exécuter la vue, dans la fenêtre d'affichage vide, tapez ce qui suit
USE YugoNationalBank
GO
SELECT PayrollPreparation.* FROM PayrollPreparation ;
GO |
- Pour exécuter l'affichage, appuyez sur la touche F5
- Supprimez le contenu de la fenêtre
Dans Transact-SQL, une vue est considérée comme un objet. En tant que tel, il peut être consulté, modifié ou supprimé. Comme n'importe quel objet régulier, une vue possède ses propres caractéristiques. Pour les consulter, vous pouvez cliquez avec le bouton droit de la souris sur la vue et cliquez sur Propriétés. Une boîte de dialogue View Properties apparaitrait. Elle peut vous donner des informations telles que le nom de la base de données à laquelle la vue appartient, la date de création de la vue, etc..
Formation pratique : Accès aux propriétés d'une vue
|
|
- Pour créer une autre vue, tapez ce qui suit :
--=============================================
--Database : YugoNationalBank
--View : TimeSheet
--=============================================
USE YugoNationalBank
GO
IF object_id(N'TimeSheet', N'V') IS NOT NULL
DROP VIEW dbo.TimeSheet
GO
CREATE VIEW dbo.TimeSheet
AS
SELECT EmplNumber, StartDate,
Week1Monday, Week1Tuesday, Week1Wednesday,
Week1Thursday, Week1Friday,
Week1Saturday, Week1Sunday,
Week2Monday, Week2Tuesday, Week2Wednesday,
Week2Thursday, Week2Friday, Week2Saturday,
Week2Sunday, notes
FROM TimeSheets ;
- Appuyez sur F5 pour exécuter l'instruction.
- Supprimez le contenu de la fenêtre
- Dans l'Explorateur d'objets, sous YugoNationalBank, cliquez avec le bouton droit de la souris sur Views et cliquez sur Actualiser
- Développez les vues si nécessaire. Cliquez avec le bouton droit de la souris sur TimeSheet, puis cliquez sur Properties
- Appuyez sur Echap pour fermer la boîte de dialogue Properties
Après qu'une vue a été créée, par vous ou par quelqu'un d'autre, vous pouvez trouver qu'elle a une colonne inutile, elle a besoin d'une colonne manquante, elle comprend des enregistrements inutiles ou certains enregistrements sont manquants. Heureusement, vous pouvez modifier la structure ou le code d'une vue. Ceci est appelé un avis de modification. Vous disposez de deux options principales :
- Pour modifier visuellement une vue, dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur la vue et cliquez sur Créer. À partir de la fenêtre d'affichage, vous pouvez ajouter ou supprimer des colonnes. Vous pouvez également modifier des options dans une des sections de la fenêtre. Après modification de l'affichage, enregistrez-le et fermez-le
- Pour modifier le code d'une vue, dans l'Explorateur d'objets, cliquez dessus avec le bouton droit de la souris et affichez les modifications. Après modification de code de l'affichage, vous pouvez l'enregistrer
- A Partir de l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur la vue, positionnez la souris sur Script View As-> ALTER to-> New Query Editor Window
La formule de base pour modifier une vue par programme est la suivante :
ALTER VIEW ViewName
AS
SELECT Statement
Vous démarrez l'altération avec l'expression ALTER VIEW suivie du nom de la vue. Après le nom de la vue, utilisez le mot-clé AS pour indiquer que vous êtes prêt à montrer le changement. Après le mot-clé AS, vous pouvez ensuite définir la vue comme bon vous semble. Par exemple, vous pouvez créer une instruction SELECT qui inclut une modification du code existant ou une instruction entièrement nouvelle.
Dans la vue que nous avons créée pour afficher une liste des hommes d'une table, nous avons inclus une colonne pour le sexe. Cette colonne est inutile ou redondante parce que nous savons déjà que la liste inclut uniquement des hommes. Voici un exemple de modification de l'affichage à supprimer (ou plutôt omettre) la colonne Gender de la table Persons :
ALTER VIEW dbo.ListOfMen
AS
SELECT dbo.Persons.FirstName, dbo.Persons.LastName
FROM dbo.Genders INNER JOIN dbo.Persons
ON dbo.Genders.GenderID = dbo.Persons.GenderID
WHERE (dbo.Genders.Gender = N'Male ') ;
Au lieu de modifier une vue, si vous le trouvez complètement inutile, vous pouvez la supprimer de sa base de données. Vous disposez de différentes options. Pour supprimer une vue :
- Dans l'Explorateur d'objets, dans une base de données, cliquez avec le bouton droit de la souris sur le nom de la vue et cliquez sur Supprimer. Vous aurez l'occasion de confirmer votre intention ou de changer d'avis
- Dans l'Explorateur d'objets, cliquez avec le bouton droit de la souris sur la vue, positionnez la souris sur Script View As-> DROP To-> New Query Editor Window
- Ouvrez une fenêtre de requête vide associée à la base de données qui possède l'affichage intempestif. Dans l'Explorateur de modèle, dans le nœud de la vue, faites glisser la vue et déposez-la dans la fenêtre de requête
La formule pour supprimer par programmation une vue est la suivante :
DROP VIEW ViewName
Sur le côté droit de l'expression DROP VIEW, entrez le nom de la vue indésirable et exécutez l'instruction. Vous ne serez pas averti avant que l'interprète supprime la vue.
L'Entrée de données avec une Vue |
|
Comme vu jusqu'à présent, une Vue est une liste d'enregistrements d'une table. Comme vous le pensez peut-être, la vue la plus simple est probablement la création à partir d'une seule table. Imaginez que vous avez une table d'employés et que vous souhaitez créer une vue qui répertorie uniquement leurs noms. Vous pouvez créer une vue comme suit :
CREATE VIEW dbo.EmployeesNames
AS
SELECT FirstName,
LastName,
LastName + ', N' + FirstName AS FullName FROM Persons ;
GO
Sur ce point de vue qui est basé sur une table, vous pouvez effectuer l'entrée de données, à l'aide de la vue, plutôt que de la table. Pour le faire, vous suivez les mêmes règles que nous avons examinées à la leçon 9. Voici un exemple :
INSERT INTO dbo.EmployeesNames(FirstName, LastName)
VALUES(N'Peter', N'Justice') ;
Si vous appliquez l'entrée de données à l'aide d'une vue, les données que vous fournissez sont saisies sur la table de base ; cela signifie que le tableau pourrait être mis à jour automatiquement. Basé sur cette fonctionnalité, vous pouvez créer une vue délibérément destinée à mettre à jour une table de sorte que, dans la vue, vous devrez inclure uniquement les colonnes qui doivent être mises à jour.
Pratique : Exécution de saisie de données à l'aide d'une vue
|
|
- Pour créer une fonction, nous utiliserons, entrerons le code suivant :
--= =================================================
--Database : YugoNationalBank
--Function : CreateTimeSheetCode
--Purpose : This function takes an employee number
-- and the start date of a time sheet.
-- Then it creates a unique number
-- in the format 0000000000000
-- The first 5 digits represent the
-- employee number,
-- the second 4 digits represent the year,
-- the 2 digits represent the month,
-- that last 2 digits represent the day
--==================================================
USE YugoNationalBank
GO
IF OBJECT_ID (N'dbo.CreateTimeSheetCode') IS NOT NULL
DROP FUNCTION dbo.CreateTimeSheetCode
GO
CREATE FUNCTION dbo.CreateTimeSheetCode(@EmplNbr nvarchar(6),
@dteStart datetime2)
RETURNS nvarchar(15)
AS
BEGIN
DECLARE @strMonth AS nvarchar(20);
DECLARE @strDay AS nvarchar(20);
DECLARE @iMonth AS int;
DECLARE @iDay AS int;
DECLARE @strTimeSheetCode nvarchar(20);
SET @iMonth = CONVERT(nvarchar(20), MONTH(@dteStart));
SET @iDay = CONVERT(nvarchar(20), DAY(@dteStart));
IF @iMonth < 10
SET @strMonth = CONVERT(nvarchar(20), YEAR(@dteStart)) +
'0' + CONVERT(nvarchar(20), @iMonth);
ELSE
SET @strMonth = CONVERT(nvarchar(20), YEAR(@dteStart)) +
CONVERT(nvarchar(20), @iMonth);
IF @iDay < 10
SET @strDay = @strMonth + '0' +
CONVERT(nvarchar(20), @iDay);
ELSE
SET @strDay = @strMonth + CONVERT(nvarchar(2), @iDay);
SET @strTimeSheetCode = @EmplNbr + @strDay;
RETURN @strTimeSheetCode;
END
GO
- Appuyez sur F5 pour exécuter
- Pour effectuer la saisie de données à l'aide d'une vue, entrez le code suivant :
USE YugoNationalBank
GO
-- The following code performs data entry using a view
INSERT INTO dbo.TimeSheet
VALUES(N'46288', N'1/1/2007',
0.00, 8.50, 9.50, 8.50, 9.00, 0.00, 0.00,
10.00, 9.50, 8.50, 10.50, 9.00, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'66286', N'1/1/2007',
0.00, 8.50, 6.50, 5.50, 6.50, 0.00, 0.00,
4.00, 6.00, 6.50, 6.00, 5.50, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'92493', N'1/1/2007',
0.00, 8.00, 9.00, 8.50, 9.50, 0.00, 0.00,
5.50, 6.50, 4.50, 6.00, 4.00, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'27199', N'1/15/2007',
6.00, 8.50, 0.00, 4.00, 6.50, 0.00, 0.00,
4.00, 0.00, 6.00, 4.00, 0.00, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'39538', N'1/15/2007',
8.00, 8.00, 6.00, 8.50, 6.00, 0.00, 0.00,
9.50, 10.50, 8.00, 8.00, 8.50, 0.00, 0.00,
'There were a few missing times in the time sheet. ' +
'They have been recorded.');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'40550', N'1/15/2007',
8.50, 8.00, 0.00, 8.50, 0.00, 0.00, 0.00,
6.00, 6.50, 6.50, 0.00, 4.00, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'66286', N'1/29/2007',
8.00, 6.50, 9.50, 8.00, 7.50, 0.00, 0.00,
10.50, 9.50, 8.50, 8.00, 10.00, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'90026', N'2/12/2007',
8.50, 6.50, 8.00, 8.00, 9.50, 0.00, 0.00,
9.50, 8.00, 8.50, 8.00, 8.00, 0.00, 0.00, N'');
GO
INSERT INTO dbo.TimeSheet
VALUES(N'92493', N'2/12/2007',
4.00, 6.50, 5.50, 8.00, 6.50, 0.00, 0.00,
8.00, 8.00, 8.00, 6.00, 8.00, 0.00, 0.00, N'');
GO
-- The following code updates a table using a function
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'46288', N'1/1/2007')
WHERE (EmplNumber = N'46288') AND (StartDate = N'1/1/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'66286', N'1/1/2007')
WHERE (EmplNumber = N'66286') AND (StartDate = N'1/1/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'92493', N'1/1/2007')
WHERE (EmplNumber = N'92493') AND (StartDate = N'1/1/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'27199', N'1/15/2007')
WHERE (EmplNumber = N'27199') AND (StartDate = N'1/15/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'39538', N'1/15/2007')
WHERE (EmplNumber = N'39538') AND (StartDate = N'1/15/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'40550', N'1/15/2007')
WHERE (EmplNumber = N'40550') AND (StartDate = N'1/15/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'66286', N'1/29/2007')
WHERE (EmplNumber = N'66286') AND (StartDate = N'1/29/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'90026', N'2/12/2007')
WHERE (EmplNumber = N'90026') AND (StartDate = N'2/12/2007');
GO
UPDATE dbo.TimeSheets
SET TimeSheetCode = dbo.CreateTimeSheetCode(N'92493', N'2/12/2007')
WHERE (EmplNumber = N'92493') AND (StartDate = N'2/12/2007');
GO
- Appuyez sur F5 pour exécuter
- Supprimer le contenu de la fenêtre
Une vue avec des noms d'alias |
|
Il est important de savoir qu'une vue est plus d'un type de table, que n'importe quel autre objet. Cela signifie qu'une vue n'est pas une fonction, mais elle peut utiliser une fonction. L'argument de mot ici signifie uniquement que certaines valeurs peuvent être transmises à une vue mais ces valeurs peuvent être spécifiées uniquement lors de la création de la vue. Elles ne sont pas de vrais arguments.
Lors de la structuration d'une vue, vous pouvez créer des espaces réservés pour les colonnes et les transmettre dans les parenthèses de la vue. Cela s'effectuerait comme suit :
CREATE VIEW CarIdentifier([Tag #], Manufacturer, [Type of Car], Available)...
Si vous utilisez cette technique, les noms transmis dans les parenthèses de la vue sont les légendes qui s'affichent au lieu des colonnes de la vue. Cette technique vous permet de spécifier les chaînes de votre choix pour les colonnes. Si vous souhaitez une en-tête de colonne pour afficher le nom réel de la colonne, écrivez le même. Dans le cas contraire, vous pouvez utiliser n'importe quelle chaîne souhaitée pour la colonne. Si le nom est en un mot, vous pouvez le taper. Si le nom contient des mots différents, incluez-les entre un crochet d'ouverture "[" et un crochet fermant"]".
Après avoir énuméré les chaînes nécessaires comme les légendes des colonnes, dans votre instruction SELECT de la vue, vous devez utiliser le même nombre exact de colonnes comme le nombre d'arguments de la vue. En fait, chaque colonne de votre instruction SELECT doit correspondre à un argument du même ordre.
Voici un exemple :
CREATE VIEW dbo.MenAndWomen([First Name], [Last Name], Gender)
AS
SELECT dbo.Persons.FirstName,
dbo.Persons.LastName,
dbo.Genders.Gender
FROM dbo.Genders INNER JOIN dbo.Persons
ON dbo.Genders.GenderID = dbo.Persons.GenderID ;
GO
Car, comme nous l'avons déjà dit, une vue n'est pas une fonction et les valeurs passées à la vue ne sont pas des arguments réels, lors de l'exécution de la vue, ne spécifiez pas le nom des arguments. Créez simplement une instruction SELECT et spécifiez le nom de la vue comme la source. Voici un exemple :

Vues et requêtes conditionnelles |
|
Outre ses caractéristiques d'interrogation lui permettant d'effectuer une analyse de données, probablement la plus importante fonction d'une requête est sa capacité à être aussi complexe que possible grâce à la gestion des instructions conditionnelles. Il est ainsi possible d'utiliser une vue au lieu d'une table dans les opérations et les expressions qui compliquent le code ou la structure d'une table. Lorsque vous créez une vue, dans sa déclaration SELECT, vous pouvez effectuer des sélections de colonne, les commander et définir des critères pour exclure certains enregistrements.
Voici un exemple :

Pour créer des vues plus complexes ou avancées, vous pouvez impliquer des fonctions. Comme toujours, probablement les fonctions les plus faciles à utiliser sont celles intégrées.
S'il n'y a aucune fonction intégrée qui effectue l'opération que vous souhaitez, vous pouvez créer votre propre fonction. Voici un exemple :
USE People ;
GO
CREATE FUNCTION dbo.GetFullName
(
@FName type nvarchar (20),
@LName type nvarchar (20)
)
RETURNS nvarchar(41)
AS
BEGIN
RETURN @LName + ', N' + @ FName ;
END
GO
Une fois que vous avez une fonction que vous souhaitez utiliser, vous pouvez l'appeler dans le corps de votre vue comme vous le jugez nécessaire. Voici un exemple :
CREATE VIEW dbo.MyPeople
AS
SELECT dbo.GetFullName (FirstName, LastName) AS [Full Name],
dbo.Genders.Gender
FROM Genders INNER JOIN dbo.Persons
ON dbo.Genders.GenderID = dbo.Persons.GenderID ;
Cela donnerait :
Formation pratique: Utilisation d'une fonction dans une vue
|
|
- Dans l'Explorateur d'objets, sous YugoNationalBank, développez Views si nécessaire.
Cliquez avec le bouton droit de la souris sur PayrollPreparation, positionnez la souris sur Script View As-> ALTER to-> New Query Editor Window
- Modifiez le code comme suit :
USE [YugoNationalBank]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER VIEW [dbo].[PayrollPreparation]
AS
SELECT dbo.Employees.EmployeeNumber,
dbo.Employees.LastName + ', N' +
dbo.Employees.FirstName AS [Full Name],
dbo.Employees.HourlySalary,
dbo.TimeSheets.TimeSheetCode, dbo.TimeSheets.Week1Monday,
dbo.TimeSheets.Week1Tuesday, dbo.TimeSheets.Week1Wednesday,
dbo.TimeSheets.Week1Thursday, dbo.TimeSheets.Week1Friday,
dbo.TimeSheets.Week1Saturday, dbo.TimeSheets.Week1Sunday,
dbo.TimeSheets.Week2Monday, dbo.TimeSheets.Week2Tuesday,
dbo.TimeSheets.Week2Wednesday, dbo.TimeSheets.Week2Thursday,
dbo.TimeSheets.Week2Friday, dbo.TimeSheets.Week2Saturday,
dbo.TimeSheets.Week2Sunday,
CAST(dbo.TimeSheets.Week1Monday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Tuesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Wednesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Thursday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Friday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Saturday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Sunday AS SmallMoney)
AS [Total Week1],
CAST(dbo.TimeSheets.Week2Monday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Tuesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Wednesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Thursday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Friday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Saturday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Sunday AS SmallMoney)
AS [Total Week2],
CAST(dbo.TimeSheets.Week1Monday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Tuesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Wednesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Thursday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Friday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Saturday AS SmallMoney) +
CAST(dbo.TimeSheets.Week1Sunday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Monday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Tuesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Wednesday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Thursday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Friday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Saturday AS SmallMoney) +
CAST(dbo.TimeSheets.Week2Sunday AS SmallMoney)
AS [Total Time Sheet]
FROM dbo.Employees INNER JOIN dbo.TimeSheets
ON dbo.Employees.EmployeeNumber = dbo.TimeSheets.EmplNumber;
- Pour mettre à jour la requête, dans le menu principal, cliquez sur Query-> Execute
- Supprimer le contenu de la fenêtre
- Pour voir le résultat de la requête, tapez ce qui suit :
Use YugoNationalBank
GO
USE YugoNationalBank
GO
PayrollPreparation.*
SELECT FROM PayrollPreparation ;
GO
- Supprimez le contenu de la fenêtre
|
|