Aprendiendo SQL con PostgreSQL - Tablas y campos

4 - Tablas y campos

[editar]
Monografía creado por Manuel Montoya. Extraido de: http://www.mononeurona.org/index.php?idp=252
20 de Octubre de 2005

Como cualquier otra base de datos, PGSQL guarda los datos en tablas. Si usted ha usado una hoja de cálculo como Excel u OpenCalc usted ya posee el concepto de tabla: una serie de columnas y renglones en donde las intersecciones son llamadas “celdas”. De hecho, una hoja de cálculo puede considerarse un tipo de base de datos. La diferencia principal con una verdadera base de datos radica en que cada columna guarda un tipo de valor específico (números, decimales, fechas, alfanuméricos, ) y que en lugar de “celdas”, el lugar donde se guardan los datos son llamados “campos”. Por otra parte, a los renglones se les llama “registros”.

De este modo, para crear una tabla es necesario definir el tipo de información que se almacenara en cada columna. PgSQL posee varios tipos de datos, los más usados son:

  • VARCHAR(n) Almacena cadena de caracteres de longitud variable, de longitud máxima n.
  • CHAR(n). Almacena cadena de caracteres de longitud fija, de longitud n.
  • INTEGER. Almacena números enteros como 2,33,107,15228, etc.
  • NUMERIC. Almacena números enteros y decimales.
  • DATE, almacena fechas.
  • FLOAT: numérico con signo de doble palabra y coma flotante.

  • TEXT. Guarda textos largos.
  • SERIAL. Crea una secuencia y la asigna a una columna como llave de la tabla.

Para crear una tabla se usa el comando “CREATE TABLE nombre_de_tabla”. Por ejemplo, vamos a crear la tabla empleados. Corte y pegue las siguientes lineas :

CREATE TABLE empleados (
id serial, --Indice de la tabla
nombre varchar(50), --nombre del empleado
rfc varchar(20) UNIQUE, --registro de hacienda del empleado
fecnac date, --fecha de nacimiento del empleado
sucursal varchar(30), --sucursal donde labora
sueldo money NOT NULL --Sueldo
);

SQL acepta comentarios, simplemente escríbalos después de un doble guión (--). Verá un mensaje indicando que se ha creado una tabla y una secuencia para el campo id.

Al hacer uso de psql debemos concluir los comandos SQL con un punto y coma (;) de otro modo, si sólo damos enter, el comando no se ejecutará y el prompt cambiará de un signo de igual(=) a un guión, indicando que psql está en espera del punto y la coma para ejecutar el comando SQL. Por otra parte, si abre un paréntesis [(] y da enter sin cerrarlo, el prompt de psql mostrará un paréntesis de cierre indicando que debe cerrarlo.

Por convención (no sólo en PostgreSQL sino en todas las bases de datos) se usan las MAYÚSCULAS para escribir las palabras SQL en las sentencias, mientras que el nombre de los campos y las tablas se escriben en minúsculas, por ejemplo:
SELECT nombre, fecha FROM ventas;

Algunos diseñadores recomiendan nombrar a los campos de una tabla con el formato nbd_ntb_campo. Donde nbd es el nombre de la base de datos y ntb es el nombre de la tabla. Yo encuentro particularmente fastidioso usar este sistema de nombrado sobre todo en los queries de varias tablas. Sin embargo, es una buena practica hacerlo si usted esta trabajando con varias personas en un proyecto y desea evitar confusiones.

Dado que usamos el tipo “serial” al crear la columna id, se creará una secuencia para esta columna. El nombre de las secuencias se crea conjuntando el nombre de la tabla, mas el nombre de la columna más el postfijo “seq”. De modo que en este caso la secuencia se llamará empleados_id_seq. Ya que hemos creado la tabla, teclearemos el comando “\dt”

dbmiempresa=# \dt;

Este comando dt (describe tables) muestra las tablas (también llamadas “relaciones”) de la base de datos así como el dueño de la tabla (el usuario postgres). En este caso sólo veremos una tabla, la recién creada “empleados”. Para ver la descripción de una tabla específica utilice “\d tabla”. Por ejemplo:

psql

De esta manera usted puede recuperar los detalles de una tabla, como el tipo de cada campo. Por otra parte el comando “\ds” (describe sequences) muestra las secuencias que existen en la BD.

Note, además que al crear la columna rfc añadimos la indicación UNIQUE que indica que los valores listados en esa columna deben ser únicos, pues dos empleados no pueden tener el mismo rfc. La indicación NOT NULL en la columna sueldo indica que al insertar un registro (o renglón) ese campo no puede quedar vacío y forzosamente debe tener un valor.

Ahora insertemos algunos registros a nuestra tabla, para ello usamos el comando INSERT INTO, el cual posee el siguiente formato:

INSERT INTO tabla (columna1, columna2) VALUES ('valor uno', 'valor dos');

Corte y pegue las siguientes líneas:

INSERT INTO empleados (id, nombre,rfc, fecnac, sucursal, sueldo) VALUES (NEXTVAL('empleados_id_seq'), 'Mario Lopez', 'MLG598777','11-06-1977', 'Merida', '9800.00');
INSERT INTO empleados (id, nombre,rfc, fecnac, sucursal, sueldo) VALUES (NEXTVAL('empleados_id_seq'), 'Jorge Marles', 'MLG1545487','18-07-1969', 'Chiapas', '14500.00');
INSERT INTO empleados (id, nombre,rfc, fecnac, sucursal, sueldo) VALUES (NEXTVAL('empleados_id_seq'), 'Manuel Montoya', 'ERT7890','11-06-1977', 'Toluca', '15900.00');
INSERT INTO empleados (id, nombre,rfc, fecnac, sucursal, sueldo) VALUES (NEXTVAL('empleados_id_seq'), 'Luciano Perez', 'JKJ110777','11-06-1977', 'Guadalajara', '1000.00');

Los valores de los campos de tipo VARCHAR, DATE y MONEY deben ir entre comillas simples mientras los NUMERIC e INTEGER no las necesitan. Ahora que ya vio como se hace, agregue algunos empleados usted mismo.

Como habrá notado, la función NEXTVAL('secuencia') simplemente agrega el siguiente valor de una secuencia a la columna id, de este modo tendremos un campo en nuestra tabla que nunca se repetirá y que (como veremos) es muy útil. Observará, además, que luego de insertar un registro psql le devolverá el mensaje “INSERT 1” que indica que el registro ha sido agregado con éxito. Ahora veamos nuestros registros.

[editar]

7 opiniones

Pregunta.

Necesito saber como hacer una relacion entre 2 o mas tablas en una base de datos realizado en postgres sql. Agradeceria me respondieras lo mas pronto posible.
Buenos capitulos.

Aprender el curso siguiendo los capitulos se hace muy sencillo y relativamente comprensible. Personalmente estoy agradecido por la calidad de los capitulos.
Muy bueno.

Sencillo y muy practico me ayudó mucho, desearia si alguien me puede ayudar conocer la administracion postgresql: asignacion de tablespaces, priviliegios y roles. Gracias.
Sql.

Me parece muy bien este curso pues rapidamente te enseña bases para el manejo del mismo.
Necesito un cursode base de datos.

Espero que me envian alguna informacion de como empezar a programar base de datos y que necesito estoy dispuesto ha aprender como sea y en cualquier programa que recomienden. Se los agradecere mucho.
1 2 | siguiente >

Monografías relacionados con 'Aprendiendo SQL con PostgreSQL'

La base de datos es el corazón de toda empresa, en ella se almacena y... Más »

Autor y licencia de 'Aprendiendo SQL con PostgreSQL'


Monografía de Manuel Montoya. Extraido de: http://www.mononeurona.org/index.php?idp=252 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.