Getsuyodev, Programming is mainly used when constructing an application. Programming requires knowledge of application domains, algorithms, and programming language expertise. Programming can be developed in different logic based on developer knowledge.

SGBD – SQL Création et Gestion de Tables

Système de gestion de base de données



Introduction:

Ce document vous propose d’apprendre à utiliser un sous-ensemble du langage SQL, le LDD pour créer et modifier des objets de base de données, en particulier les tables: *

  • Créer des tables
  • Décrire les différents types de données utilisables pour les définitions de colonne
  • Modifier la définition des tables
  • Supprimer, renommer et tronquer une table

Objets d’une base de données:

Règles de dénomination:

  • Nommez les tables et colonnes de votre base de données en suivant les règles de dénomination applicables à tous les objets d’une base de données SQL Server.
  • Les noms de tables et de colonnes doivent commencer par une lettre et peuvent comprendre de 1 à 255 caractères.
  • Les noms ne doivent pas contenir d’autres caractères que les caractères A à Z, a à z, 0 à 9, _ (trait de soulignement), $ et # (caractères autorisés, mais déconseillés). Les noms peuvent comporter des espaces mais cela n’est pas conseillé car il faudra alors utiliser les [] pour délimiter le nom des objets.
  • Les noms ne doivent pas être utilisés pour nommer plusieurs objets appartenant au même utilisateur.
  • Ces noms ne doivent pas être des mots réservés à SQL Server.

Conseils:

  • Les Utilisez des noms signifiants.
  • Utilisez une dénomination uniforme pour des entités identiques appartenant à des tables différentes. Par exemple, la colonne numéro du département s’appelle DEPTNO dans la table EMP et dans la table DEPT.
  • Remarque : les majuscules et minuscules ne sont pas différenciées dans les noms. Par exemple, EMP est identique à eMP ou eMp. D’une manière générale, SQL server n’est pas sensible à la casse des caractères.
Un nom :
  • Doit commencer par une lettre
  • Peut comporter de 1 à 249 caractères
  • Ne peut contenir que les caractères A à Z, a à z, 0 à 9, (_, $, et #, et espaces déconseillés)
  • Ne doit pas porter le nom d’un autre objet appartenant au même utilisateur
  • Ne doit pas être un mot réservé SQL Server

L’ordre CREATE TABLE:

Créer des tables pour stocker des données en utilisant l’ordre SQL CREATE TABLE.  

Pour créer une table, l’utilisateur doit disposer du privilège CREATE TABLE et d’un espace de stockage dans laquelle il pourra créer des objets.

L’administrateur de base de données utilise des ordres du LCD (Langage de Contrôle des Données) pour accorder des privilèges aux utilisateurs.

  • schema  nom du schéma
  • table  nom de la table
  • column  nom de la colonne
  • datatype  type de données et longueur de la colonne
  • DEFAULT expr  spécifie une valeur par défaut à utiliser en cas   d’omission d’une valeur dans l’ordre INSERT

Pour exécuter l’ordre CREATE TABLE, il faut disposer:

  • du privilège CREATE TABLE.
  • d’un espace de stockage.

Exemple:

Références à un schéma :

  • Un schéma est une collection d’objets. Les schémas sont des structures logiques qui font directement référence aux données de la base.
  • Un schéma permet de regrouper les objets afin de les traiter comme une entité unique pour leur attribuer des droits.
  • Il n’est pas nécessaire de passer par des schémas.
  • Le schéma système SYS existe dans toutes les bases de données et fait office de conteneur pour tous les objets systèmes d’une base.
  • Un schéma est une collection d’objets. Les schémas sont des structures logiques qui font directement référence aux données de la base.
  • Pour interroger le catalogue pour connaître les colonnes d’une base, on doit consulter la table sys.columns où sys est le schéma et colums le catalogue des colonnes de la base de données.

L’option DEFAULT :

  • On peut déclarer une valeur par défaut pour une colonne en utilisant l’option DEFAULT.
  • Cette option empêche l’insertion de valeurs NULL dans une colonne lors de l’ajout d’une ligne qui ne comporte pas de données pour cette colonne.
  • La valeur par défaut peut être un littéral, une expression ou une fonction SQL telle que DATE() et USER ; elle ne peut pas être le nom d’une autre colonne ni d’une pseudo-colonne.
  • L’expression par défaut doit correspondre au type de données de la colonne.

Les types de données:

Dans Microsoft SQL Server, chaque colonne, variable locale, expression et paramètre possède un type de données. L’ensemble des types de données fournis par le système est décrit ci-dessous.

L’affectation d’un type de données à un objet définit quatre attributs de l’objet :

  • le type de données contenues par l’objet
  • la longueur ou la taille de la valeur stockée
  • la précision du nombre (types de données numériques uniquement)
  • l’échelle du nombre (types de données numériques uniquement).

Données numériques entières:

bit: Nombre entier dont la valeur est 1 ou 0. Peut aussi être null

int: Nombre entier dont la valeur est comprise entre -231 (-2 147 483 648) et 231 – 1 (2 147 483 647).

smallint: Nombre entier dont la valeur est comprise entre -215 (-32 768) et 215 – 1 (32 767).

tinyint: Nombre entier dont la valeur est comprise entre 0 et 255.

Données numériques de valeurs exactes:

decimal: Données numériques de précision et d’échelle fixes comprises entre -1038 -1 et 1038 -1.

numeric: Synonyme de decimal.

money: Valeurs de données monétaires comprises entre -263 (-922 337 203 685 477,580 8) et 263 – 1 (+922 337 203 685 477,580 7), avec une précision d’un dix-millième d’unité monétaire.

smallmoney: Valeurs de données monétaires comprises entre – 214 748,3648 et +214 748,3647, avec une précision d’un dix-millième d’unité monétaire.

Données numériques approchées:

float: Données numériques de précision en virgule flottante comprises entre -1.79E + 308 et 1.79E + 308.

real: Données numériques de précision en virgule flottante comprises entre -3.40E + 38 et 3.40E + 38.

Valeurs temporelles

datetime: Données de date et d’heure comprises entre le 1er janvier 1753 et le 31 décembre 9999, avec une précision de trois centièmes de seconde ou de 3,33 millisecondes.

smalldatetime: Données de date et d’heure comprise entre le 1er janvier 1900 et le 6 juin 2079, avec une précision d’une minute.

Chaînes de caractères:

Char: Données non Unicode de longueur fixe d’un maximum de 8 000 caractères.

Varchar: Données non Unicode de longueur variable

Text: Données non Unicode de longueur variable ne pouvant pas dépasser 231 – 1 (2 147 483 647) caractères.

Chaînes de caractères:

nchar: Données Unicode de longueur fixe ne pouvant pas dépasser 4 000 caractères.

nvarchar: Données Unicode de longueur variable ne pouvant pas dépasser 4 000 caractères. sysname, synonyme de nvarchar(128), est un type de données défini par l’utilisateur fourni par le système et utilisé pour faire référence aux objets de base de données.

ntext: Données Unicode de longueur variable ne pouvant pas dépasser 230 – 1 (1 073 741 823) caractères.

Chaînes binaires:

inary: Données binaires de longueur fixe.

varbinary: Données binaires de longueur variable

image: Données binaires de longueur variable ne pouvant pas dépasser 231 – 1 (2 147 483 647) octets.

Remarque:

Les types de données ntexttext et image seront supprimés dans une future version de Microsoft SQL Server. Évitez par conséquent d’utiliser ces types de données dans les nouveaux travaux de développement et envisagez de modifier les applications qui les utilisent actuellement.

Après avoir créé vos tables, il peut arriver que vous deviez en modifier la structure pour ajouter une colonne oubliée ou que vous décidiez de changer une définition de colonne. Cela est possible grâce à l’ordre ALTER TABLE.

L’ordre ALTER TABLE: Ajout de colonnes

L’exemple ci-dessus ajoute la colonne nommée JOB à la table DEPT30. La colonne JOB devient la dernière colonne de la table.

Si une table contient déjà des lignes lorsque l’on ajoute une colonne, la nouvelle colonne sera initialisée à NULL pour toutes les lignes sauf si l’on précise une valeur par défaut, dans ce cas pour toutes les lignes de la table, la colonne sera initialisée avec la valeur par défaut.

L’ordre ALTER TABLE: Modification de colonnes

La modification concerne le type de données, la taille et la valeur par défaut d’une colonne.

Remarques:

  • Vous pouvez augmenter la largeur ou la précision d’une colonne numérique.
  • Réduire la largeur d’une colonne. Cette réduction peut entrainer des pertes de données par troncation.
  • Modifiez le type de données dans la limite des capacités de conversion (Char en Varchar, ..)
  • La modification d’une valeur par défaut ne s’appliquera qu’aux insertions ultérieures.

L’ordre DROP TABLE: Suppression de table

L’ordre DROP TABLE supprime la définition d’une table

Lorsque vous supprimez une table, la base de données perd toutes les données de la table ainsi que tous les index associés.

Syntaxe

  • Toutes les données de la table sont supprimées.
  • Les vues, synonymes ne sont pas supprimés mais ne sont plus utilisables.
  • Toute transaction en instance est validée.
  • Seul le créateur de la table ou un utilisateur ayant le privilège DROP ANY TABLE peut supprimer une table.
  • Une suppression de table ne peut être annulée.

L’ordre TRUNCATE TABLE: Vider une table

TRUNCATE TABLE est un autre ordre LDD, qui permet de supprimer toutes les lignes d’une table tout en libérant l’espace utilisé pour stocker cette table. L’ordre TRUNCATE TABLE ne peut être annulé.

Résumé:

CREATE TABLE

  • Crée une table.

ALTER TABLE

  • Modifie la structure d’une table.
  • Change la largeur des colonnes, le type de données des colonnes, ajoute des colonnes.

DROP TABLE

  • Supprime les lignes et la structure d’une table.
  • Cet ordre ne peut être annulé après exécution.

TRUNCATE

  • Supprime toutes les lignes d’une table et libère l’espace occupé par la table.
  • L’ordre DELETE supprime seulement les lignes

Comments are closed, but trackbacks and pingbacks are open.

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More