Foro oficial de SQL

snaiperx

Lanero Reconocido
Se unió
13 Abr 2002
Mensajes
720
CREATE TABLE programmers

(rec_id INT, emp_id INT,

INDEX (emp_id),

FOREIGN KEY (emp_id) REFERENCES employees(rec_id)

ON DELETE CASCADE)

TYPE=INNODB;
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
snaiperx dijo:
CREATE TABLE programmers

(rec_id INT, emp_id INT,

INDEX (emp_id),

FOREIGN KEY (emp_id) REFERENCES employees(rec_id)

ON DELETE CASCADE)

TYPE=INNODB;
por favor si van a aportar algo les pido muy amablemente que expliquen para que sirve, por si no quedamos en las mismas, gracias muy amables. att. el duelo del foro
 

snaiperx

Lanero Reconocido
Se unió
13 Abr 2002
Mensajes
720
Simplemente crea un tabla programadores que contiene una llave foranea provieniente de la tabla empleados , alguien pregunto como se creaba llaves foraneas en mysql pos ahi eta
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
que bien muy buen post, perdone si no le gusto lo qeu dije pero, hay que hacer la salvedad, por que si no digo eso nunca ubiese sabido para que era. gracias por su aporte.
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
por fa un ejemplo de como mostrar dos tablas en una sola consulta claro si se puede.
 

mouffetard

Lanero Reconocido
Se unió
30 Ene 2005
Mensajes
184
meickol dijo:
por fa un ejemplo de como mostrar dos tablas en una sola consulta claro si se puede.
Puedes utilizar un JOIN, que te junta dos tablas "horizontalmente" o puedes utilizar un UNION que te une dos tablas "verticalmente"

Ejemplo de un JOIN
Código:
SELECT  E.NOMBRE, S.NOMBRE
FROM EMPLEADOS E, OFICINAS S
WHERE S.CODIGO = E.OFICINA
Ejemplo de un UNION
Código:
SELECT RM.VALOR
FROM RESULTADOS_MEDELLIN RM
UNION 
SELECT RB.VALOR
FROM RESULTADOS_BOGOTA RB
Espero te ilustre un poco. Puedes buscar más información en internet.
 

mouffetard

Lanero Reconocido
Se unió
30 Ene 2005
Mensajes
184
Un poco de esfuerzo

meickol dijo:
viejo men aregla los ejemplitos ponlos un poquito mas claros. porfa !!!!
meickol, quisiera hacerte un aporte que creo constructivo y espero que resulte positivo. He leído en el foro que las personas se han esforzado con su tiempo y pensamiento (yo también lo he hecho), para darte algunas respuestas. Estas respuestas, por cientos de motivos, no son absolutamente completas, son indicaciones que debes investigar para obtener tu solución completa.

Esto no se hace con malas intenciones, por el contrario, los miembros de esta comunidad te están donando su tiempo y conocimientos. Ahora tu deben esforzarte tratando de entender el resto del problema. Generalmente, cuando las personas se dan cuenta que te haz esforzado, se animan a ayudarte aun más.

Animo pues, y cuando hayas entendido que existen dos tablas: OFICINAS y EMPLEADOS que tienen una relación 1 a n, entonces podrás preguntar más detalles para entender el problema. Seguro volveremos a colaborarte con tus dudas.
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
ver hermano yo al verdad entro a este foro es por qur no entiendo loq eu dicen los manuales , por eso pregutno y si me colocan una respuesta igual de qeu me sirve de todos modos gracias por la ayuda!!!!!:
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
menes una pregunta como hago para que al momento de crear una tabla uno de sus campos no acpete un numero mayor de 1500??? e buscado y buscado y nada .. por fa es urgente!!!!a que me respoda bien le regalo un karma.
 
Se unió
22 Abr 2004
Mensajes
5,299
necesitas que no inserte un valor mayor a 1500 ??? ... en sql .. juaaa... yo lo haria de esta forma

var = dato_ingresado

if var > 1500 then
'no puede ingresarse
else
'se puede ingresar
---> aca metes tu instruccion SQL
end if

jajajaja asi de facil y sencillo :p solo era cuestion de validarlo antes de meterlo :D
 

poppetmaster

Lanero Reconocido
Se unió
11 Feb 2004
Mensajes
788
meickol dijo:
menes una pregunta como hago para que al momento de crear una tabla uno de sus campos no acpete un numero mayor de 1500??? e buscado y buscado y nada .. por fa es urgente!!!!a que me respoda bien le regalo un karma.
utiliza un check para el campo que quieres que no guarde un valor mayor al que tu requieres, ejemplo:
EST_ID VARCHAR(4) CHECK (EST_ID <= 1500)
no se cual es el comportamiento de esto en mysql, lo citado anteriormente lo saque de la siguiente fuente:
http://linuca.org/pipermail/linuxcantabria/2003-July/002426.html
En postgres y Oracle trabajan bien.
 

jasz

Lanero Reconocido
Se unió
10 Ene 2002
Mensajes
1,295
en postgresql es LIMIT
Código:
select foo, bar  from myTable limit 20;

select foo, bar from myTable limit 20 offset 20;
el 1er ejemplo saca los 20 primeros resultados, el 2do ejemplo saca la segunda "pagina", es decir, los resultados 40-60 ... (para hacer paginacion).

Para sacar datos de dos (o mas) tablas en un solo query, se puede hacer con aliases, joins, o unions, como lo dijeron arriba, pero los joins suelen ser mas rapidos:

Código:
SELECT a.foo , b.bar FROM myTable a 
  LEFT JOIN myOtherTable b ON b.commonField = a.commonField
WHERE (... )
LIMIT (...)
OFFSET (...)
Lo mas chevere es cuando quiere sacar sumas y porcentajes en una sola...
 

poppetmaster

Lanero Reconocido
Se unió
11 Feb 2004
Mensajes
788
jasz dijo:
en postgresql es LIMIT
Código:
select foo, bar  from myTable limit 20;

select foo, bar from myTable limit 20 offset 20;
el 1er ejemplo saca los 20 primeros resultados, el 2do ejemplo saca la segunda "pagina", es decir, los resultados 40-60 ... (para hacer paginacion).

Para sacar datos de dos (o mas) tablas en un solo query, se puede hacer con aliases, joins, o unions, como lo dijeron arriba, pero los joins suelen ser mas rapidos:

Código:
SELECT a.foo , b.bar FROM myTable a 
  LEFT JOIN myOtherTable b ON b.commonField = a.commonField
WHERE (... )
LIMIT (...)
OFFSET (...)
Lo mas chevere es cuando quiere sacar sumas y porcentajes en una sola...
jasz estas mostrando como trabaja un limit en postgres... o estas repondiendo una duda...???
bueno de todas maneras es buen aporte......
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
poppetmaster !!!! nada no me sirvio eso de check lo intente de todas maneras y nada . por favor ayudenme, osea no poder ingresar una cifra mayor de 1500 en una columna, como se hace por favor!!!!
 
Se unió
22 Abr 2004
Mensajes
5,299
meickol dijo:
poppetmaster !!!! nada no me sirvio eso de check lo intente de todas maneras y nada . por favor ayudenme, osea no poder ingresar una cifra mayor de 1500 en una columna, como se hace por favor!!!!
puesssss LEEEEE todas las opciones que pusimos... se me hace increible que tantas soluciones no encuentres la que deseas
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
men que hago si no me sirvio nada se los agradesco con todo el alma pero nada men, ni lo del check, ni lo de limit por que es para posgrest ademas no es sobre php es en sql puro que tengo qeu hacerlo. me he leido el manuel pero nada y como igual esta en ingles, no es que entienda muchao aunque se algo de ingles, mejor dicho estoy apurado.jejeje
 
Se unió
22 Abr 2004
Mensajes
5,299
pues yo ni nadie te dio una solucion en php yo solo te dije que ese valor lo validaras antes de meterlo a la instruccion SQL para que te diga si es valido o no... :S pero bueno si no te sirve que mas da... salu2!
 

CHiKi

Lanero Reconocido
Se unió
17 Feb 2003
Mensajes
443
lo del Limit es para sacar de la consulta los valores que uno desea, por ejemplo sacar de un query que genera 1000 registros sólo sacar 20.... eso es con LIMIT... en mysql y postgres se manejan similar, sino que en postgres es como dice JAZS:
limit 20 offset 20
y en mysql es
limit 20,20..

Para no dejar meter un valor mayor a 1500 en una columna de una tabla, por ejemplo que en el campo salario no sobre pase 1500 se hace con un check en el SGBD ya sea postgres, mysql, oracle o lo que sea.. se hace con chequeos (cheks) como dijo poppetmaster pero así:

create table USUARIOS (SALARIO CHAR(10) null constraint CKC_SALARIO_USUARIOS check (SALARIO is null or (SALARIO between '0' and '1500' )));

y CKC_SALARIO_USUARIOS es el nombre del check que lo puedes definir como quieras
 

.:*MeickoL*:.

Lanero Reconocido
Se unió
4 Ene 2005
Mensajes
528
vea hermano pruebe ese codigo en mysql y si le sirve sin ningun error me avisa por que a mi no me sirve y he buscado informacionen el manual de mysql y es funcion no sale, por favor ayuda, comprendanme !!!! , y con lo de el modo bach tambien ayudeneme!!!!! ya solo me quedan dos dias !!! . gracias de antemano!!!jeeee. ha algo tengo mysql 4.1 osea no se si sera por la version .
 
Arriba