En aquest tema, aprendrem com crear bases de dades i taules en PostgreSQL. Aquest és un pas fonamental per començar a treballar amb qualsevol sistema de gestió de bases de dades, ja que les taules són les estructures on s'emmagatzemen les dades.
- Creant una base de dades
1.1. Comandament CREATE DATABASE
Per crear una nova base de dades en PostgreSQL, utilitzem el comandament CREATE DATABASE
. La sintaxi bàsica és la següent:
1.2. Exemple pràctic
Suposem que volem crear una base de dades anomenada empresa
. El comandament seria:
1.3. Connectant-se a la base de dades
Després de crear la base de dades, necessitem connectar-nos-hi per començar a crear taules i inserir dades. Utilitzem el comandament \c
en la línia de comandes de PostgreSQL:
- Creant taules
2.1. Comandament CREATE TABLE
Per crear una taula, utilitzem el comandament CREATE TABLE
. La sintaxi bàsica és la següent:
2.2. Tipus de dades comuns
A continuació, es mostra una taula amb alguns dels tipus de dades més comuns en PostgreSQL:
Tipus de dada | Descripció |
---|---|
INTEGER |
Enter de 4 bytes |
SERIAL |
Enter autoincremental |
VARCHAR(n) |
Cadena de text de longitud variable amb un màxim de n caràcters |
TEXT |
Cadena de text de longitud variable |
DATE |
Data (any, mes, dia) |
BOOLEAN |
Valor booleà (TRUE o FALSE) |
2.3. Exemple pràctic
Suposem que volem crear una taula anomenada empleats
amb les següents columnes:
id
: Enter autoincremental (clau primària)nom
: Cadena de text de fins a 50 caràcterscognom
: Cadena de text de fins a 50 caràctersdata_naixement
: Dataactiu
: Valor booleà
El comandament seria:
CREATE TABLE empleats ( id SERIAL PRIMARY KEY, nom VARCHAR(50), cognom VARCHAR(50), data_naixement DATE, actiu BOOLEAN );
2.4. Constraints (Restriccions)
Les restriccions són regles que s'apliquen a les columnes per assegurar la integritat de les dades. Algunes de les restriccions més comunes són:
PRIMARY KEY
: Identifica de manera única cada fila en una taula.NOT NULL
: Assegura que una columna no pugui tenir valors NULL.UNIQUE
: Assegura que tots els valors en una columna siguin únics.CHECK
: Assegura que els valors en una columna compleixin una condició específica.FOREIGN KEY
: Assegura la integritat referencial entre dues taules.
2.5. Exemple amb restriccions
Afegim algunes restriccions a la taula empleats
:
CREATE TABLE empleats ( id SERIAL PRIMARY KEY, nom VARCHAR(50) NOT NULL, cognom VARCHAR(50) NOT NULL, data_naixement DATE CHECK (data_naixement < CURRENT_DATE), actiu BOOLEAN DEFAULT TRUE );
- Exercicis pràctics
Exercici 1
Crea una base de dades anomenada biblioteca
i connecta-t'hi.
Solució
Exercici 2
Crea una taula anomenada llibres
amb les següents columnes:
id
: Enter autoincremental (clau primària)titol
: Cadena de text de fins a 100 caràctersautor
: Cadena de text de fins a 50 caràctersdata_publicacio
: Datadisponible
: Valor booleà amb valor per defecte TRUE
Solució
CREATE TABLE llibres ( id SERIAL PRIMARY KEY, titol VARCHAR(100) NOT NULL, autor VARCHAR(50) NOT NULL, data_publicacio DATE, disponible BOOLEAN DEFAULT TRUE );
- Resum
En aquest tema, hem après com crear bases de dades i taules en PostgreSQL. Hem vist la sintaxi bàsica dels comandaments CREATE DATABASE
i CREATE TABLE
, així com alguns dels tipus de dades més comuns i les restriccions que podem aplicar a les columnes. També hem practicat amb alguns exercicis per reforçar els conceptes apresos.
En el següent tema, aprendrem com inserir dades a les taules que hem creat.
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
- Optimització de consultes
- Estratègies d'indexació
- Analitzant el rendiment de les consultes
- Vacuuming i manteniment
Mòdul 7: Seguretat i gestió d'usuaris
- Rols d'usuari i permisos
- Mètodes d'autenticació
- Encriptació de dades
- Còpia de seguretat i restauració
Mòdul 8: Treballant amb JSON i funcionalitats NoSQL
Mòdul 9: Extensions i eines avançades
- PostGIS per a dades geoespacials
- Cerca de text complet
- Wrappers de dades externes
- PL/pgSQL i altres llenguatges procedimentals