Archives Wild Code School
Microsoft SQL Server

C 2. Structured Query Language - Insérer des données

Quête 3 sur 7 · 2 images archivées

Après avoir achevé cette quête, tu sauras insérer des données dans une base de données avec une requête

Objectifs

  • Utiliser CREATE DATABASE
  • Utiliser CREATE TABLE
  • Insérer des données avec la requête INSERT
  • Créer une base de données avec un fichier contenant une suite de requêtes SQL

Le joyeux moment de faire les courses

Combien de temps passes-tu à faire les courses ? Si tu faisais le total, tu serais surpris du temps passé à frôler les rayons des supermarchés à la recherche de tes produits favoris.

Même si quelques heures de courses permettent à notre esprit d’éprouver de la satisfaction (au contraire du porte-monnaie), je dois quand même avouer que j'ai rencontré très peu de personnes appréciant réellement de faire les courses. La plupart des personnes que je rencontre font des listes de courses et s'organisent pour être le plus efficaces possible (ratio rapidité/quantité).

J'aimerais faire prendre conscience à ces gens qu'utiliser une base de données leur simplifierait sûrement les courses. Je pense que tu fais partie des personnes potentiellement intéressées par le fait de mieux organiser ses courses grâce aux merveilles de l'informatique.

J'aimerais que tu puisses garder une trace des courses que tu fais et des produits que tu achètes, et mettre ces traces dans une base de données.

Créer la structure

SQL met à disposition énormément de requêtes qui, chacune, réalise une action différente. Parmi ces requêtes, certaines permettent de créer des bases de données et les tables qu'elles contiennent.

Une requête te permet de créer une base de données : il s'agit de CREATE DATABASE.

sql
CREATE DATABASE Groceries;

La commande ci-dessus crée une base de données nommée Groceries.

Une autre requête te permet de créer la structure d'une table, la requête CREATE TABLE. Dans la requête CREATE TABLE, tu dois spécifier le nom de la table, ainsi que les propriétés qui la composent. Exemple :

sql
USE Groceries;
CREATE TABLE Food (
    id INT PRIMARY KEY IDENTITY(1,1),
    name VARCHAR(50) NOT NULL,
    calories DECIMAL NOT NULL
);

La requête USE Groceries sert à se placer sur la base de données Groceries. La table Food représente un aliment et les calories qui lui sont associées pour une seule portion. La table met à disposition trois champs :

  • id - identifiant numérique qui s'auto-incrémente à chaque insertion

  • name - nom d'un aliment en question

  • calories - nombre de calories par portion d'aliments

Chacun des champs déclarés est d'un type particulier :

  • id est un entier : il s'agit de la clé primaire (PRIMARY KEY). Il est auto-incrémenté de 1 dès lors qu'une entité est insérée dans la table (IDENTITY (1,1))

  • name est une chaîne de caractères de taille 50

  • calories est un nombre décimal

Sachant tout cela, il est possible d'écrire un fichier contenant du SQL, directement exécutable par un SGBD.

↗
Importer un fichier SQL
stackoverflow.com
↗
IDENTITY(1,1)
docs.microsoft.com
↗
CREATE TABLE
sqlservertutorial.net
↗
CREATE DATABASE
quackit.com

Insérer des données dans les tables

Avec la table créée lors de l'étape précédente :

sql
USE Groceries;
INSERT INTO Food (name, calories)
VALUES ('Tomato', 24);  

La requête INSERT INTO insère une tomate dans la table Food. L'ordre des champs à spécifier après VALUES est donné entre parenthèses après le nom de la table. Fais bien attention à entourer d'apostrophes, et non de guillemets, les chaînes de caractères que tu spécifies dans les valeurs à mettre dans la table, sinon tu auras des surprises.

↗
Exemple INSERT INTO
youtube.com
↗
INSERT INTO T-SQL
tutorialspoint.com
↗
INSERT INTO

Lire la partie "Syntax for SQL Server"

w3schools.com

Challenge

Optimisation de tes courses

Ecris un fichier T-SQL importable avec SQLServer.

Dans ce fichier, crée une base de données GroceriesDB dans laquelle tu créeras deux tables :

  1. Une table Product qui contient des produits :
  • Une clé primaire auto-incrémentée en nombre entier
  • Un nom de produit en chaîne de caractères
  • Un prix en décimal
    1. Une table Grocery qui contient les courses que tu as faites :
  • Une clé primaire auto-incrémentée en nombre entier
  • Un montant total en décimal
  • Une date (au format DATETIME)

Insère trois entités dans la table Product et deux entités dans la table Grocery.

Critères de validation

  • Un lien vers le fichier SQL
  • Le fichier s'importe dans SSMS sans erreur
  • La table Product respecte la structure
  • La table Grocery respecte la structure
  • Trois entités sont insérées dans la table Product
  • Deux entités sont insérées dans la table Grocery