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
