Crear, Modificar i Esborrar Taules En Postgres: diferència entre les revisions
De FFAWiki
(10 revisions intermèdies per un altre usuari que no es mostra) | |||
Línia 59: | Línia 59: | ||
:::ALTER TABLE nom_taula ADD [[#Restriccions i Constraints | CHECK ]] (nom_columna <= [[Consultes Postgres#DATE_PART(,)| CURRENT_DATE ]]); | :::ALTER TABLE nom_taula ADD [[#Restriccions i Constraints | CHECK ]] (nom_columna <= [[Consultes Postgres#DATE_PART(,)| CURRENT_DATE ]]); | ||
=== | :::ALTER TABLE nom_taula DROP CONSTRAINT fk_taula; | ||
===Buidar Taula=== | |||
:TRUNCATE nom_taula | :TRUNCATE nom_taula | ||
Línia 74: | Línia 76: | ||
::Esborra la taula (la elimina). | ::Esborra la taula (la elimina). | ||
===INDEX=== | |||
:Podem crear un índex, amb la comanda CREATE INDEX que le que fa es construir un índex amb les columnes especificades i així millorar el rendiment de la base de dades. | |||
::'''Exemple:''' | |||
:::'''Crear Index:''' | |||
::::CREATE INDEX nom_index ON nom_taula(nom_camp); | |||
:::'''Esborrar Index:''' | |||
::::DROP INDEX nom_index; | |||
:::'''Mostrar Index:''' | |||
::::SHOW INDEXES FROM nom_index; | |||
===Tipus de Dada=== | ===Tipus de Dada=== | ||
Línia 109: | Línia 129: | ||
===Convertir [[#Tipus de Dada | Tipus de dades]] (columnes plenes)=== | ===Convertir [[#Tipus de Dada | Tipus de dades]] (columnes plenes)=== | ||
: | :'''∗''' En cas de que no estiguin plenes has de fer un [[#Modificar Taula | ALTER TABLE]] | ||
:ALTER TABLE nom_taula ALTER nom_columna TYPE tipus_dada USING nom_columna::tipus_dada | |||
===Restriccions i Constraints=== | ===Restriccions i Constraints=== |
Revisió de 17:17, 8 març 2021
Postgres
Llegenda
- [] Opcional
- {} Obligatoris
- | Or
Crear Taula
- Composició:
- CREATE TABLE nom_taula (nom_camp1 tipus_dada1 [default expressió] [llista_restriccions_camp1] ,nom_camp2 tipus_dada2 [default expressió][llista_restriccions_camp2], … [llista_restricions_addicionals]);
- Execució:
- Ens connectem a la base de dades i...
- CREATE TABLE nom_taula (id integer PRIMARY KEY , nom varchar(30) NOT NULL , curs varchar(5) NOT NULL , UNIQUE (curs));
- Creem una base.
Modificar Taula
- Composició:
- ALTER TABLE nom_taula acció, [acció, ...]
- Acció:
- ADD nom_columna tipus_dada [default expressió][llista_restriccions_camp]
- DROP nom_columna
- ALTER nom_columna SET DEFAULT expressió
- ALTER nom_columna DROP DEFAULT
- ALTER nom_columna { SET | DROP } NOT NULL
- ADD [ CONSTRAINT constraint_name ] { CHECK ( expressió) | UNIQUE ( nom_columna [, ... ] ) | PRIMARY KEY ( nom_columna [, ... ] ) | FOREIGN KEY ( nom_columna [, ... ] ) REFERENCES reftable( refcolumn [, ... ] ) }
- DROP CONSTRAINT constraint_name
- Per canviar el nom:
- RENAME TO nou_nom_taula;
- RENAME COLUMN nom_columna TO nou_nom_columna;
- Execució:
- Ens connectem a la base de dades i...
- ALTER TABLE nom_taula ADD CHECK (nom_columna <= CURRENT_DATE );
- ALTER TABLE nom_taula DROP CONSTRAINT fk_taula;
Buidar Taula
- TRUNCATE nom_taula
- Te una equivalència a:
- DELETE FROM nom_taula
- Esborra les dades de taula (la buida).
Esborrar Taula
- DROP TABLE nom_taula
- Esborra la taula (la elimina).
INDEX
- Podem crear un índex, amb la comanda CREATE INDEX que le que fa es construir un índex amb les columnes especificades i així millorar el rendiment de la base de dades.
- Exemple:
- Crear Index:
- CREATE INDEX nom_index ON nom_taula(nom_camp);
- Esborrar Index:
- DROP INDEX nom_index;
- Mostrar Index:
- SHOW INDEXES FROM nom_index;
Tipus de Dada
- Serial: Es un integer que s'autoincrementa (no s'ha de posar en el INSERT, es posa sol i s'autoincrementa)
Tipus de dada Booleà Numèrics Text Dates i Hores bool Enters Decimals char varchar(n) text date time timestamp smallint int bigint numeric(p,e) real double precision p: és el número total de dígits e: és el nombre de decimals n: longitud màxima de la cadena
Convertir Tipus de dades (columnes plenes)
- ∗ En cas de que no estiguin plenes has de fer un ALTER TABLE
- ALTER TABLE nom_taula ALTER nom_columna TYPE tipus_dada USING nom_columna::tipus_dada
Restriccions i Constraints
- NOT NULL
- La restricció NOT NULL prohibeix valors NULL en una columna.
- Exemple:
- CREATE TABLE nom_taula (nom varchar(30) NOT NULL);
- ALTER TABLE nom_taula ALTER [COLUMN] nom SET NOT NULL;
- UNIQUE
- La restricció UNIQUE fa que els valors de la columna no es puguin repetir.
- Exemples:
- CREATE TABLE nom_taula (nom varchar(30) UNIQUE);
- CREATE TABLE nom_taula (nom varchar(30), UNIQUE(nom));
- ALTER TABLE nom_taula ADD UNIQUE(nom);
- CHECK
- La restricció CHECK s’utilitza per limitar l’interval de valors que es poden col·locar en una columna. Si definiu una restricció CHECK en una sola columna, només permet certs valors per a aquesta columna. Si definiu una restricció CHECK en una taula, pot limitar els valors de determinades columnes en funció dels valors d'altres columnes de la fila.
- Exemples:
- CREATE TABLE nom_taula (sexe varchar(1) CHECK (sexe = 'H' OR sexe = 'D'));
- CREATE TABLE nom_taula (sexe varchar(1), CHECK (sexe = 'H' OR sexe = 'D'));
- ALTER TABLE nom_taula ADD CHECK (sexe = 'H' OR sexe = 'D');
- PRIMARY KEY
- La restricció PRIMARY KEY identifica de manera única cada registre d’una taula. Les claus primàries han de contenir valors UNIQUE i no poden contenir valors NULL. Una taula només pot tenir UNA clau principal; i a la taula, aquesta clau principal pot consistir en columnes (camps) individuals o múltiples.
- Exemples:
- CREATE TABLE nom_taula (nom varchar(30) PRIMARY KEY);
- CREATE TABLE nom_taula (nom varchar(30), PRIMARY KEY(nom));
- ALTER TABLE nom_taula ADD PRIMARY KEY(nom);
- FOREIGN KEY
- Una FOREIGN KEY és una clau que s’utilitza per enllaçar dues taules. Una FOREIGN KEY és un camp (o múltiples de camps) d'una taula que fa referència a la PRIMARY KEY d'una altra taula. La taula que conté la foreign key s’anomena taula fill i la taula que conté la clau candidata s’anomena taula referencial o pare.
- Exemples:
- CREATE TABLE nom_taula (nom varchar(30), FOREIGN KEY (nom) REFERENCES altre_taula(camp_taula));
- ALTER TABLE nom_taula ADD FOREIGN KEY (nom) REFERENCES altre_taula(camp_taula);