SQL
Share
Explore

Principes du SQL

Être lu par des humaines
Décrit le résultat, pas le processus
Insensible à la case et aux espaces
DDL =Data definition language : CREATE, ALTER, DROP.
DML = Data manipulation language : INSERT, UPDATE, DELETE, SELECT
Exemple de code de création d’un table :
-- Create a new table call 'Authors' in schema ' Books'
CREATE TABLE Books.Authors (
AuthorID INT NOT NULL PRIMARY KEY,
FirstName NOT NULL,
LastName NOT NULL,
Birthdate DATETIME2
);
- - : commentaire
; à la fin
Une table rassemble des informations de même nature. Toutes les lignes de la table Books sont des livres. Toutes les colonnes (champs) sont en rapport avec le livre.
image.png
Toutes ces tables font parties d’une base de données.
image.png
Pour chaque colonne :
Nom unique dans la table
Utiliser des noms descriptifs en évitant des acronymes
Éviter les espaces et utiliser l’underscore ou la notation Camel
Type de données que la colonne peut strocher
Text, nombre, dates, images...
Très différents selon l'éditeur
SQL Server VARCHAR(MAX) et en PostgreSQL TEXT
Commun : CHAR(50), INT (entier), DATE (pas time on time zone), DECIMAL(5,2), 5 nb au total dont 2 décimales (999,99 maxi).
image.png

Créer un schéma

ADS : pour SQL Server : Base de données > Security > Schemas.
dbo : Database Owner, schéma par défaut (public dans PostgresSQL).
CREATE SCHEMA products;

Créer des tables

Clic droit sur la base de données TowTrees > New query (ou sélectionner la base de données TowTrees dans la liste déroulante en haut de la fenêtre
Pour exécuter le code : F5, pour exécuter une partie du code, sélectionner ce code et F5.
Copier / coller ce code (SQL Server et PostgreSQL)
-- Create a table for the Two Trees product data

CREATE TABLE products.products (
SKU CHAR(7) NOT NULL PRIMARY KEY,
ProductName CHAR(50) NOT NULL,
CategoryID INT,
Size INT,
Price DECIMAL(5,2) NOT NULL
);

CREATE TABLE products.categories (
CategoryID INT PRIMARY KEY,
CategoryDescription CHAR(50)
);
Clic droit sur la table categories > Select Top 1000 et saisir :
image.png
Pour modifier une structure de table : ALTER TABLE
-- Add an additional column to the table
ALTER TABLE products.categories
ADD ProductLine CHAR(25);
Clic droit sur la table categories > Select Top 1000 et saisir :
image.png

Insérer des lignes

Pour ajouter des lignes à une table :
INSERT INTO <table> VALUES (<valeurs>), (<valeurs>)
INSERT INTO <table> (<champs>) VALUES (<valeurs>), (<valeurs>)
Saisir ce code, ce qui insère 1 ligne :
-- Add data to a table by filling in all columns in order
INSERT INTO products.products VALUES
('FCP008', 'First Cold Press', 1, 8, 8.99)
;
Saisir ce code, ce qui insère 2 lignes :
-- Add multiple rows in one command
INSERT INTO products.products VALUES
('BI008', 'Basil-Infused EVO', 2, 8, 10.99),
('GI016', 'Garlic-Infused EVO', 2, 16, 15.99)
;
Saisir ce code, ce qui insère une ligne en indiquant seulement les valeurs de 3 champs (sur 5) :
-- Add rows by specifying columns
INSERT INTO products.products
(SKU, ProductName, Price)
VALUES
('OGEC004', 'Olive Glow Eye Cream', 18.99)
;
On obtient :
image.png

Mettre à jour

Saisir ce code, ce qui modifie le produit dont le SKU est OGEC004 :
-- Change the values in a specific row
UPDATE products.products
SET CategoryID = 3,
Size = 4
WHERE SKU = 'OGEC004';
Saisir ce code, ce qui supprime :
-- Remove a specific row from the database
DELETE FROM products.products
WHERE SKU = 'OGEC004';
Finalement, exécuter ce code :
-- Remove existing database objects if they're present in the database
-- This resets the Two Trees database to an empty state
DROP TABLE IF EXISTS products.products;
DROP TABLE IF EXISTS products.categories;
DROP SCHEMA IF EXISTS products;

-- Create the products schema
GO -- comment this line out when running on PostgreSQL
CREATE SCHEMA products;
GO -- comment this line out when running on PostgreSQL

-- Create a table for the Two Trees product data
CREATE TABLE products.products (
SKU CHAR(7) NOT NULL PRIMARY KEY,
ProductName CHAR(50) NOT NULL,
CategoryID INT,
Size INT,
Price DECIMAL(5,2) NOT NULL
);

-- Create a table for the Two Trees category data
CREATE TABLE products.categories (
CategoryID INT PRIMARY KEY,
CategoryDescription CHAR(50),
ProductLine CHAR(25)
);

-- Add data to the products table
INSERT INTO products.products
(SKU, ProductName, CategoryID, Size, Price)
VALUES
('FCP008', 'First Cold Press', 1, 8, 8.99),
('BI008', 'Basil-Infused EVO', 2, 8, 10.99),
('GI016', 'Garlic-Infused EVO', 2, 16, 15.99),
('OGEC004', 'Olive Glow Eye Cream', 3, 4, 18.99)
;

-- Add data to the categories table
INSERT INTO products.categories
(CategoryID, CategoryDescription, ProductLine)
VALUES
(1, 'Olive Oils', 'Gourmet Chef'),
(2, 'Flavor Infused Oils', 'Gourmet Chef'),
(3, 'Bath and Beauty', 'Cosmetics')
;

-- Review the data that's been entered
SELECT * FROM products.products;
SELECT * FROM products.categories;
Share
 
Want to print your doc?
This is not the way.
Try clicking the ⋯ next to your doc name or using a keyboard shortcut (
CtrlP
) instead.