Excel à SQL
Share
Explore

SQL Avancé

Installer Docker

Installer Docker pour Windows (ou Mac)

image.png

image.png
Après redémarrage, un message indiquant “WSL 2 installation is incomplete” peut s’afficher :
image.png
Dans ce cas,
laisser le message affiché,
(14,6 Mo)pour PC x64 - la plupart des PC) et l’installer :
image.png

Si le lien ne fonctionne pas, afficher cette page :
et consultez la section "télécharger le package de mise à jour du noyau Linux”
Cliquer sur le bouton
Restart
dans la fenêtre de message laissé ouvert.
Depuis Windows 10, lancer PowerShell et saisir :
SQL Server Windows PC :
docker run --name sqlserver2019 -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Paris123456" -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest

SQL Server MacOS & Linux :
docker run --name sqlserver2019 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Paris123456' -p 1401:1433 -d mcr.microsoft.com/mssql/server:2019-latest

MySQL
docker run --name mysql2021 -e MYSQL_ROOT_PASSWORD=Paris123456 -d mysql:latest

PostgreSQL
docker run --name postgresql -p 5401:5432 -e POSTGRES_PASSWORD=Adam123456 -d postgres:latest

Dans ADS : Add Connection puis renseigner
Paramètres pour l'ajout de la connexion SQL Server
0
Zone
Info
1
Connection type
Microsoft SQL Server
2
Server nam
localhost
3
User name
SA
4
Password
Paris123456
5
Remember passowrd
cocher
6
Server group
SQL Server
7
Name
SQL Server
8
Advanced - Port
1411
There are no rows in this table

Paramètres pour PostgreSQL

Dans Extensions, rechercher PostgreSQL et installer
Dans Add Connnecion :
Username : postgres
Port : 5401
Name : PostgreSQL

Créer une base de données

Dans ADS :
image.png
Clic droit sur le serveur > New Query
Pour voir toutes les bases de données SQL Server :
SELECT * FROM sys.databases;
Pour PostgreSQL :
SELECT * FROM pl_database;
Pour créer une base de données, dans les 2 serveurs :
CREATE DATABASE <nom_base>

Principes du SQL

Principes 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.