Herramientas de usuario

Herramientas del sitio


bases_de_datos:mysql:lenguaje_mysql

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
bases_de_datos:mysql:lenguaje_mysql [2016/12/05 21:29] – [Actualización de una tabla a partir de una subconsulta] albertobases_de_datos:mysql:lenguaje_mysql [2016/12/07 21:32] (actual) – [Eliminación de vistas] alberto
Línea 4: Línea 4:
 La forma más básica de crear una tabla es de la siguiente manera: La forma más básica de crear una tabla es de la siguiente manera:
 <WRAP box> <WRAP box>
-    CREATE TABLE [IF NOT EXISTS] NombreTabla ( +  CREATE TABLE [IF NOT EXISTS] NombreTabla ( 
-        NombreColumna TipoDato [, +      NombreColumna TipoDato [, 
-        NombreColumna TipoDato] ...);+      NombreColumna TipoDato] ...);
 </WRAP> </WRAP>
  
Línea 696: Línea 696:
 </code> </code>
 ===== Vistas ===== ===== Vistas =====
 +Una vista es una "tabla virtual" que se almacena en memoria y que se crea a partir de una consulta. Esta "tabla virtual" o "Vista", está "conectada" directamente a las tablas de origen, de forma que se mantiene constantemente actualizada en tiempo real. Podemos operar sobre la vista como si de una tabla corriente se tratase, sirviendo de interfaz con el usuario y los datos de interés.\\
 +
 +Ventajas del uso de vistas:
 +  * Seguridad y confidencialidad: La vista ocultará los datos a los que el usuario no tenga permiso de acceso.
 +  * Comodidad: Sólo muestra los datos relevantes, aunque pertenezcan en realidad a diferentes tablas. Se permite incluso trabajar con agrupaciones de filas como si se tratase de una sola, o composiciones de tablas como si fuera sólo una.
 +  * Sigue funcionando aunque se produzcan cambios en las tablas de origen (nombres de columnas, tablas, etc).
 +
 +==== Creación de vistas ====
 +<WRAP box>
 +    CREATE VIEW NombreVista 
 +      [( DefinicionColumna [,DefinicionColumna ...] )]
 +    AS Consulta;
 +</WRAP>
 +
 +Deben tenerse en cuenta algunas consideraciones cuando se crean vistas:
 +  * Si no empleamos nombres para las columnas y expresiones, sólo podremos referirnos a ellas con un SELECT *
 +  * No se puede usar la cláusula ORDER BY en la creación de una vista.
 +  * es obligatorio definir nombres de columnas o alias, cuando la vista devuelve funciones de agrupamiento (SUM, COUNT, etc), y posteriormente quiere hacerse referencia a ellas.
 +  * Pueden usarse funciones de agrupación para crear vistas. Después también es posible usar funciones de agrupación en las consultas sobre esas mismas vistas, de forma que podemos recuperar "dobles agrupamientos", que no están permitidos por el estándar.
 +Se pueden realizar consultas a las vistas, de la misma manera que se hacía a las tablas.
 +
 +==== Ejemplo ====
 +Creamos una vista para trabajar con los datos de dos tablas agrupados y seleccionando las filas que interesen (todos los departamentos que tengan más de dos empleados):
 +<code mysql>
 +CREATE VIEW resumen_emp_dep
 +  (departamento, 
 +   num_empleados,
 +   suma_salario)
 + AS SELECT dnombre,
 +           COUNT(emp_no),
 +           SUM(salario)
 +    FROM empleados, departamentos
 +    WHERE empleados.dep_no = departamentos.dep_no
 +    GROUP BY empleados.dep_no, dnombre
 +     HAVING COUNT(*) > 2;
 +</code>
 +     
 +Consultamos los datos del número de empleados por departamento:
 +<code mysql>
 +SELECT departamento, num_empleados
 +FROM resumen_emp_dep;
 +</code>
 +
 +Que resulta:
 +^departamento^num_empleados^
 +|CONTABILIDAD|3|
 +|VENTAS|4|
 +
 +==== Eliminación de vistas ====
 +<WRAP box>
 +    DROP VIEW [IF EXISTS] NombreVista
 +     [RESTRICT|CASCADE]
 +</WRAP>
 +
 +RESTRICT y CASCADE están permitidas pero no implementadas en la versión 5 de MySQL.
bases_de_datos/mysql/lenguaje_mysql.1480969784.txt.gz · Última modificación: por alberto

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki