Announcement

Collapse
No announcement yet.

en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

    hola estoy estudiando un manual de SQL, venia todo muy bien hasta que llegue a una parte donde empezo a hablar paginas y paginas sobre esto, pero como no lo entendi de entrada las otra paginas tampoco las entiendo...
    asi en criollo para que sirven? o porque se usan?

    gracias, saludos

  • #2
    Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

    A lo ninja, la primary key es un identificador unico y univoco de un registro (por lo general autonúmerica), la foreign key se aplica en una segunda tabla se utiliza para poder referenciar entre tablas.

    Un ejemplo básico es factura cabera y detalle, donde supone que en cabecera la PK es el numero de factura y tipo y en otra tabla detalle tenes los los items del comprobante, y para poder referenciar la FK de cada item es la PK de la tabla master teniendo una relación de uno a muchos, puesto que en una factura tenes un solo registro de cabecera y uno o más de los items de la factura (tantos como items tenga la factura). Esto te permite Joinear las tablas...

    Slds,
    eltincho

    Comment


    • #3
      Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

      La clave primaria pone siempre numérico. El que te da en case estudio. Por mas que tengas por ej el dni no lo uses de clave porque llegado al caso q aparezcan 2 iguales te va a travar eso

      Comment


      • #4
        Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

        Originally posted by eltincho84 View Post
        A lo ninja, la primary key es un identificador unico y univoco de un registro (por lo general autonúmerica), la foreign key se aplica en una segunda tabla se utiliza para poder referenciar entre tablas.

        Un ejemplo básico es factura cabera y detalle, donde supone que en cabecera la PK es el numero de factura y tipo y en otra tabla detalle tenes los los items del comprobante, y para poder referenciar la FK de cada item es la PK de la tabla master teniendo una relación de uno a muchos, puesto que en una factura tenes un solo registro de cabecera y uno o más de los items de la factura (tantos como items tenga la factura). Esto te permite Joinear las tablas...

        Slds,
        eltincho
        gracias x responder tincho!
        a ver mas en criollo seria conectar todo el contenido o los items de una tabla secundaria a un item/fila de la tabla principal?
        osea en una tabla principal tengo varias PK, y en una segunda tabla estan los contenidos de esas PK, pero conectados mediante una FK por cada PK de la 1° tabla? es asi o entendi cualquiera?

        Originally posted by Gera.Top.Fuel View Post
        La clave primaria pone siempre numérico. El que te da en case estudio. Por mas que tengas por ej el dni no lo uses de clave porque llegado al caso q aparezcan 2 iguales te va a travar eso
        gracias por responder gera!
        pero entendi solo la primer oracion, lo demas no

        Comment


        • #5
          Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

          Sigo con el ejemplo de la factura y linea de factura...
          Vos tenes varias facturas...

          factura con PK:1
          Linea de factura 1 PK:1 FK:1

          Linea de factura 2 PK:2 FK:1

          Linea de factura 3 PK:3 FK:1


          factura con PK:2
          Linea de factura 1 PK:1 FK:2

          Linea de factura 2 PK:2 FK:2

          Linea de factura 3 PK:3 FK:2


          Entonces cada factura tiene una PK, para poder identificarlas. Y cada linea de factura tambien tiene una PK para identificar cada item entre si, pero a su vez tiene una FK para identificar a que factura pertenece.

          Espero se entienda

          Comment


          • #6
            Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

            Tiene que ser Unico, autoincremental y numerico.

            Generalmente se le pone ID al campo PrimaryKey.

            Por ej tenes tabla Personas y tabla Paises

            Tabla Pises

            id pais
            1 Argentina
            2 Urugay
            3 Brasil

            Tabla Personas

            id nombre apellido id_pais
            1 pepe gomez 1
            2 cacho sarasa 2

            Es decir que pepe gomez es del pais Argentina y Cacho sarasa es del pais Uruguay.

            Saludos.

            Comment


            • #7
              Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

              Aporto a la confusion :P
              La primary key es la combinacion de columnas que NO SE VAN A REPETIR en la tabla, osea te sirve para identificar univocamente toda una LINEA.
              Si por ejemplo , vos tenes una lista de clients en una table conformada por DNI , nombre y apellido. DNI es la PK porque sabes que nunca va a haber dos clients con el mismo DNI.
              tambien si vos definis que el mail no se repite tampoco, la PK puede ser DNI y mail.
              la PK puede ser numero, string, lo que sea.

              La FK, normalmente hace referencia a la PK de otra table
              suponete que en la otra table tenes como PK la patente de un auto y el resto son descripciones , si vos tenes una FK en la table cliente que apunta a la PK de la table autos.
              cuando cargues un cliente, la patente que le cargues tiene que existir en la table autos.
              sino, va a chillar por la famosa integridad referencial.

              si queres entender sql bajate los CBT nuggets de sql que estan Buenos, o buscalos en gogle

              Comment


              • #8
                Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

                Originally posted by Gera.Top.Fuel View Post
                La clave primaria pone siempre numérico. El que te da en case estudio. Por mas que tengas por ej el dni no lo uses de clave porque llegado al caso q aparezcan 2 iguales te va a travar eso
                No. Puede ser alfanumerico el o los campos utilizados en una primary key(pk) , o foreign key(fk). Siempre hablando de sql que es el tema en cuestion.

                Muy buena explicacion la de gabrielgli.
                La fk es quiza la mas dificil de comprender.
                Tambien sirve para no borrar registros de una tabla que tenga pk , mientras existan registros en otra tabla con fk refenrenciando a la pk de la primera tabla.
                Si necesitas mas ejemplos avisa. Es la mejor forma de aprender.
                Last edited by ramrod; 12-02-2014, 21:41.

                Comment


                • #9
                  Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

                  Sumo a que... sin una PK ademas de duplicar datos...... sumado a unas FK, las consultas serian ETERNAS. Proba con una base de 50 mil registros... y fijate la velocidad con una base indexada y otra no

                  Comment


                  • #10
                    Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

                    Originally posted by Gera.Top.Fuel View Post
                    La clave primaria pone siempre numérico. El que te da en case estudio. Por mas que tengas por ej el dni no lo uses de clave porque llegado al caso q aparezcan 2 iguales te va a travar eso
                    No necesariamente, la PK puede ser alfaumérica

                    Comment


                    • #11
                      Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

                      Siempre hay que evitar que las pk sean alfanumericas por una cuestion de performance en la db.

                      Lo mejor es usar string numericos.

                      En caso de no poder contar con 2 emails o 2 dni iguales en una db, lo resolves del lado del formulario y no en la db.

                      No se en que lenguaje vas a programar o si estas estudiando para administrador de bases de datos..

                      Comment


                      • #12
                        Re: en lenguaje SQL - PRIMARY KEY y FOREIGN KEY, que hacen?

                        Originally posted by cris07 View Post
                        de entrada no te entendi, ahora que lo releí si... te agradezco la respuesta cris!!

                        Originally posted by El_tanoGol View Post
                        clarisimo, muchas gracias x responder tano!

                        Originally posted by gabrielgli View Post
                        perfecto muchas gracias gabriel!!

                        Originally posted by Leon View Post
                        claro ahora me cayo la ficha, sin esto le toma mas tiempo buscar la misma cosa...


                        Originally posted by El_tanoGol View Post
                        no voy a programar nada ni estoy haciendo un curso/carrera de esto tampoco, simplemente boludeando en internet me di cuenta que esto del SQL, mySQL, etc. tiene un uso masivo... y entonces me dio intriga saber que tan complicado es esto y como estoy de vacaciones, aproveche y me baje un manual para aprenderlo... de mas no está... algun dia si lo entiendo bien todo, capas me sirva...

                        saludos.

                        Comment

                        Working...
                        X