Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2010-12

llaves

8 messages · 3 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Lissy Amador

Hola!
Alguien sabe como hacer una select o un insert con llaves, yo pongo esto: SELECT 'A_NOMBRE' FROM A WHERE 'B_ID'= a; pero por alguna razon tengo erro!

Agradecere sus comentarios!

Reply by email

Giuseppe Luigi Punzi
to Lissy Amador
Lissy Amador wrote 9 lines
Hola! Alguien sabe como hacer una select o un insert con llaves, yo pongo esto: SELECT 'A_NOMBRE' FROM A WHERE 'B_ID'= a; pero por alguna razon tengo erro! Agradecere sus comentarios!

a) Cuando algo te d� error, si nos pones el error, mejor... b) Si muestras la estructura de las tablas, mejor, porque quiz�s el error es que el campo B_ID no existe en la tabla A
c) SELECT e INSERT son dos cosas distintas, para la �ltima sobre todo, tienes que conocer la estructura de la tabla.

-- Giuseppe Luigi http://www.lordzealon.com

Reply by email

Giuseppe Luigi Punzi
to Lissy Amador: Hola! Alguien sabe como hacer una select o un insert con llaves, yo pongo esto: SELECT…
Lissy Amador wrote 5 lines
Hola! Alguien sabe como hacer una select o un insert con llaves, yo pongo esto: SELECT 'A_NOMBRE' FROM A WHERE 'B_ID'= a; pero por alguna razon tengo erro!

Existen mucho manuales gratuitos en Internet para aprender SQL, una r�pida b�squeda, me devuelve por ejemplo �ste.

http://www.desarrolloweb.com/manuales/9/

Un saludo.

-- Giuseppe Luigi http://www.lordzealon.com

Reply by email

Lissy Amador

Hola a Todos!
Recurro a ustedes, talvez me puedan ayudar
Como puedo utilizar las llaves primarias y las foraneas en tablas para BD?

Reply by email

Giuseppe Luigi Punzi
to Lissy Amador

El vie, 03-12-2010 a las 19:47 +0000, Lissy Amador escribi�:

Hola a Todos! Recurro a ustedes, talvez me puedan ayudar Como puedo utilizar las llaves primarias y las foraneas en tablas para BD?

Qu� es lo que quieres hacer exactamente.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20101203/df1636e9/attachment-0001.html>

Reply by email

Lissy Amador
to Giuseppe Luigi Punzi

en una tabla solo puedo tener una llave, o puedo tener una llave de cada clase? que tanto cambia el uso de llaves, me refiero al hacer una tabla, puedo declarar un campo como llave o no lo puedo hacer, cuales son las ventajas de declarar campos con X tipo de llave

Earlier message 14 lines
----- Mensaje original ----- De: Giuseppe Luigi Punzi <glpunzi en lordzealon.com> Para: lazarus-es en lists.lazarus.freepascal.org Enviado: Fri, 03 Dec 2010 20:37:31 -0000 (UTC) Asunto: Re: [Lazarus-es] Llaves El vie, 03-12-2010 a las 19:47 +0000, Lissy Amador escribi�: > Hola a Todos! > Recurro a ustedes, talvez me puedan ayudar > Como puedo utilizar las llaves primarias y las foraneas en tablas para BD? Qu� es lo que quieres hacer exactamente.

Reply by email

José Mejuto
to Lissy Amador

Hello Lissy,

Friday, December 3, 2010, 9:43:16 PM, you wrote:

LA> en una tabla solo puedo tener una llave, o puedo tener una llave de cada clase? LA> que tanto cambia el uso de llaves, me refiero al hacer una tabla, puedo declarar LA> un campo como llave o no lo puedo hacer, cuales son las ventajas de declarar LA> campos con X tipo de llave

Uso ingl�s, la "traducciones" al espa�ol suelen hacerse diferentes en cada pais y claro, luego nadie se entiende:

Primary Key: Identifica inequ�vocamente un �nico registro en la tabla en la que est� presente. Es "unique" o sea, que no puede repetirse. No puede ser NULL. Normalmente se genera con un campo de autoincremento o con un trigger "Before Insert". Suele ser INTEGER o INT64 seg�n necesidades. Se crea un index para ese campo.

Key Index: Se usa para un acceso r�pido a uno o varios registros dentro de una tabla. Se genera un index para ese campo. Puede aceptar NULLs, puede tener o no duplicados (varios registros con el mismo valor). Acceso r�pido a los registros que cumplen una condici�n que se comprueba sobre ese campo.

Foreign Key: Suele ser un campo que apunta a un valor de un "Primary Key" de otra tabla. El campo enlazado no es obligatorio que sea una "Primary Key". Se usa para enlazar virtualmente dos tablas y para mantener la integridad referencial. Esto es, que si tenemos por ejemplo una tabla de facturas esta tiene una "Foreign Key" con la tabla clientes, de modo que si el usuario intenta borrar un cliente que tiene facturas asignadas, no nos deja (excepci�n) o si se lo hemos indicado, primero nos borra todas las facturas del cliente y luego el cliente. Tambi�n crea un indice en disco para ese campo.

Ejemplo de BD usando las claves:

Tabla Clientes
--------------
IDCLIENTE -> Primary key, autoincrementado.
NOMBRE_CLIENTE -> Texto (Varchar)

Tabla Facturas
--------------
IDFACTURA -> Primary Key, autoincrementado.
IDCLIENTE -> Foreign Key en CLIENTES.IDCLIENTE
CODFACTURA-> Index Key, unique, non-NULL. (num�rico o texto) IMPORTE -> Valor num�rico

Tabla Albaranes
---------------
IDALBARAN -> Primary Key, autoincrementado.
IDCLIENTE -> Foreign Key en CLIENTES.IDCLIENTE (non-NULL) IDFACTURA -> Foreign Key en FACTURAS.IDFACTURA (Permitir NULLs) CONCEPTO -> Texto
IMPORTE -> Num�rico.

Si pretendemos borrar un cliente nos dar� error bien si tiene facturas asignadas, o bien si tiene alabaranes asignados, si no es as� lo borra perfectamente.

Si pretendemos borrar una factura nos dar� error si hay uno o m�s albaranes asignados a esa factura, de modo que al dise�ar la base de datos, en concreto la "Foreign Key" de Albaranes->Facturas le decimos que "SET TO NULL", de modo que cuando borramos una factura, no borra los albaranes, si no que pone el campo "ALBARANES.IDFACTURA" a NULL indicando que no hay factura asignada. Si le decimos que "CASCADE" si borramos la factura nos borrar� los albaranes asociados.

Las mismas comprobaciones se hacen al ingresar nuevos datos, las "Foreign Key" no nos dejan crear una factura que apunte a un cliente que no existe, pero si nos deja crear un albar�n que no tiene factura ya que su "foreign key" (ALBARANES.IDFACTURA) acepta NULLs. Pero no permite asignar un albar�n a una factura que no existe, de modo que ALBARANES.IDFACTURA s�lo acepta como valores cualquiera que est� en FACTURAS.IDFACTURA o NULL.

Hay m�s tipos de �ndices como los composite, hay m�s modos de trabajo de las "Foreign Key", pero esos son los m�s comunes y los que suelen estar presentes en todas las RDBMS.

Best regards, Jos�

Reply by email

Lissy Amador
to José Mejuto

Gracias por la info.
tengo que irme pero me servira de mucho

Earlier message 91 lines
----- Mensaje original ----- De: Jos� Mejuto <joshyfun en gmail.com> Para: Spanish version of Lazarus List <lazarus-es en lists.lazarus.freepascal.org> Enviado: Fri, 03 Dec 2010 23:34:05 -0000 (UTC) Asunto: Re: [Lazarus-es] Llaves Hello Lissy, Friday, December 3, 2010, 9:43:16 PM, you wrote: LA> en una tabla solo puedo tener una llave, o puedo tener una llave de cada clase? LA> que tanto cambia el uso de llaves, me refiero al hacer una tabla, puedo declarar LA> un campo como llave o no lo puedo hacer, cuales son las ventajas de declarar LA> campos con X tipo de llave Uso ingl�s, la "traducciones" al espa�ol suelen hacerse diferentes en cada pais y claro, luego nadie se entiende: Primary Key: Identifica inequ�vocamente un �nico registro en la tabla en la que est� presente. Es "unique" o sea, que no puede repetirse. No puede ser NULL. Normalmente se genera con un campo de autoincremento o con un trigger "Before Insert". Suele ser INTEGER o INT64 seg�n necesidades. Se crea un index para ese campo. Key Index: Se usa para un acceso r�pido a uno o varios registros dentro de una tabla. Se genera un index para ese campo. Puede aceptar NULLs, puede tener o no duplicados (varios registros con el mismo valor). Acceso r�pido a los registros que cumplen una condici�n que se comprueba sobre ese campo. Foreign Key: Suele ser un campo que apunta a un valor de un "Primary Key" de otra tabla. El campo enlazado no es obligatorio que sea una "Primary Key". Se usa para enlazar virtualmente dos tablas y para mantener la integridad referencial. Esto es, que si tenemos por ejemplo una tabla de facturas esta tiene una "Foreign Key" con la tabla clientes, de modo que si el usuario intenta borrar un cliente que tiene facturas asignadas, no nos deja (excepci�n) o si se lo hemos indicado, primero nos borra todas las facturas del cliente y luego el cliente. Tambi�n crea un indice en disco para ese campo. Ejemplo de BD usando las claves: Tabla Clientes -------------- IDCLIENTE -> Primary key, autoincrementado. NOMBRE_CLIENTE -> Texto (Varchar) Tabla Facturas -------------- IDFACTURA -> Primary Key, autoincrementado. IDCLIENTE -> Foreign Key en CLIENTES.IDCLIENTE CODFACTURA-> Index Key, unique, non-NULL. (num�rico o texto) IMPORTE -> Valor num�rico Tabla Albaranes --------------- IDALBARAN -> Primary Key, autoincrementado. IDCLIENTE -> Foreign Key en CLIENTES.IDCLIENTE (non-NULL) IDFACTURA -> Foreign Key en FACTURAS.IDFACTURA (Permitir NULLs) CONCEPTO -> Texto IMPORTE -> Num�rico. Si pretendemos borrar un cliente nos dar� error bien si tiene facturas asignadas, o bien si tiene alabaranes asignados, si no es as� lo borra perfectamente. Si pretendemos borrar una factura nos dar� error si hay uno o m�s albaranes asignados a esa factura, de modo que al dise�ar la base de datos, en concreto la "Foreign Key" de Albaranes->Facturas le decimos que "SET TO NULL", de modo que cuando borramos una factura, no borra los albaranes, si no que pone el campo "ALBARANES.IDFACTURA" a NULL indicando que no hay factura asignada. Si le decimos que "CASCADE" si borramos la factura nos borrar� los albaranes asociados. Las mismas comprobaciones se hacen al ingresar nuevos datos, las "Foreign Key" no nos dejan crear una factura que apunte a un cliente que no existe, pero si nos deja crear un albar�n que no tiene factura ya que su "foreign key" (ALBARANES.IDFACTURA) acepta NULLs. Pero no permite asignar un albar�n a una factura que no existe, de modo que ALBARANES.IDFACTURA s�lo acepta como valores cualquiera que est� en FACTURAS.IDFACTURA o NULL. Hay m�s tipos de �ndices como los composite, hay m�s modos de trabajo de las "Foreign Key", pero esos son los m�s comunes y los que suelen estar presentes en todas las RDBMS. -- Best regards, Jos�

Reply by email