Data Science, Python, Economie ...

Accueil

Modifier les données d'un tableau SQL

Au cas où, penser à faire une sauvegarde de la tableCréation de tableau SQL
Créer un nouveau tableau

Un tableau SQL est un objet utilisé pour stocker des donner, tel un récipient. Le tableau SQL est un objet contenu dans une base de données qui regroupera plusieurs tableaux (comme des récipients dans un placard).

Lors de la création d'un tableau SQL, on définit les variables qui en font partie : quel est leur nom, leur types et leur longueur (si besoin).

La commande essentielle est CREATE TABLE name :

CREATE TABLE employee (

id INT PRIMARY KEY NOT NULL,
first...
! Cette note triate de la modification des données d'un tableau, pas de l'insertion de nouvelles donnéesInsérer des données dans un tableau SQL
Une fois le tableau [[Création de tableau SQL|créé]], on peut y ajouter es données avec la commande INSERT :

INSERT INTO teachers (first_name, last_name, school, hire_date, salary)

VALUES ('Janet' 'Smith', 'F.D. Roosevelt HS', '2011-10-30', 36200),
('Lee', 'Reynolds', 'F.D. Roosevelt HS', '1993-05-22', 65000)
('Samuel', 'Cole', 'Myers Middle School','2005-08-01', 43500),
('Samantha', 'Bush', 'Myers Middle School' '2011-10-30', 36200),
('Betty', 'Diaz', 'Myers Middle School', '2005-...
.

Modifier la structure d'un tableau

La clause ALTER TABLE permet de modifier la structure d'un tableau.

Ajout de colonne :

ALTER TABLE table ADD COLUMN column data_type;

Suppression de colonne :

ALTER TABLE table DROP COLUMN column;

Changement du type de donnée d'une colonne :

ALTER TABLE table ALTER COLUMN column SET DATA TYPE data_type;

Ajout d'une contrainteClés et contraintes dans SQL
Clés primaires
Une clé primaire correspond à une colonne ou une série de colonnes dont la valeur est unique et identifie chaque ligne du tableau.

Cette clé primaire est une contrainte et impose deux rêgles à la (ou aux) colonne(s) qui représentent la clé :


Chaque clé doit avoir une valeur unique pour chaque ligne
Aucune valeur de la clé ne peut être nulle.


Les clés primaires permettent de garantier l'intégrité relationnelle (referential integrity) : on s'assure ainsi qu'il est possib...
pour une colonne :

ALTER TABLE table ALTER COLUMN column SET NOT NULL;

Retrait d'une contrainte attribuée à une colonne :

ALTER TABLE table ALTER COLUMN column DROP NOT NULL;

Modifier le type d'une colonne avec CAST()

Différent de ALTER TABLE dans son application, CAST() est utile pour modifier à la volée le typeTypes de données SQL
Cette note a pour but d'expliquer les types de données rencontrée dans un tableau.

String

Les données composées de caractères conviennent pour du texte, des nombres ou des symboles. Les types 'caractères' incluent :

char(n)
Chaque observation aura une longueur n fixe. Si le contenu ne remplis pas la longueur complêtement, le reste sera rempli avec des espaces. C'est un bon format si l'on veut stocker des données à longueur fixe (comme un code postal, par exemple)

varchar(n)
Les observatio...
d'une colonne dans un autre type compatible.

A noter : Il est possible de CASTer un integer en text mais pas l'inverse.

La syntaxe est la suivante : CAST(colname as type). On peut aussi utiliser les doubles points ::, solution plus lisible : colname::type

Exemple avec le tableau date_time_types :

SELECT timestamp_column, CAST(timestamp_column AS varchar(10))
FROM date_time_types;

SELECT timestamp_column::varchar(10)
FROM date_time_types;

Cette fonction est utile lorsque l'on a besoin de réaliser un changement temporaire de type sans vouloir modifier la structure d'un tableau.

Modifier les valeurs d'un tableau

La clause UPDATE est utilisée pour modifer les données d'une colonne, pour toutes les lignes ou seulement celles remplissant une condition particulière.

La syntaxe simple est la suivante :

UPDATE table
SET column = value;

On peut modifier plusieurs colonnes d'un coup :

UPDATE table
SET column_a = value,
	column_b = value;

L'insertion de valeur peut être conditionnelle en ajoutant une clause WHERE :

UPDATE table
SET column = value
WHERE criteria;

On peut aussi copier des valeurs d'une autre colonne de cette manière :

UPDATE table
SET column = another_col
WHERE criteria;

Et enfin recourir à des données issues de tableaux différents :

Syntaxe PostgreSQL :

UPDATE table
SET column = table_b.column
FROM table b
WHERE criteria;

Il est possible d'utiliser la syntaxe table.col dans la clause WHERE.

Syntaxe ANSI utilisant une sous-requêteLes sous-requêtes SQL
Les sous-requêtes SQL sont déclarées comme des requêtes entre paranthèses, nichées à l'intérieur d'autres requêtes. Elles servent à produire des données pour l'exécution de la requête principale.

Les sous-requêtes SQL ont pour résultat des valeurs individuelles ou une série de lignes.

Syntaxe

SELECT column_names
FROM table_name1
WHERE value IN (SELECT column_name
FROM table_name2
WHERE condition)


En pratique, on a la table suivante :




company
street
city
...
:

UPDATE table
SET column = (SELECT column
				FROM table b
				WHERE table.column = table_b.colum)
WHERE EXISTS (SELECT column
				FROM table_b
				WHERE table.column = table_b.colum);

Concaténer des valeurs

Anecdotique mais utile, la concaténation de valeurs se fait avec l'opérateur ||. Ici, on ajoute "+1" aux numéros de téléphone canadiens ou étatsuniens.

UPDATE table
SET phone = '+1' || phone
WHERE country IN ('US', 'CA')

Supprimer des lignes d'un tableau

Pour supprimer toutes les lignes d'un tableau :

DELETE FROM table_name;

Pour supprimer conditionnellement les lignes :

DELETE FROM table_name WHERE expression;