Professional Documents
Culture Documents
Nombre
Alias
bigint
int8
bigserial
serial8
bit [ (n) ]
bit varying [ (n) ]
varbit
boolean
bool
box
bytea
character varying [ (n) ]
varchar [ (n) ]
character [ (n) ]
char [ (n) ]
cidr
circle
date
double precision
float8
inet
integer
int,int4
decimal [ (p, s) ]
path
point
polygon
real
float4
smallint
int2
serial
serial4
text
time [ (p) ] [ without time zone ]
time [ (p) ] with time zone
timetz
timestamptz
http://www.postgresql.org.ar/trac/wiki/dat
resql.org.ar/trac/wiki/datatype.html
INSTRUCCIN
crear tabla nombreTabla sin tipos de
datos
POSTGRESQL
SINTXIS
create table NOMBRETABLA1 ()
campoN
tipoN,
PRIMARY KEY (PKEYcampoTabla1)
)
campoN
tipoN,
FKEYcampoTabla1
tipo,
PRIMARY KEY (PKEYcampoTabla1),
CONSTRAINT nombreRestriccion FOREIGN KEY (FKEYcampoTabla1)
REFERENCES nombreTabla2 (PKEYcampoTabla2)
)
campoN
tipoN,
PRIMARY KEY (PKEYcampoTabla1)
)
campoN
tipoN,
PRIMARY KEY (PKEYcampoTabla1, PKEY campoTabla1)
)
campoN
tipoN,
FKEY1campoTabla1
tipo,
FKEY2campoTabla1
tipo,
PRIMARY KEY (PKEY1campoTabla1, PKEY2campoTabla1),
CONSTRAINT nombreRestriccion FOREIGN KEY (FKEY1campoTabla1, FKEY2campoTabla1)
REFERENCES nombreTabla2 (PKEY1campoTabla2,PKEY2campoTabla2)
)
campoN
tipoN,
FKEY1campoTabla1
tipo,
FKEY2campoTabla1
tipo,
FKEY3campoTabla1
tipo,
PRIMARY KEY (PKEY1campoTabla1, PKEY2campoTabla1),
CONSTRAINT nombreRestriccion1 FOREIGN KEY (FKEY1campoTabla1, FKEY2campoTabla1)
REFERENCES nombreTabla2 (PKEY1campoTabla2,PKEY2campoTabla2)
CONSTRAINT nombreRestriccion2 FOREIGN KEY (FKEY3campoTabla1)
REFERENCES nombreTabla3 (PKEYcampoTabla3)
)
campoN
tipoN,
PRIMARY KEY (PKEYcampoTabla1, PKEY campoTabla1)
)
RESQL
EJERCICIO
create table t_paciente
()
create table t_paciente
(
cedula
integer
NOT NULL,
nombre
character varying(60),
apellido
character varying(60),
direccion
character varying(30),
barrio
character varying(20),
genero
character(1),
fechanac
date,
fk_id_ciudad integer,
PRIMARY KEY (cedula)
)
(fk_id_ciudad1, fk_ciudad_ciudad1)
t_ciudad
Campo
id
ciudad
Tipo
serial
character varying
Tamao Restriccin
pk
50
tabla:
t_paciente
Campo
cedula
nombre
apellido
direccion
barrio
genero
fechanac
fk_id_ciudad
Tipo
integer
character varying
character varying
character varying
character varying
character(1)
date
integer
Tamao Restriccin
pk
60
60
30
20
fk
tabla:
Campo
id_telefono
numero
t_telefonos
Tipo
serial
integer
Restriccin
pk
fk_telefono_paciente
integer
fk
tabla:
t_ingreso
Campo
id
estado
fechayhora
seguridadsoc
fk_cedula_paciente
Tipo
integer
text
timestamp without time zone
character varying
integer
Tamao Restriccin
pk
20
fk
tabla:
t_sala
Campo
id
nombre
descripcion
piso
Tipo
integer
character varying
character varying
integer
Tamao Restriccin
pk
60
100
t_habitacion
Campo
id
nombre
numero
descripcion
fk_habitacion_sala
Tipo
serial
character varying
integer
character varying
integer
Tamao Restriccin
pk
60
pk
200
fk
tabla:
t_cama
Campo
id
estado
descripcion
fk_cama_habitacion_id
fk_cama_habitacion_n
Tipo
integer
character varying
character varying
integer
character varying
Tamao Restriccin
pk
30
200
fk
fk
tabla:
t_medico
Campo
id
nombre
apellido
direccion
barrio
genero
telefono
f_nacimiento
correoe
fk_id_ciudad
fk_id_jefemedico
fk_id_sala
Tipo
serial
character
character
character
character
character
integer
date
character
integer
integer
integer
varying
varying
varying
varying
varying
Tamao Restriccin
pk
60
60
60
30
1
30
fk
fk
fk
DE TABLAS
Descripcin
llave primaria
Descripcin
llave primaria
ciudad de CIUDAD
d_ciudad)
Descripcin
llave primaria
cedula de PACIENTE
Descripcin
llave primaria
cedula de PACIENTE
e,
GN KEY (fk_cedula_paciente)
Descripcin
llave primaria
Descripcin
llave primaria
llave primaria
llave fornea
L,
N KEY (id)
Descripcin
llave primaria
llaves fornea
llaves fornea
NULL,
ing(30),
ng(200),
0),
Descripcin
llave primaria
llaves fornea
llaves fornea
llaves fornea
OT NULL,
ying(60),
ying(60),
ng(60),
ying(30),
ing(30),
KEY (fk_id_ciudad)
N KEY (fk_id_jefemedico)
(fk_id_sala)
id de SALA
id de HABITACION
nombre de HABITACION
id de CIUDAD
id de MEDICO
id de SALA
INSTRUCCIN
Modificar la tabla adicionando un campo con tipo sin nulidad.
Modificar la tabla adicionando una columna con tipo y nulidad
Modificar la tabla cambiando un NULL a un campo NOT NULL.
Modificar la tabla cambiando un NOT NULL a un campo NULL.
Modificar la tabla modificando un tipo de campo.
Modificar la tabla modificando el campo fk con la referencia de la
tabla del FKEY.
Modificar la tabla modificando el campo pk como la llave primaria
PKEY.
Elimina todas filas de la tabla, es decir, borra todos los datos sin
borrar la tabla. No borra la tabla como tal, la llamada estructura.
El auto incremento contina con el siguiente auto incremento que
estaba antes de borrarsen los datos. En velocidad es ms rpida
que DELETE y funciona igual si no se hace con CASCADE, es decir
si la tabla no tiene relacin con otras tablas.
Si se usa CASCADE, es de mucho cuidado, elimina los datos de la
tabla y todos los datos de todas las tablas que tengan alguna
relacion directa con el FK o indirecta. No elimina estructura.
POSTGRESQL
SINTXIS
ALTER TABLE nombreTabla1
ADD campoTabla1 tipo
ALTER TABLE nombreTabla1
ADD COLUMN campoTabla1 tipoCampoTabla1 NOT NULL/NULL
ALTER TABLE nombreTabla1
ALTER COLUMN campoTabla1 SET NOT NULL;
ALTER TABLE nombreTabla1
ALTER COLUMN campoTabla1 DROP NOT NULL;
ALTER TABLE nombreTabla1
ALTER COLUMN campoTabla1 SET DATA TYPE tipoCampoTabla1
ALTER TABLE nombreTabla1
ADD CONSTRAINT nombreRestriccion FOREIGN KEY (FKEYcampoTabla1)
REFERENCES nombreTabla2(PKEYcampoTabla2)
ALTER TABLE nombreTabla1
ADD CONSTRAINT nombreRestriccion PRIMARY KEY (PKEYcampoTabla1)
Si se hace a una tabla BASE con datos, la tabla se elimina por completo (datos y estructura) y do
haya FK que involucren los PK de la tabla eliminada, tambin se eliminan los FK pero quedan los da
en las tablas donde exista el FK. Luego se crea nuevamene la tabla y se crean nuevamente los FK do
estaban si se requiere.
ALTER TABLE nombreTabla
RENAME COLUMN campoTabla TO NuevoNombreCampoTabla
ALTER TABLE nombreTabla
RENAME to NuevoNombreTabla
EJERCICIO
ALTER TABLE t_paciente
ADD tele_cli integer;
ALTER TABLE tab_programavuelo
ADD COLUMN lineaaerea character varying(45) NOT NULL
ALTER TABLE t_cliente
ALTER COLUMN nom_cl SET NOT NULL;
ALTER TABLE t_cliente
ALTER COLUMN nom_cl DROP NOT NULL;
ALTER TABLE t_cliente
ALTER COLUMN nom_cl SET DATA TYPE character varying(50);
ALTER TABLE t_paciente
ADD CONSTRAINT fk_paciente_ciudad FOREIGN KEY (fk_id_ciudad)
REFERENCES t_ciudad (id);
ALTER TABLE t_telefono
ADD CONSTRAINT pk_id_paciente PRIMARY KEY(id);
INSTRUCCIN
Obtener toda la estructura de las columnas de una tabla con el
detalle de los tipos de datos y si es null o not null.
POSTGRESQL
SINTXIS
SELECT
TABLE_NAME,COLUMN_NAME,UDT_NAME,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'nombreTabla'
SELECT * FROM nombreTabla
Se usa el asterisco (*) para seleccionar todas las columnas de una tabla.
SELECT campo1Tabla, campo2Tabla, ...
FROM nombretabla
Se usa para seleccionar algunas columnas de una tabla.
SELECT campo1Tabla, camp2Tabla, .
--Tambin puede ser el asterisco (*)
FROM nombreTabla
WHERE campo1Tabla operadorRelacional valor
Los operadores relacionales son los siguientes:
= igual
<> distinto
> mayor
< menor
>= mayor o igual
<= menor o igual
Los operadores lgicos son los siguientes:
AND, significa "y",
OR, significa "o",
NOT, significa "no", invierte el resultado
Los operadores lgicos se usan para combinar condiciones.
UPDATE nombreTabla
SET campo1Tabla = nuevo valor
WHERE condicin
VARIOS REGISTROS AL TIEMPO-->
UPDATE nombreTable
SET campo1Tabla='algo1', campo2Tabla=algo2
WHERE campo1Tabla='algo'
DELETE FROM nombreTabla [*]
WHERE campo1Tabla='algo'
--Lo que est en los corchetes cuadrados es opcional, de todos modos borra todos los datos,
segn se cumpla la opcin del WHERE.
DELETE FROM nombreTabla
Si la tabla tiene datos y su PK es parte de otras tablas como FK no deja borrar la tabla.
DELETE FROM nombreTabla
WHERE condicin
EJERCICIO
SELECT TABLE_NAME,COLUMN_NAME,UDT_NAME,CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 't_cama';
SELECT *
FROM t_paciente
WHERE id=2
SELECT idlibro
FROM t_libro
WHERE (autor='Borges' OR editorial='Paidos') AND (precio<20);
UPDATE t_medico
SET fk_id_jefemedico = 2
WHERE id=3 OR id=5
UPDATE t_medico
SET nombre='Marcelo Marin', telefono=74411112
WHERE nombre='Marcela Morn'
DELETE FROM t_ciudad *
WHERE id=16
DELETE FROM t_ciudad
DELETE FROM t_ciudad
WHERE ciudad='San Gil'
Si el serial estaba en 12, borra los datos y la prxima insercn es en el serial 13.
E CONSOLA de PSQL
CREATE nombreBD;
\c nombreBD
DROP DATABASE nombreBD;
DROP TABLE nombreTabla;