Cours 2 : Gestion des tables AM1 1. Identifiant Tous les éléments créés dans SQ

Cours 2 : Gestion des tables AM1 1. Identifiant Tous les éléments créés dans SQL Server sont parfaitement identifiés par leur nom qui est utilisé en tant qu’identifiant. En effet, deux objets de même type ne peuvent pas avoir le même nom s’ils sont définis au même niveau. Par exemple, sur une instance de SQL Server, il n’est pas possible d’avoir deux bases de données avec le même nom, par contre, c’est totalement possible si les bases sont définies sur deux instances distinctes de SQL Server. De même, au sein d’une base de données, il n’est pas possible d’avoir deux tables avec le même nom. C’est à partir de l’identifiant qu’il est possible de manipuler via le SQL les objets. Il est donc important de définir correctement ces identifiants. Les identifiants sont composés de 1 à 128 caractères. Ils commencent toujours par une lettre ou l’un des caractères suivants : _, @, #. Les caractères suivants sont des caractères alphanumériques. Bien entendu aucun identifiant ne peut correspondre à un mot clé du Transact SQL. Il existe deux catégories d’identifiants : les réguliers et les délimités. Les identifiants réguliers Cette catégorie d’identifiant est la plus communément utilisée et c’est celle à privilégier. En effet, ce type d’identifiant est présent dans toutes les bases et présente beaucoup de souplesse au niveau de l’écriture des requêtes car la casse n’est pas conservée. Exemple : ENIEditions, RessourcesInformatiques Les identifiants délimités Cette catégorie d’identifiant permet de conserver des caractères spéciaux dans les identifiants comme les caractères accentués, les espaces,… mais également de conserver la casse. Ces identifiants sont utilisés entre des crochets [] ou bien des guillemets "". L’utilisation de ce type d’identifiant ne permet que rarement de gagner en clarté car l’écriture des requêtes est plus lourde. Il est donc préférable d’utiliser des identifiants réguliers. Exemple : [ENI éditions], "Ressources Informatiques", ... 2. Les types de données Lors de la définition d’une colonne, on précisera le format d’utilisation de la donnée ainsi que le mode de stockage par le type de la colonne. a. Types de données système Ces types sont disponibles pour toutes les bases de données en standard. Caractères char[(n)] Chaîne de caractères de longueur fixe, de n caractères maximum. Par défaut 1, maximum 8000. varchar(n|max) Chaîne de caractères à longueur variable, de n caractères maximum. Par défaut 1, maximum 8000 caractères. En précisant max, la variable peut contenir des données de type texte allant jusqu’à 231 caractères. nchar[(n)] Chaîne de caractères unicode, maximum 4000 caractères. nvarchar (n|max) Chaîne de caractères unicode, maximum 4000. En précisant max, la variable peut contenir des données de type texte allant jusqu’à 231 octets. Numériques decimal [(p[,d])] Numérique exact de précision p (nombre de chiffres total), avec d chiffres à droite de la virgule. p est compris entre 1 et 38, 18 par défaut. d est compris entre 1 et p, 0 par défaut. Exemple : Pour décimal (8,3) l’intervalle admis sera de 99999,999 à +99999,999. Les valeurs sont gérées de 1038 à 1038 1. numeric [(p[,d])] Identique à decimal. Pour le type decimal, la précision pourra être parfois plus grande que celle requise. bigint Type de données entier codé sur 8 octets. Les valeurs stockées avec ce type de données sont comprises entre 263 (9 223 372 036 854 775 808) et 2631 (9 223 372 036 854 775 807). Cours 2 : Gestion des tables AM2 int Nombre entier entre 231 (2147783648) et +231 1 (+2147483647). Le type de données int est spécifique SQL Server et son synonyme integer est quant à lui compatible ISO. smallint Nombre entier entre 215 (32768) et 215 1 (+32767). tinyint Nombre entier positif entre 0 et 255. float[(n)] Numérique approché de n chiffres, n allant de 1 à 53. real Identique à float(24). money Numérique au format monétaire compris entre 922 337 203 685 477, 5808 et +922 337 203 685 477, 5807 (8 octets). Smallmoney Numérique au format monétaire compris entre 214 748,3648 et +214 748,3647 (4 octets). Binaires binary[(n)] Donnée binaire sur n octets (1 à 255), la longueur est fixe. varbinary (n|max) Donnée binaire de longueur variable de n octets (1 à 8000). L’option max permet de réserver un espace de 231, octets au maximum. Date Pour la gestion des données de types date et heure SQL Server 2008 propose de nouveaux types de données afin d’optimiser le stockage des données. Ces nouveaux types de données sont introduits pour permettre une gestion plus fine des données de types date et heure. Tout d’abord, il existe des types particuliers pour stocker les données de type heure et d’autres types pour stocker les données de type date. Cette séparation est bénéfique car elle permet de donner plus de précision tout en limitant l’espace utilisé par les données de tel ou tel type. Par exemple, est il nécessaire de conserver des données de type heures, minutes et secondes lorsque seule la date de naissance d’un client doit être conservée ? Sans aucun doute, non. Le simple fait de conserver ces informations peut induire des erreurs lorsque par la suite des calculs vont être faits. Il est donc plus raisonnable et plus performant d’adopter pour cette donnée, un type qui ne conserve que la date. Ces nouveaux types de données, pour les données de type date et heure, vont également permettre une meilleure compatibilité avec les autres systèmes de gestion de données et faciliter les opérations de reprise de données. Bien entendu SQL Server offre la possibilité avec les types datetime2 et datetimeoffset de conserver des informations de type date et heure de façon simultanée. Le type datetimeoffset permet non seulement de stocker des informations de type date et heure avec une précision pouvant aller jusqu’à 100 nanosecondes, mais en plus c’est l’heure au format UTC qui est conservée ainsi que le décalage (en nombre d’heures) entre cette heure UTC et la zone horaire depuis laquelle travaille l’utilisateur qui introduit les informations dans la base. datetime Permet de stocker une date et une heure sur 8 octets. 4 pour un nombre de jours par rapport au 1er janvier 1900, 4 pour un nombre de millisecondes après minuit. Les dates sont gérées du 1er janvier 1753 au 31 décembre 9999. Les heures sont gérées avec une précision de 3,33 millisecondes. smalldatetime Permet de stocker une date et une heure sur 4 octets. Les dates sont gérées du 1er janvier 1900 au 6 juin 2079, à la minute près. datetime2 Plus précis que le type datetime, il permet de stocker une donnée de type date et heure comprise entre le 01/01/0001 et le 31/12/9999 avec une précision de 100 nanosecondes. datetimeoffset Permet de stocker une donnée de type date et heure comprise entre le 01/01/0001 et le 31/12/9999 avec une précision de 100 nanosecondes. Les informations horaires sont stockées au format UTC et le décalage horaire est conservé afin de retrouver l’heure locale renseignée initialement. Cours 2 : Gestion des tables AM3 date Permet de stocker une date comprise entre le 01/01/0001 et le 31/12/9999 avec une précision d’une journée. time Permet de stocker une donnée positive de type heure inférieure à 24h00 avec une précision de 100 nanosecondes. Spéciaux bit Valeur entière pouvant prendre les valeurs 0, 1 ou null. timestamp Donnée dont la valeur est mise à jour automatiquement lorsque la ligne est modifiée ou insérée. uniqueidentifier Permet de créer un identificateur unique en s’appuyant sur la fonction NEWID(). sql_variant Le type de données sql_variant permet de stocker n’importe quel type de données à l’exception des données de type text, ntext, timestamp et sql_variant. Si une colonne utilise ce type de données, les différentes lignes de la table peuvent stocker dans cette colonne des données de type différent. Une colonne de type sql_variant peut posséder une longueur maximale de 8016 octets. Avant d’utiliser une valeur stockée au format sql_variant dans une opération, il est nécessaire de convertir les données dans leur format d’origine. Les colonnes utilisant le type sql_variant peuvent participer à des contraintes de clés primaires, de clés étrangères ou d’unicité, mais les données contenues dans la clé d’une ligne ne peuvent excéder les 900 octets (limite imposée par les index). sql_variant ne peut pas être utilisé dans les fonctions CONTAINSTABLE et FREETEXTTABLE. xml Ce type permet de stocker un document xml dans une colonne au sein d’une table relationnelle. Remarque : Les types text, ntext et images sont maintenus pour des raisons de compatibilité. Il faut maintenant leur préférer varchar(max) et varbinary(max). SQL Server propose également un certain nombre de synonymes par rapport à ses propres types de base. Les synonymes sont souvent présents pour assurer la compatibilité avec le standard ISO. b. Types de données définis par l’utilisateur Il est possible de définir ses propres types de données, soit par l’intermédiaire de Management Studio, soit par la commande CREATE TYPE. Cours 2 : Gestion des tables AM4 Syntaxe (création) CREATE TYPE nomType {FROM typeDeBase [ ( longueur [ , precision ] ) ] [ NULL | NOT NULL ] | EXTERNAL NAME nomAssembly [ .nomClasse] } uploads/Management/cours2-gestion-des-tables.pdf

  • 22
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jan 31, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 0.8473MB