En aquest tema, aprendrem com inserir dades en les taules de PostgreSQL. Aquesta és una operació fonamental que permet afegir informació a la base de dades per a la seva posterior consulta i manipulació.

Continguts

Sintaxi bàsica de INSERT

La sintaxi bàsica per inserir dades en una taula és la següent:

INSERT INTO nom_taula (columna1, columna2, columna3, ...)
VALUES (valor1, valor2, valor3, ...);

Exemple

Suposem que tenim una taula anomenada empleats amb les següents columnes: id, nom, càrrec i salari.

CREATE TABLE empleats (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    càrrec VARCHAR(50),
    salari NUMERIC
);

Per inserir un nou empleat en aquesta taula, utilitzem la següent instrucció:

INSERT INTO empleats (nom, càrrec, salari)
VALUES ('Joan Pérez', 'Enginyer', 50000);

Inserint múltiples files

És possible inserir múltiples files en una sola instrucció INSERT. Això pot ser útil per millorar l'eficiència quan necessitem afegir diverses files alhora.

Exemple

INSERT INTO empleats (nom, càrrec, salari)
VALUES 
    ('Anna Garcia', 'Analista', 45000),
    ('Marc López', 'Desenvolupador', 55000),
    ('Laura Martínez', 'Gerent', 70000);

Inserint dades amb RETURNING

La clàusula RETURNING permet retornar valors de les files que s'han inserit. Això és especialment útil quan necessitem obtenir l'ID generat automàticament per una columna SERIAL.

Exemple

INSERT INTO empleats (nom, càrrec, salari)
VALUES ('Carles Torres', 'Consultor', 60000)
RETURNING id;

Aquest codi retornarà l'ID de la fila que s'ha inserit.

Inserint dades des d'una altra taula

Podem inserir dades en una taula seleccionant-les d'una altra taula. Això es fa utilitzant una instrucció INSERT INTO ... SELECT.

Exemple

Suposem que tenim una altra taula anomenada nous_empleats amb les mateixes columnes que la taula empleats.

INSERT INTO empleats (nom, càrrec, salari)
SELECT nom, càrrec, salari
FROM nous_empleats;

Exercicis pràctics

Exercici 1

Crea una taula anomenada productes amb les següents columnes: id (SERIAL, PRIMARY KEY), nom (VARCHAR(100)), preu (NUMERIC) i quantitat (INTEGER). Inserta tres productes en aquesta taula.

Solució

CREATE TABLE productes (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    preu NUMERIC,
    quantitat INTEGER
);

INSERT INTO productes (nom, preu, quantitat)
VALUES 
    ('Ordinador', 1000, 10),
    ('Ratolí', 20, 50),
    ('Teclat', 30, 30);

Exercici 2

Utilitza la clàusula RETURNING per inserir un nou producte en la taula productes i retorna l'ID del producte inserit.

Solució

INSERT INTO productes (nom, preu, quantitat)
VALUES ('Monitor', 150, 20)
RETURNING id;

Exercici 3

Crea una taula anomenada nous_productes amb les mateixes columnes que la taula productes. Inserta dos productes en aquesta taula i després copia aquests productes a la taula productes.

Solució

CREATE TABLE nous_productes (
    id SERIAL PRIMARY KEY,
    nom VARCHAR(100),
    preu NUMERIC,
    quantitat INTEGER
);

INSERT INTO nous_productes (nom, preu, quantitat)
VALUES 
    ('Impressora', 200, 15),
    ('Escàner', 100, 25);

INSERT INTO productes (nom, preu, quantitat)
SELECT nom, preu, quantitat
FROM nous_productes;

Conclusió

En aquest tema, hem après com inserir dades en les taules de PostgreSQL utilitzant la instrucció INSERT. Hem vist com inserir una sola fila, múltiples files, utilitzar la clàusula RETURNING i inserir dades des d'una altra taula. Aquests conceptes són fonamentals per gestionar les dades en una base de dades PostgreSQL. En el proper tema, explorarem com consultar dades utilitzant la instrucció SELECT.

Curs de PostgreSQL

Mòdul 1: Introducció a PostgreSQL

Mòdul 2: Operacions bàsiques de SQL

Mòdul 3: Consultes SQL avançades

Mòdul 4: Disseny de bases de dades i normalització

Mòdul 5: Funcionalitats avançades de PostgreSQL

Mòdul 6: Optimització i millora del rendiment

Mòdul 7: Seguretat i gestió d'usuaris

Mòdul 8: Treballant amb JSON i funcionalitats NoSQL

Mòdul 9: Extensions i eines avançades

Mòdul 10: Estudis de cas i aplicacions del món real

© Copyright 2024. Tots els drets reservats