• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Ayuda con SQL

    Programado Fijo Cerrado Movido
    Software
    4
    11
    1.4k
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • marcaljM
      marcalj
      Última edición por

      A ver, de mis apuntes de SQL tengo esto:

      Vistas:
      –------

      CREATE VIEW nombre_vista (columna1, columna2, … columnaN) AS SELECT columna1, columna2, … columnaN FROM tabla1, tabla2, … tablaN WHERE …..

      Bien, cuando creas la tabla le dices el nombre que quieras i entre parentesis las columnas o variables que quieres que tenga. Luego cuando haces el "SELECT" ten en cuenta que solo puedes pillar "N" columnas o variables, si no no sabra donde poner las de más o las de menos.

      Recuerda que las vistas se quedan en memoria hasta que no la borras:

      DROP VIEW nombre_vista

      Puedes meter mas cosas, como el "RESTRICT" o el "CASCADE" pero ya no me acuerdo muy bien…

      Espero que te sirva.

      Salu2!

      1 Respuesta Última respuesta Responder Citar 0
      • vallekanoV
        vallekano
        Última edición por

        Si, esa es una vista normal y las tengo más que controladas, pero el problema es que la SELECT que hay dentro de la vista es el resultado de un procedimiento.

        Pongo el código:

        SET TERM //;
        CREATE PROCEDURE Apartado3cAux
        RETURNS (tabla CHARACTER(31),indice CHARACTER(31),tipo CHARACTER(25),activo CHARACTER(10)) AS
        DECLARE VARIABLE T CHARACTER(31);
        DECLARE VARIABLE I CHARACTER(31);
        DECLARE VARIABLE U SMALLINT;
        DECLARE VARIABLE F CHARACTER(31);
        DECLARE VARIABLE ID SMALLINT;
        BEGIN
        FOR SELECT RDB$RELATION_NAME,RDB$INDEX_NAME,RDB$UNIQUE_FLAG, RDB$FOREIGN_KEY,RDB$INDEX_ID FROM RDB$INDICES
        WHERE RDB$RELATION_NAME NOT LIKE 'RDB$%'
        INTO :T,:I,:U,:F,:ID
        DO
        BEGIN
        tabla = :T;
        indice = :I;
        IF (:ID IS NULL) THEN
        activo='INACTIVO';
        ELSE
        activo='ACTIVO';
        IF (:U = 1) THEN
        IF (:ID=1) THEN
        tipo='CLAVE PRIMARIA';
        ELSE
        tipo ='INDICE UNICO';
        ELSE
        IF (:F IS NOT NULL) THEN
        tipo = 'CLAVE FORANEA';
        ELSE
        tipo = 'INDICE CON DUPLICADOS';
        SUSPEND;
        END
        END//
        SET TERM ;//

        Bien, pues necesito una vista que me devuelva lo que devuelve el procedimiento.

        Si pongo SELECT * FROM Apartado3cAux me da el resultado que yo quiero, pero tengo que obtenerlo a traves de una vista. Que obtenga el mismo resultado con SELECT * FROM Apartado3c siendo Apartado3c una vista.

        1 Respuesta Última respuesta Responder Citar 0
        • marcaljM
          marcalj
          Última edición por

          No se tio, ahi ya me quedo cojo, lo siento.

          Por cierto, que lenguaje es ese?

          1 Respuesta Última respuesta Responder Citar 0
          • vallekanoV
            vallekano
            Última edición por

            Publicado originalmente por marcalj
            **
            Por cierto, que lenguaje es ese?**

            Es SQL. xD Solo que ya un poquito complejo.

            1 Respuesta Última respuesta Responder Citar 0
            • daemonzD
              daemonz
              Última edición por

              Joder y yo ke me kedo en las consultas simples xD

              A esa variante no la llaman PL/SQL ?

              1 Respuesta Última respuesta Responder Citar 0
              • vallekanoV
                vallekano
                Última edición por

                Publicado originalmente por daemonz
                **Joder y yo ke me kedo en las consultas simples xD

                A esa variante no la llaman PL/SQL ?**

                Pues no tengo ni idea. A mi me lo enseñaron como SQL, a secas. Pero podría ser….....

                No hay ningún monstruo del SQL por aquí??????

                1 Respuesta Última respuesta Responder Citar 0
                • PaladiP
                  Paladi
                  Última edición por

                  Yo lo he dado este año, y tambien me he quedado con consultas simples, joins, subconsultas… de ahi no hemos pasado :$

                  1 Respuesta Última respuesta Responder Citar 0
                  • marcaljM
                    marcalj
                    Última edición por

                    Cojones que guapo…

                    Lo que el SQL no es un lenguaje, es un pseudo-lenguaje ya que no es ni lenguaje para script ni para compilacion, o algo raro me explicaron.

                    Pero bueno, se llamara algo parecido como comentaron mas arriba.

                    Por cierto, como lo usas? en un programa en C o como?

                    Salu2!

                    1 Respuesta Última respuesta Responder Citar 0
                    • vallekanoV
                      vallekano
                      Última edición por

                      No, es un procedimiento que se crea en la propia base de datos. Igual que creas una vista o un trigger pues puedes crear un procedimiento que haga cosas. Son eso, programitas que ejecuta el gestor de base de datos.

                      1 Respuesta Última respuesta Responder Citar 0
                      • daemonzD
                        daemonz
                        Última edición por

                        Publicado originalmente por marcalj
                        Lo que el SQL no es un lenguaje, es un pseudo-lenguaje ya que no es ni lenguaje para script ni para compilacion, o algo raro me explicaron.

                        Llevas razon, es un pseudolenguaje embedido en los propios gestores de la base de datos (SGBD), en mis apuntes le llama LMD (lenguaje de manipulacion de datos).

                        Comente lo del PL/SQL pq he oido hablar de el, y se ke es lo ke se utiliza para crear los triggers, algoritmos, etc.

                        1 Respuesta Última respuesta Responder Citar 0
                        • 1 / 1
                        • First post
                          Last post

                        Foreros conectados [Conectados hoy]

                        1 usuarios activos (0 miembros e 1 invitados).
                        febesin, pAtO,

                        Estadísticas de Hardlimit

                        Los hardlimitianos han creado un total de 543.3k posts en 62.8k hilos.
                        Somos un total de 34.8k miembros registrados.
                        seaofink ha sido nuestro último fichaje.