DevInformatique Ralis par HACHIMI SAFAE MODULE N 16
- Slides: 28
Dev-Informatique Réalisé par : HACHIMI SAFAE
MODULE N° 16 : SYSTÈME DE GESTION DE BASE DE DONNÉES II (SGBD 2) CHAPITRE 2 : INSTRUCTION( DÉCLARATION , AFFICHAGE , AFFECTATION ) I-LES VARIABLES : 1. IDENTIFIANT : § Les identifiants (nom des objets) SQL : o Ne peuvent dépasser 128 caractères o Ils doivent commencer par une lettre ou un "underscore". underscore o Les caractères spéciaux et le blanc ne sont pas admis. o On se contentera d'utiliser les 37 caractères de base : ['A'. . 'Z', '0'. . '9', '_'] o La casse n'a pas d'importance. o Le symbole @ commence le nom de toute variable o Le symbole dédoublé @@ commence le nom des variables globales du SGBDR. o Le symbole # commence le nom de toute table temporaire (utilisateur) REMARQUE : Par convention les noms des variables doivent toujours être précédés du symbole @
2 -DÉCLARATION DES VARIABLES LOCALES : § SYNATAXE GÉNARALE : DECLARE @NOM_VARIABLE TYPE_DONNÉE Le caractère @ est obligatoire § EXEMPLE : DECLARE @MAVARIABLE INT § DÉCLARATION MULTIPLE : DECLARE @VAR 1 TYPE 1, @VAR 2 TYPE 2 § EXEMPLE : DECLARE @X INT, @Y INT, @Z CHAR ATTENTION : DECLARE @X , @Y INT EST INCORRECTE
II-AFFECTATION : § SYNTAXE : SELECT @NOM_VARIABLE = VALEUR SELECT @NOM_VARIABLE = (SELECT. . . FROM. . . WHERE) OU SET @NOM_VARIABLE = VALEUR SET @NOM_VARIABLE = (SELECT. . . FROM. . . WHERE) EXEMPLE 1 : SELECT @I=3 SET @J=4 SELECT @STR='TSDI' § AFFECTATION MULTIPLE : SELECT @I=3, @J=4, @STR='TSDI' EST CORRECTE § ATTENTION : SET @I=3, @J=4, @STR='TSDI' EST UNE AFFECTATION INCORRECTE.
EXEMPLE 2: DECLARE @A SELECT @A=1 ----- AFFECTE LA VALEUR 1 À LA VARIABLE @A------SELECT @A=(SELECT COUNT(NUMART) FROM ARTICLE) ----- AFFECTE LE NOMBRE D'ARTICLES ENREGISTRÉS DANS LA TABLE ARTICLE À LA VARIABLE @A DECLARE @B SELECT @B='TABLE POUR ORDINATEUR' -- AFFECTE LA VALEUR 'TABLE POUR ORDINATEUR' À LA VARIABLE @B
EXEMLPE 3 : VARIABLE DE TYPE TABLE : DECLARE @STG TABLE( NUM INT PRIMARY KEY, NOM VARCHAR(20), PRENOM VARCHAR(20), MOYENNE NUMERIC(4, 2)) /*LA PARTICULARITÉ DES VARIABLES DE TYPE TABLE, TABLE EST QU’ON PEUT UTILISER DES COMMANDES INSERT, SELECT, UPDATE, DELETE */ INSERT INTO @STG VALUES(103, ‘HA', 'SALAH', 14) INSERT INTO @STG VALUES(107, ‘EL ALLAOUI', ‘ALI', 14. 5) INSERT INTO @STG VALUES(200, ‘FALAH', 'SANAA', 12. 5) SELECT * FROM @STG SELECT AVG(MOYENNE) FROM @STG UPDATE @STG SET NOM=‘HACHIMI’ WHERE NUM = 103 DELETE FROM @STG WHERE NUM = 200
EXEMPLE 4 : CREATE TYPE MONTYPE DECLARE @T MONTYPE AS TABLE( ID INT PRIMARY KEY , CH CHAR(40)) INSERT INTO @T SELECT *FROM CLIENT
III-L'AFFICHAGE DES INFORMATIONS: 1 -AFFICHAGE DES VALEURS : § Pour afficher le contenu d’une variable on utilise la même instruction select. SELECT @I § AFFICHAGE MULTIPLE : SELECT @I, @J, @STR REMARQUE : § On peut utiliser select pour affecter une valeur ou bien pour afficher une autre, mais pas pour faire les deux, donc l’instruction SELECT @I=20, @STR EST INCORRECTE.
2 -AFFICHAGE AVEC PRINT : SYNTAXE : PRINT ‘CHAINE DE CARACTÈRE’ Et dons l’analyseur de requête SQL on a deux sortie d’affichage Messages POUR PRINT ET TABLE POUR SELECT EXEMPLE 1: Soient @a et @b des variables de type Chaîne de caractères, @c et @d des variables de type entier PRINT 'BONJOUR' ------- AFFICHE LE TEXTE BONJOUR PRINT @A ------- AFFICHE LA VALEUR DE @A PRINT @C ------- AFFICHE LA VALEUR DE @C PRINT @C + @D ------- AFFICHE LA SOMME DES VARIABLES @C ET @D
EXEMPLE 2 : SELECT * FROM Client
3 -VARIABLES LOCALES : o UTILISATIONS o COMPTEUR dans une boucle o VALEUR DE RETOUR des procédures stockées o PARAMÈTRES d’entrée et de sortie des procédures 4 -VARIABLES DE TYPE TABLE : § Les variables de type Table peuvent apparaître dans les « SELECT » , « UPDATE » , « DELETE » , « INSERT » et « DECLARE CURSOR » § Les variables de type Table ont une portée locale (elles sont donc différentes des tables temporaires)
5 -VARIABLES DE TYPE TABLE / TABLES TEMPORAIRES : § Les variables DE TYPE TABLE sont différentes des tables temporaires : q Création d’une table temporaire locale : o Create table #t 1(id int null) select id from #t 1 o Cette table n’est accessible qu’à son créateur o Obligation d’utiliser le # pour les tables temporaires q Elles ont une durée de vie limitée à la durée de la connexion § Utilisation dans le select…. . Into § Select * into #My. Authors from Authors. Cette commande crée une table temporaire #My. Authors ayant le même contenu que la table Authors
6 -VARIABLES GLOBALES : o Elles sont affectées directement par le serveur. o Elles retournent une seule valeur. SYNTAXE : § Elles sont notées @@variable SELECT @@VERSION EXEMPLE : @@ERROR : le type d’erreur survenu lors de la dernière instruction @@IDENTITY : la dernière valeur attribuée automatiquement @@ROWCOUNT : le nombre de lignes affectées par la dernière instruction
6 -VARIABLES "SYSTÈME" VARIABLE GLOBAL : § SQL Server défini un grand nombre de "variables système" système c'est à dire des variables définies par le moteur. En voici quelques unes :
IV-LES FONCTIONS INTÉGRÉES : § On présente les principaux fonctions intégrées proposées par SQL Server, aussi sous des formes similaires sinon identiques sous les principaux SGBDR du marché : o FONCTIONS DE CONVERSION o FONCTIONS DE TRAITEMENT DE CHAÎNES o FONCTIONS DE MANIPULATION DE DATES o QUELQUES FONCTIONS INTÉGRÉES § SQL server propose de nombreuses fonctions intégrées qui permettent de manipuler des données utilisateurs ou des données du système
1 -FONCTIONS DE CONVERSION : § Certaines conversions ne peuvent être automatiquement réalisées par le système. § Nous devons alors réaliser ces conversions de manière explicite au moyen des fonctions de conversion. o CAST(expression AS data_type[(length)]) o CONVERT(data_type[(length)], expression [, style]) EXEMPLE : SELECT CONVERT(DATETIME, '10 -14 -2011', 110) AS "Date au Format USA’’ SELECT CONVERT(VARCHAR(40), GETDATE(), 110) AS "Date au Format USA"
SELECT CONVERT(DECIMAL(10, 3), SUM(prix)) AS "TOTAL CA Net" FROM affectevol SELECT CAST(GETDATE() AS VARCHAR(40)) AS “Date Texte”
2 -FONCTIONS DE TRAITEMENT DE CHAÎNES : § Quelques exemples dans ce tableau car elles sont nombreuses § Voir aide à l’index fonctions, chaîne
EXEMPLE : SELECT LEN('Bonjour')AS[Longueur] , UPPER('bonjour')AS[Majuscule] , LOWER('BONJOUR')AS[Miniscule] SELECT LTRIM(' Bonjour')AS[LEFT] , RTRIM('bonjour')AS[RIGHT] SELECT LEFT('Bonjour', 3)AS[LEFT_caractere] , RIGHT('Bonjour', 4)AS[RIGHT_caractere] SELECT SUBSTRING('Bonjour', 2, 3)AS[Positionnement] SELECT ASCII('C')AS[Convertation] , NCHAR('67')AS[Convertation] SELECT REPLACE('Bonjour', 'soir')AS[Rempalcer] , REVERSE('Bonjour')AS[Inverser] /*Liste des noms des clients formatés. Le premier caractère de gauche est mis en majuscules, majuscules Les autres caractères en minuscules*/ minuscules SELECT Upper(Substring(Nom, 1, 1)) + Lower(Substring(Nom, 2, Len(Nom)-1)) FROM Client
3 -FONCTIONS DE MANIPULATION DE DATES : § FONCTIONS INTÉGRÉES PERMETTANT DE MANIPULER DES VALEURS DE TYPE DATETIME.
EXEMPLE 1 : SELECT GETDATE()AS[DATE_ACTUELLE], SYSDATETIME()AS[Date_Syteme], GETUTCDATE()AS[DATE_AA] SELECT DAY(GETDATE())AS[JOUR], MONTH(GETDATE())AS[MOIS], YEAR(GETDATE())AS[ANNEE] SELECT DATEPART(DAY, GETDATE())AS[JOUR_A], DATEPART(MONTH, GETDATE())AS[MOIS_A] SELECT DATEPART(HOUR, GETDATE())AS[HEURE_A], DATEPART(YEAR, GETDATE())AS[ANNEE_A] SELECT DATENAME(DAY, GETDATE())AS[JOUR_N], DATENAME(MONTH, GETDATE())AS[MOIS_N] SELECT DATENAME(YEAR, GETDATE())AS[ANNEE_N] SELECT DATENAME(WEEKDAY, GETDATE())AS[Jour. Semaine]
EXEMPLE 2 : SELECT DATEADD(DAY, 12, GETDATE())AS[AJOUTERJOUR] SELECT DATEADD(MONTH, 3, GETDATE())AS[AJOUTERJOUR] SELECT DATEADD(YEAR, 2, GETDATE())AS[AJOUTERJOUR] SELECT DATEADD(HOUR, 21, GETDATE())AS[HEURE] SET DATEFORMAT DMY SELECT DATEDIFF(DAY, GETDATE(), '23/04/2017')AS[DIFF_JOUR] SELECT DATEDIFF(MONTH, GETDATE(), '12/12/2018')AS[DIFF_MOIS] SELECT DATEDIFF(YEAR, '22/02/2015', GETDATE())AS[DIFF_ANNEE]
/***NOMBRE DE JOURS ENTRE LA DATE DE NAISSANCE ET LA DATE DU JOUR. ***/ SELECT NOM, DATEDIFF(DAY, DATE_NAISSANCE, GETDATE()) as "Nombre jours depuis Naissance" FROM Client /***EXTRAIT DE LA DATE DE NAISSANCE AVEC DATEPART ET DATENAME****/ SELECT DATEPART(MONTH, DATENAISSANCE) AS[Mois de la date naissance], DATENAME(MONTH, DATENAISSANCE) AS[nom de mois de la date naissance] FROM Client
DEV-INFORMATIQUE MERCI POUR VOTRE ATTENTION
- Tom ralis
- Thermorégulation
- Dr ralis
- Kupolveida kapenes mikēnās
- C device module module 1
- Par storage
- Aktivitelerin par değerleri
- Bac pro commerce par correspondance
- Langkah-langkah par
- Que es el efecto del par inerte
- Par stock
- Ogļūdeņražu klasifikācija un homologu rindas
- Jsus
- Nexum
- Toda base negativa elevado a un exponente impar dará
- Soudage électrique par résistance
- Moodle.par
- Ilahi teri chokhat by junaid jamshed
- Bcps teacher evaluation
- Principe dosage en retour
- Jesus par ton sang precieux enleve mon iniquite
- Dieu vivant dieu très haut
- L'amour vu par les enfants
- Méthode d'appariement par score de propension
- Observe os pares ordenados
- Seigneur par la clarté de ton amour
- Domugraudi par tēti
- Allez par toute la terre annoncer l'évangile aux nations
- Direkt kalorimetre