Curso SQL Practico

March 29, 2018 | Author: Aldo Ah | Category: Sql, Table (Database), My Sql, Databases, Server (Computing)


Comments



Description

CURSO SQL PRACTICOWintell Nov 2008 Curso SQL Practico ITConsulting Tel: 777-318-6493 Londres #109-A. Fracc. Prados de Cuernavaca CURSO SQL PRACTICO 1.-Tipos de datos............................................................................................................. 5 Tipos Numéricos............................................................................................................. 5 Tipos de Fecha y Hora. ................................................................................................... 5 Tipos Carácter. ............................................................................................................... 6 2.- Añadir registros nuevos. ............................................................................................ 7 Inserción simple.............................................................................................................. 7 Insercion de multiples tablas ........................................................................................... 7 3.- Borrado de Registros. ................................................................................................ 8 Eliminación Simple......................................................................................................... 8 Eliminación de múltiples tablas....................................................................................... 8 4.- Actualización de Registros......................................................................................... 9 Actualización Simple ...................................................................................................... 9 Actualización en base a múltiples tablas.......................................................................... 9 5.- Selección de registros ...............................................................................................10 Tabla comparativa de parámetros que agilizan la velocidad de selección........................10 Parámetros de agilización de conexiones........................................................................10 Connection TimeOut......................................................................................................10 Interactive Timeout........................................................................................................10 Read, Write y Wait Timeout ..........................................................................................10 Max Package Size..........................................................................................................11 Caching of hostnames ....................................................................................................11 Name Resolving ............................................................................................................11 SELECT ........................................................................................................................11 ALL...............................................................................................................................11 DISTINCT.....................................................................................................................11 DISTINCTROW............................................................................................................11 [HIGHPRIORITY] ........................................................................................................12 [STRAIGHT JOIN] .......................................................................................................12 select_expr.....................................................................................................................12 FROM ...........................................................................................................................12 WHERE ........................................................................................................................12 [GROUP BY] ................................................................................................................12 [ORDER BY] ................................................................................................................12 Ejemplos Prácticos.........................................................................................................12 Selección Simple ...........................................................................................................12 Selección de múltiples tablas .........................................................................................12 Selección de datos resultados de operaciones. ................................................................12 6.- Funciones SQL .........................................................................................................13 Funciones para cálculos de resúmenes o datos estadísticos.............................................13 Count.............................................................................................................................13 Greatest. ........................................................................................................................13 Least..............................................................................................................................13 Max. ..............................................................................................................................13 Min................................................................................................................................13 Sum. ..............................................................................................................................13 ITConsulting Pagina 2 de 39 Wintell Nov 2008 Indice CURSO SQL PRACTICO Avg................................................................................................................................13 Funciones para expresiones de selección con fechas.......................................................13 Addates..........................................................................................................................13 Addtime.........................................................................................................................13 current_date...................................................................................................................13 current_time...................................................................................................................13 date_add ........................................................................................................................14 date_sub.........................................................................................................................14 Date...............................................................................................................................14 Datediff .........................................................................................................................14 Day................................................................................................................................14 Month. ...........................................................................................................................14 Year...............................................................................................................................14 Dayname. ......................................................................................................................14 Dayofweek. ...................................................................................................................14 Dayofyear. .....................................................................................................................14 Extract. ..........................................................................................................................14 Hour. .............................................................................................................................14 Minute. ..........................................................................................................................14 Second...........................................................................................................................14 Now...............................................................................................................................14 Monthname....................................................................................................................14 str_to_date. ....................................................................................................................14 Timediff.........................................................................................................................14 Funciones de uso general. ..............................................................................................15 Upper.............................................................................................................................15 Lower. ...........................................................................................................................15 Substr. ...........................................................................................................................15 Substrindex....................................................................................................................15 Concat. ..........................................................................................................................15 Trim...............................................................................................................................15 Ltrim. ............................................................................................................................15 Rtrim. ............................................................................................................................15 7.- Referencias Cruzadas en MySQL .............................................................................16 Definición......................................................................................................................16 Ejemplo .........................................................................................................................16 Ejemplos Prácticos.........................................................................................................17 8.- Importación, Exportación de datos a MySQL............................................................18 Configuración de Servidores ..........................................................................................18 Activación de Conexión.................................................................................................19 Importación de datos de un archivo de Excel..................................................................20 Inicio de Wizard de Importación ....................................................................................21 Exportación de Datos.....................................................................................................24 Configuración de conexión para MySQL Query Browser...............................................24 Selección de Base de datos.............................................................................................25 Exportación de set de resultados ....................................................................................26 ITConsulting Pagina 3 de 39 Wintell Nov 2008 Indice ......31 Selección de niveles de agrupamiento ......................................................................................32 Visualización de informe .........................30 Ejecución de la consulta...............33 APENDICES ...32 Selección de esquema de distribución del informe ............................................................27 Creación de Base de datos intermediaria ..........................27 Vinculación de tablas................................................................................................ .............34 APENDICE I...........30 Uso de Informes para la visualización o impresión de un conjunto de resultados...............................................................................................................................................................................................................................34 Wintell Nov 2008 ITConsulting Pagina 4 de 39 Indice .......................................27 Especificación de archivo de origen de datos o DSN..........................................................................................................................................................28 Creación de vista de consulta a tablas vinculadas........................................................................................................................................................................32 Selección de esquema o estilo de visualización de informe ................... ..................................................................................................................................................................29 Captura de Query...................31 Selección de columnas para ordenado de resultados...........................31 Selección de columnas del reporte .............................................CURSO SQL PRACTICO 9 Generación de Informes y Consultas Cruzadas................................................................................................................................................................................34 Biblioteca de funciones de MySQL...................28 Selección de tablas a vincular .30 Impresión o visualización de reporte de resultados............................. TINYINT.D] Donde M indica el Numero de Bytes para la columna y D la precisión de valores de tipo flotante.D]. DATETIME. A continuación se listara y describirá brevemente los distintos tipos de datos. MEDIUMINT.. Tipos Numéricos. TIME. INTEGER.402823466E+38 to 1.D]. ITConsulting Pagina 5 de 39 I Tipos de Datos . DATE..175494351E-38 DOUBLE[M.2250738585072014E-308 Tipos de Fecha y Hora. TIMESTAMP.Dato de tipo fecha y hora almacenado en formato YYYY-MM-DD HH:MM:SS.Dato de tipo fecha siempre almacenado en formato YYYY-MM-DD.Dato Entero de 1 Byte de longitud. FLOAT[M.. Es importante anotar que dadas las limitantes de procesamiento de la unidad de aritmética entera.-Dato Entero de 8Bytes.Dato Entero de 3 Bytes (0-16777215 sin signo o -8388608 a 8388607) INT.-Dato Entero de 2 Bytes de longitud (0-65535 sin signo o -32768 a 32767).. BOOL.Tipos de datos BYTE BLOB PIC T able Table VARCHA R TE XT CHAR BYTE BLOB B YTE BLOB P IC B YTE BLOB MySQL soporta una gran variedad de tipos de datos.. con rango entre 1. BIGINT.-Dato de tipo flotante de doble precisión. [M. razón por la cual debe ser tomado en cuenta al momento de decidir su empleo dado su coste en tiempo de procesamiento y cantidad de MIPS requeridas..-Dato de tipo fecha y hora autoregistrado.7976931348623157E+308 to -2.-Tipos de datos Table VARCHAR TEXT CHAR Wintell Nov 2008 1. SMALLINT. las operaciones con datos enteros de 8bytes sin signo se realizan en base a múltiples operaciones sobre LB y HB de 4Bytes o bajo aritmética de punto flotante.Dato de tipo hora almacenado en formato hora HH:MM:SS..Valores booleanos de tipo numérico donde 1=Verdadero y 0=Falso. que se pueden agrupar en 3 grandes grupos: • • • Tipos Numéricos Tipos Carácter Tipos de Fecha y Hora Todos los tipos de datos aceptan los siguientes modificadores: Unsigned. BIT.CURSO SQL PRACTICO 1.-Dato de tipo flotante de simple precisión con rango entre -3.Dato Entero normal de 4 Bytes con un rango de 0 a 4294967295 sin signo o 2147483648 a 2147483647. Signed. BOOLEAN.. con una longitud de 4G ENUM. ITConsulting Pagina 6 de 39 I Tipos de Datos . las búsquedas y comparaciones se realizan de modo no sensible a mayúsculas/minúsculas.Dato de tipo carácter de longitud variable.. TEXT. con una longitud máxima de 255 caracteres. LONG BLOB. con una longitud máxima de 16777215 caracteres. BLOB. Wintell Nov 2008 CHAR. MEDIUM TEXT.Dato de tipo carácter de longitud variable.CURSO SQL PRACTICO Tipos Carácter.. VARCHAR.. MEDIUM BLOB. Excell. con una longitud máxima de 65535 caracteres. Es importante considerar los rangos o limites de operación así como el tiempo de procesamiento requerido para operaciones o consultas y ordenamientos.. pues el intercambio de datos no conoce el auto-casting y es posible perder información en los procesos de transferencia o consulta de datos.Permite la creación de tipos personalizados de hasta 65535 valores escalares.-Dato de tipo carácter de longitud variable. además de la compatibilidad de los tipos de datos con sus homólogos en otras plataformas.Dato de tipo carácter de longitud variable. VS o Macropro. como son Access.LONG TEXT. A menos que se utilice el modificador BINARY. . ] Ejemplo: INSERT INTO Tabla1 (Columna1. Ejemplo: INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id > 100.). ] La sintaxis anterior permite la inserción de múltiples valores provenientes de múltiples tablas e incluso acotar la inserción en base a algún criterio de selección a una tabla destino. ITConsulting Pagina 7 de 39 2 Agregar Registros Nuevos.Añadir registros nuevos.. [ ON DUPLICATE KEY UPDATE col_name=expr... columna3) values (‘A’..12 O Insercion de multiples tablas INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name. columna2... . Columna2..). Columna3=1. O: INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name SET col_name={expr | DEFAULT}.. [ ON DUPLICATE KEY UPDATE col_name=expr..12) La línea anterior inserta en la tabla “Tabla1” los valores ‘A’. ] Ejemplo: INSERT INTO Tabla1 SET Columna1=’A’.... .. 1. Columna3 respectivamente.)] VALUES ({expr | DEFAULT}...(.1. . Wintell Nov 2008 2.Añadir registros nuevos.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.... se utiliza el comando: INSERT. Columna2=1. .12 en las columnas Columna1. [ ON DUPLICATE KEY UPDATE col_name=expr... tal como a continuación se describe: Inserción simple INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name.)] SELECT .. .... El ejemplo anterior insertara los valores de la columna fld_order_id de la tabla tbl_temp1 con valor mayor que 100 en la tabla tbl_temp2..CURSO SQL PRACTICO 2. 1.1. Para agregar registros nuevos en una tabla de MySQL. Wintell Nov 2008 3.id AND t2.CURSO SQL PRACTICO 3. t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id IS NULL. La eliminación de registros implica en primera instancia la localización de registros existentes. tbl_name[.id=t2.... Eliminación de múltiples tablas DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.id=t3.id AND t2.. FROM table_references [WHERE where_condition] Ejemplo: DELETE t1. En este ejemplo se eliminan todos los registros de la tabla t1 que no existen en t2 ITConsulting Pagina 8 de 39 3 Borrado de Registros.Borrado de Registros.*] [. Eliminación Simple DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY . . razón por la cual introduciremos la sintaxis básica de una expresión de selección.id=t2.id WHERE t2.id Es posible utilizar cualquier tipo de expresión de selección tal como se muestra a continuación: DELETE t1 FROM t1 LEFT JOIN t2 ON t1.*]] .id = t3. En este ejemplo se eliminan todos los registros de t1 y t2 que cumplan con la condición de: t1..Borrado de Registros.id=t2.] [LIMIT row_count] Ejemplo: DELETE FROM Tabla1 WHERE Columna1=1 O para múltiples tablas.id.. [WHERE where_condition] [ORDER BY . En este ejemplo se incrementara la edad de todas las personas de nombre John. donde ítems.price WHERE items.CURSO SQL PRACTICO 4.Actualización de Registros Wintell Nov 2008 4.price.id=month.Actualización de Registros La actualización de registros consiste en la localización de registros existentes y modificación de uno...id... modificando la columna price de la tabla ítems.id=month.price=month.. varios o todos los datos en las columnas del mismo. O Actualización en base a múltiples tablas UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [. asignándole el valor de la tabla month.id ITConsulting Pagina 9 de 39 4 Actualización de Registros. col_name2={expr2|DEFAULT}] .month SET items. .. [WHERE where_condition] Ejemplo: UPDATE items.] [LIMIT row_count] Ejemplo: UPDATE persondata SET age=age+1 WHERE name=’John’.. Para este propósito se utiliza la sentencia: UPDATE Actualización Simple UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1={expr1|DEFAULT} [.. En este ejemplo se actualizara la tabla ítems. col_name2={expr2|DEFAULT}] . ITConsulting Pagina 10 de 39 5 Selección de Registros. Connection TimeOut Controla el tiempo de espera y desconexión a la respuesta o envío de paquetes. Sin adentrarnos en una discusión detallada sobre el tema. ya que el costo de uso de CPU o impacto en la seguridad e integridad del mismo pueden ser importantes. A continuación mostraremos algunos puntos a considerar que impactan en algunos de los puntos antes mencionados.CURSO SQL PRACTICO 5. . siempre considerando: • • • • La frecuencia con que se realizara cierta selección o Query. Parámetros de agilización de conexiones Además de los parámetros antes mencionados. Dado que la selección de registros es la tarea mas frecuente y común al operar con bases de datos. pero estos son a nivel de configuración del servidor MySQL. Antes de iniciar con la discusión sobre sintaxis y métodos de selección primero resaltaremos algunos puntos a considerar durante el diseño u optimización de la base de datos para una localización y entrega de datos. La velocidad que requerimos para la selección y entrega del vector. debemos siempre pensar en el diseño de una base de datos y sus tablas. Interactive Timeout Controla el tiempo de espera y desconexión a la respuesta durante el envío de paquetes como producto de una transacción entre el cliente y el servidor. existen los siguientes parámetros que impactan también en la velocidad de la conexión y entrega del vector de datos. ya que el impacto en la velocidad. y deberá ser considerados por el administrador del mismo. PROCEDIMIENTOS OK OK La selección de alguno de los métodos sugeridos debe ser considerada con cuidado. y puede impactar enormemente en la operación regular con la base de datos. o seguridad es significativo. para nuestros propósitos nos basta con la visualización la siguiente tabla: Tabla comparativa de parámetros que agilizan la velocidad de selección Esquema Velocidad de Selección Seguridad Velocidad Escritura MyISAM OK Lento INNODB OK Rápido INDICES OK OK Lento VISTAS OK OK No recomendado. más rápida y eficiente.. El tamaño del vector de resultados que esperamos recibir.Selección de registros La selección de registros en tablas de una base de datos. este valor no debe ser modificado a menos que se sepa que la comunicación entre el cliente y el servidor esta sujeto a grandes tiempos de espera debido al trafico de red o numero de saltos en la ruta P2P. Write y Wait Timeout Controla el tiempo de espera y desconexión durante la ejecución de una transacción entre el cliente y el servidor. es la tarea más común y frecuente. Read.Selección de registros Wintell Nov 2008 5. El numero de usuarios que simultáneamente ejecutaran la misma selección o Query.. . esto puede agilizar las comunicaciones. Name Resolving Activa o desactiva la resolución de nombres sobre los clientes. . La instrucción empleada para la generación de una expresión de selección de registros es: SELECT [ALL | DISTINCT | DISTINCTROW ] [HIGH_PRIORITY] [STRAIGHT_JOIN] [SQL_SMALL_RESULT] [SQL_BIG_RESULT] [SQL_BUFFER_RESULT] [SQL_CACHE | SQL_NO_CACHE] [SQL_CALC_FOUND_ROWS] select_expr... Wintell Nov 2008 NetBuffer Length Controla el tamaño máximo del buffer de memoria intermedia asignado para las comunicaciones P2P entre cliente y servidor. DISTINCTROW] Estos modificadores inmediatamente después de la instrucción indican: ALL. [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC].Obtiene un vector con una lista no repetible de registros acotada por la instrucción WHERE ALL DISTINCT DISTINCTR OW ITConsulting Pagina 11 de 39 5 Selección de Registros. Sintaxis de expresión de selección de datos.] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO @var_name [.CURSO SQL PRACTICO Max Package Size Limita el tamaño máximo de los paquetes a operar durante una transacción. [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC]. y de uso mas frecuente. Comenzaremos por explicar la estructura de la instrucción: SELECT [ALL. Caching of hostnames Mantener una tabla cache de hostnames.. Este parámetro puede optimizar las consultas y escrituras durante una sesión.. esto es debido a que es la operación más compleja.. DISTNCT.. DISTINCT. @var_name]] [FOR UPDATE | LOCK IN SHARE MODE]] Como podemos notar. . ..Obtiene un vector con todos los registros de la(s) tablas indicadas. esta es la instrucción más compleja de todas las analizadas previamente. pero disminuye la seguridad en las transacciones. pero tiene un coste de consumo de memoria por conexión activa.. de hecho se podría decir que es para lo que se han desarrollado las bases de datos.] [LIMIT {[offset. en algunas ocasiones minimiza el tiempo de consulta por parte del server para la resolución de nombres de clientes y conexiones activas. La instrucción anterior entrega como vector de resultados un conteo de las repeticiones de la columna a obtenido de la tabla test_table.. COUNT(b) FROM test_table GROUP BY a DESC. obtenidos de las tablas employees e info.name=t2. [HIGHPRIORITY] Incrementa la prioridad en la ejecución de la instrucción. en la cual se indica la lista de fuentes de datos de donde obtendremos nuestro vector de resultados.first_name) AS full_name FROM mytable ORDER BY full_name. . [ORDER BY] Establece el orden que deseamos obtener en el vector de resultados producto de la selección indicada. t2. Selección Simple SELECT CONCAT(last_name. ITConsulting Pagina 12 de 39 5 Selección de Registros.'. sin omitir registro alguno.salary FROM employee AS t1. Emplea como criterio de discriminación.name.name. Esto obtenido de la tabla “mytable” y ordenado por el mismo vector de resultados.CURSO SQL PRACTICO Wintell Nov 2008 DISTINCTROW. acelerando la velocidad de despacho en la cola de despacho del servidor. para el filtrado de resultados. WHERE Esta es la expresión de discriminación. [GROUP BY] En una selección basada en múltiples tablas. t2. Selección de datos resultados de operaciones. La instrucción anterior entregara como resultado un vector con un único campo llamado: “full_name” que es un alias a la suma de las columnas last_name y first_name. select_expr Esta es la expresión de selección. La instrucción anterior entrega como vector de resultados las columnas t1. Selección de múltiples tablas SELECT t1. SELECT a. la instrucción permite el agrupado de datos en forma categorizada.name = t2. '.salary. renombrados a t1 y t2 respectivamente. FROM Esta es la expresión de procedencia. info AS t2 WHERE t1. t1. [STRAIGHT JOIN] Indica la validación estricta de la unión entre tablas. en ella se indican las condiciones de selección. en la cual se indica la lista de columnas que deseamos obtener como vector resultado de la selección.name.name. para el seguimiento de las relaciones columnares. además de la asignación de un mayor slide de tiempo de CPU. Ejemplos Prácticos A continuación se mostraran ejemplos prácticos que ilustren estas opciones.Obtiene un vector con todos los registros no repetibles acotada por la instrucción WHERE. Al final de este manual se incluye un apéndice con un listado de todas las funciones que integran la biblioteca de funciones de MySQL. Count. Max.Funciones SQL Wintell Nov 2008 6. El tipo de funciones que MySQL proporciona. nos permite por ejemplo. etc… No nos adentraremos en un estudio detallado sobre la biblioteca de funciones de MySQL. estadísticos.. Devuelve un contador con la cantidad de repeticiones localizadas acorde con la instrucción de discriminación. Devuelve el valor más grande de los parámetros pasados. Regresa la hora actual en el server. Devuelve el menor valor del vector de resultados. Addtime. . Suma 2 datos de tipo Hora. etc. Greatest. Devuelve el valor más pequeño de los parámetros pasados. ITConsulting Pagina 13 de 39 6 Funciones de MySQL.Funciones SQL El empleo de funciones para la explotación de los campos numéricos y otras libera la carga de trabajo a las terminales o clientes de consulta. bastara con mencionar las mas frecuentes agrupadas por el tipo de dato sobre el que actúan. current_date Regresa la fecha actual en el server. Funciones para cálculos de resúmenes o datos estadísticos. Least. Min. Suma 2 datos de tipo fecha. cálculos diferenciales sobre columnas de tipo fecha y hora. Devuelve el máximo valor del vector de resultados. Funciones para expresiones de selección con fechas Addates.. current_time. generar cálculos como sumatorias. Sum. Devuelve la sumatoria basada en la columna indicada sobre el vector de resultados. Avg. eliminando así la redundancia y asincronía en la vida de los datos. centralizando y controlando las operaciones sobre los datos contenidos en el servidor que contiene la propia base de datos. Devuelve el promedio de los valores asignados.CURSO SQL PRACTICO 6. Regresa el día de la semana del día de un valor de tipo fecha y hora. Datediff Regresa la diferencia entre 2 valores de tipo fecha. Dayofyear. Regresa el día del año de un valor de tipo fecha y hora. Extract. Year. Regresa el nombre del mes de un valor de tipo fecha y hora. Dayname. date_sub. Regresa la diferencia entre dos valores de tipo hora. Regresa el nombre del día de un valor de tipo fecha y hora. str_to_date. Minute. Regresa el mes de un valor de tipo fecha y hora. Month. Regresa el año de un valor de tipo fecha y hora. Monthname. Regresa la hora de un valor de tipo fecha y hora. . Now.CURSO SQL PRACTICO date_add Suma dos valores de tipo fecha. Dayofweek. Wintell Nov 2008 ITConsulting Pagina 14 de 39 6 Funciones de MySQL. Regresa el segundo de un valor de tipo fecha y hora. Day Regresa el día de un valor de tipo fecha y hora. Regresa la fecha y hora actuales. Extrae un valor parcial de un valor de tipo fecha y hora. Convierte un valor de tipo carácter en tipo fecha y hora. Regresa el minuto de un valor de tipo fecha y hora. Date Regresa la fecha de un dato tipo fecha y hora. Timediff. Resta 2 valores de tipo fecha. Hour. Second. Elimina los espacios a la izquierda de la cadena. Ltrim. Substr. Suma n cadenas indicadas y las entrega como una cadena única. . Trim. Devuelve el parámetro en todo mayúsculas. Lower. Devuelve una sub cadena según el criterio establecido. Upper. Elimina los espacios al principio y final de la cadena. Wintell Nov 2008 ITConsulting Pagina 15 de 39 6 Funciones de MySQL. Rtrim. Concat.CURSO SQL PRACTICO Funciones de uso general. Devuelve el parámetro en todo minúsculas. Substrindex. Devuelve la posición de la cadena indicada dentro de la cadena principal. Elimina los espacios a la derecha de la cadena. . Estas permiten la rápida obtención de datos complejos que de otra forma nos tomaría días o meses encontrar. .Referencias Cruzadas en MySQL Wintell Nov 2008 7. ITConsulting Pagina 16 de 39 7 Referencias Cruzadas. solo las claves que nos remiten a la información completa. La tabla de Clientes. La tabla de Responsables_clientes En esta se registraría el cruzado de que responsables atienden a que clientes. En segundo lugar seria la facilidad y rapidez para la generación de resúmenes o entrega de resultados. Seria donde se registren a los ejecutivos de cuenta que atienden a los clientes. fácil y naturalmente podríamos localizar todas las atenciones de un responsable en particular. pues por ejemplo. La ventaja que nos otorga el cruzado y relacionado de datos: En primera instancia es el ahorro de consumo de espacio.CURSO SQL PRACTICO 7. Una referencia cruzada no es más que la asociación de múltiples tablas. Antes de iniciar la discusión de cómo se emplean las referencias cruzadas debemos iniciar por describir que son y para que se emplean. En esta se registrara un histórico con las atenciones atendidas a cada cliente por cada responsable.. o a un cliente en particular. La tabla de Atenciones. La tabla de Responsables. Esto se ve más claramente en la siguiente ilustración Ejemplo En esta ilustración podemos observar que existen. 2 tablas principales.Referencias Cruzadas en MySQL Definición Las referencias cruzadas son una de las herramientas más útiles en las bases de datos actuales. Y 2 tablas derivadas o cruzadas. Seria donde se registre el catalogo de clientes. Pues no se repite la información. CURSO SQL PRACTICO Ejemplos Prácticos Por ejemplo: Wintell Nov 2008 Para obtener un contador de todas las atenciones otorgadas a un cliente en particular medido en días. responsables_clientes WHERE (responsables. Del mismo modo se sugiere utilizar campos numéricos.nombre=’David’) AND (responsables_clientes. ITConsulting Pagina 17 de 39 7 Referencias Cruzadas. emplearíamos: SELECT COUNT(FECHA) from Atenciones where NoCliente=13 Para obtener todos los clientes que el Responsable “David” atiende se emplearía: SELECT cliente.noresponsable=responsables.noresponsable) AND (responsables_clientes.nocliente) ORDER BY Cliente Cabe señalar que para obtener de la forma mas ágil y rápida los resultados en una consulta cruzada es necesario crear índices sobre los campos discriminantes. responsables. .nombrecliente as Cliente from clientes. de este modo el tiempo que el servidor MySQL tarde en generar el vector de resultados se vera reducido considerablemente. en lugar de campos de texto para este propósito.nocliente=clientes. Importación.. Exportación de datos a MySQL Wintell Nov 2008 8. Configuración de Servidores Para configurar el programa y la conexión con el servidor MySQL hay que: Oprimir el botón Connection: servidor MySQL: .CURSO SQL PRACTICO 8. .. esto abrirá la interfaz necesaria para registrar los datos de enlace con el Los datos de configuración son: ITConsulting Pagina 18 de 39 8 Importación.Importación. Exportación de datos a MySQL En primer lugar es necesario configurar Navicat para acceder al servidor MySQL y las bases de datos con las que trabajaremos: La siguiente pantalla muestra la pantalla de trabajo del sistema Navicat. Exportación a MySQL. el icono que indica la conexión cambia de: a: . es necesario indicar con que conexión lo haremos (esto es necesario porque el programa Navicat. aunque en nuestro caso solo sea una).. Host name. que cuando ya hemos asignado la conexión.El nombre o IP del servidor MySQL Port.. .Password de acceso del usuario indicado. Password. en nuestro caso solo 1 servidor. ITConsulting Pagina 19 de 39 8 Importación. User.Solo es el nombre con el que conoceremos esta conexión. asume que se manejan mas de 1 conexión. Activación de Conexión Para trabajar ahora. La imagen cambiara como se muestra en la figura anterior. Hay que notar. Wintell Nov 2008 A continuación.. Basta oprimir el botón test connection para verificar que los datos ingresados son los correctos. en la sección de Connections veremos una lista de servidores configurados...Nombre del usuario con el que estableceremos la comunicación. Exportación a MySQL.CURSO SQL PRACTICO Connection Name. Para ello basta con hacer doble clic sobre el nombre de nuestra conexión.Puerto de comunicaciones a emplear. ITConsulting Pagina 20 de 39 8 Importación. y no deben ser modificadas nunca. primero hay que estar completamente seguros que la hoja de Excel corresponde con las columnas de alguna tabla previamente definida. Estas bases de dato son: MySQL Test Como puede observar. Aunque solo hemos dado de alta una base de datos. (Modelado de datos). . se requiere indicar con que base de datos trabajaremos. para ello basta dar doble clic en la base de datos a emplear. El indicador cambiara de: a: . Al igual que con las conexiones se debe indicar específicamente con que elemento se trabajara. MySQL siempre define 2 bases de datos para la operación interna.CURSO SQL PRACTICO Wintell Nov 2008 A continuación. A continuación haga clic con el botón derecho del ratón sobre la tabla donde desee importar los datos: La imagen mostrada ilustra el menú y la opción que se debe elegir. Importación de datos de un archivo de Excel. Para importar datos de una hoja de Excel a una base de datos MySQL. las bases de datos aparecen en color gris. esto porque no se ha indicado con que base de datos se pretende trabajar. Exportación a MySQL. Indicar cual y donde se encuentra el archivo origen. 2º. 3º. ITConsulting Pagina 21 de 39 8 Importación.Seleccionar la hoja(s) de donde se obtendrán los datos.. Excel 2007 file.. . Wintell Nov 2008 En nuestro caso debemos indicar Excel file. Exportación a MySQL. de donde se pretende importar los datos.CURSO SQL PRACTICO Inicio de Wizard de Importación Los siguientes son los pasos a seguir con el Wizard de importación: 1º Selección del formato del archivo origen. según sea el caso. por este motivo en ocasiones es necesario indicar de que forma vienen contenidos los datos de tipo fecha.. así como una indicación de la existencia de un renglón de identificación de columnas y los limites de la información. ITConsulting Pagina 22 de 39 8 Importación.CURSO SQL PRACTICO 4º. En este paso se debe confirmar a que tabla se pretende insertar la información.Configuración de la interpretación de los datos contenidos. en ocasiones no es fácilmente inidentificable el tipo de información que se contiene en las columnas. y los numéricos. En nuestros casos se deberá añadir para que se registre en forma incremental. Exportación a MySQL. 5º.Asignación de destino de los datos. y si se debe añadir o insertar como tabla nueva. Wintell Nov 2008 Este paso es necesario pues dado el formato de Excel. .. Identificación de columnas. Exportación a MySQL.CURSO SQL PRACTICO 6º. Wintell Nov 2008 Es necesario establecer una regla de correspondencia entre las columnas del archivo origen (de Excel). En nuestro caso. 7º. o agregar al final de la tabla. se deberán agregar a la tabla. .Indicar si se deben actualizar los registros ya existentes. Al igual que cuando indicamos si la tabla se modificaría o se agregaría como nueva. y así crear un registro incremental. Para ello se deben identificar una a una las columnas en la tabla y en el archivo de Excel... es necesario indicar que hacer con los registros que se identifiquen como preexistentes en la tabla. ITConsulting Pagina 23 de 39 8 Importación. y la tabla destino. Wintell Nov 2008 Finalmente se debe ejecutar el proceso de importación de datos. Exportación de Datos. Esta herramienta nos permitirá seleccionar los datos que deseamos y guardarlos en un archivo con el formato que mejor nos convenga. Para Exportar datos contenidos en MySQL. 1º. ITConsulting Pagina 24 de 39 8 Importación. Para ello seguiremos los siguientes pasos: Configuración de conexión para MySQL Query Browser.Indicar los parámetros de conexión básicos. Al igual que con el programa Navicat. . es necesario indicar a que servidor MySQL y con que Base de Datos trabajaremos. Exportación a MySQL.CURSO SQL PRACTICO 8º. utilizaremos otra herramienta llamada: MySQL Query Browser..Iniciar el proceso de importación.. Indicar la base de datos con la cual se trabajara: Wintell Nov 2008 Seccion de Captura de Queries Sección de lista de bases de datos. Exportación a MySQL. Sección de desplegado de resultados Sección de ayuda rápida. además de que se expandirá y se mostrara un listado de todas las tablas contenidas en esa base de datos. muestra 4 Secciones: Sección de captura de Queries Sección de desplegado de resultados Sección de listado de Bases de Datos Sección de ayuda Para indicar con que base de datos se trabajara. .. ITConsulting Pagina 25 de 39 8 Importación. En seguida se mostrara en negritas el nombre de la base de datos.CURSO SQL PRACTICO Selección de Base de datos 2º. basta con hacer doble clic sobre el nombre de la base de datos en la sección de lista de bases de datos. En la ventana principal del MySQL Query Browser. el formato y el nombre y ubicación del archivo exportado: ITConsulting Pagina 26 de 39 8 Importación. Para finalizar. basta indicar que deseamos exportar los datos del set de resultados. . y presionar el botón de ejecución: para obtener un set de resultados: Exportación de set de resultados 4º Exportar el set de resultados.CURSO SQL PRACTICO 3º Introducir el Query que nos regrese los datos a exportar. Exportación a MySQL. Wintell Nov 2008 Es necesario capturar el Query que pretendemos emplear para seleccionar la información a exportar. . y con ello importar los datos en Excel o Access. Para ello primero se indica el tipo de datos a vincular. esto nos facilita el acceso a los datos y nos permite además la generación de reportes o archivos exportados de datos. Para este propósito basta con definir un origen de datos en el sistema que apunte ya sea a la base de datos de MySQL o Macropro..CURSO SQL PRACTICO 9 Generación de Informes y Consultas Cruzadas. en nuestro caso un acceso ODBC. A continuación de ilustra el procedimiento para enlazar los datos: Creación de Base de datos intermediaria 1º es necesario crear una base de datos nueva: 2º es necesario vincular las tablas que nos interesa consultar. Vinculación de tablas ITConsulting Pagina 27 de 39 9 Generación de Informes y Consultas Cruzadas. Wintell Nov 2008 9.Generación de Informes y consultas cruzadas Es posible consultar directamente la información desde las bases de datos empleando Microsoft Access como interfaz de consulta. .CURSO SQL PRACTICO Wintell Nov 2008 A continuación indicar que si el origen de datos se vincularan en forma dinámica los datos. Selección de tablas a vincular ITConsulting Pagina 28 de 39 9 Generación de Informes y Consultas Cruzadas. Especificación de archivo de origen de datos o DSN Macropro En seguida hay que indicar que tablas se vincularan. y no solo se importaran. A continuación se especifica el archivo de origen de datos. se deben indicar las tablas que serán consultadas.CURSO SQL PRACTICO Wintell Nov 2008 Solo por verificar. en el panel de exploración de tablas y consultas. Una vez iniciado el proceso de construcción de consulta. . En seguida se debe cambiar la vista a vista SQL ITConsulting Pagina 29 de 39 9 Generación de Informes y Consultas Cruzadas. deberán listarse todas las tablas que macamos para ser vinculadas: 3º definamos la vista o consulta. Creación de vista de consulta a tablas vinculadas. hagamos clic derecho sobre el nombre de la consulta y seleccionemos la opción Exportar.CURSO SQL PRACTICO Captura de Query Wintell Nov 2008 En esta vista es posible capturar la consulta SQL directamente. ITConsulting Pagina 30 de 39 9 Generación de Informes y Consultas Cruzadas. y determinemos el formato de salida para el archivo con el resultado de la consulta. . Impresión o visualización de reporte de resultados. Ejecución de la consulta 4º Ejecutemos la consulta Para esto basta con oprimir el botón “Ejecutar” Como respuesta Access abrirá el resultado en una vista de tabla. Para ello en el panel de listado de tablas y consultas. 6º Imprimamos o exportemos los datos. organizar la información en un formato impreso predeterminado. es posible construir un informe con el resultado de la consulta.CURSO SQL PRACTICO Wintell Nov 2008 Uso de Informes para la visualización o impresión de un conjunto de resultados. Para ello iniciemos el asistente para informes Selección de columnas del reporte Al iniciar el asistente debemos indicar que columnas de la consulta integraran el informe: Selección de niveles de agrupamiento En seguida se debe indicar el nivel de agrupamiento. Ahora bien. Esto es. es decir en base a que columnas se agruparan los resultados del informe: ITConsulting Pagina 31 de 39 9 Generación de Informes y Consultas Cruzadas. . Access cuenta con una amplia gama de estilos prediseñados. Wintell Nov 2008 Selección de esquema de distribución del informe En seguida se debe indicar el esquema de presentación del informe: Selección de esquema o estilo de visualización de informe Para finalizar la construcción del informe elija el esquema o estilo de visualización para el informe.CURSO SQL PRACTICO Selección de columnas para ordenado de resultados Posteriormente se pueden fijar hasta 4 niveles de ordenación dependiente. ITConsulting Pagina 32 de 39 9 Generación de Informes y Consultas Cruzadas. . CURSO SQL PRACTICO Visualización de informe Y por ultimo visualice el informe recién construido: Wintell Nov 2008 ITConsulting Pagina 33 de 39 9 Generación de Informes y Consultas Cruzadas. . 0) COALESCE() COERCIBILITY()(v4.1..1. BIN() BINARY BIT_AND() BIT_COUNT() BIT_LENGTH() BIT_OR() BIT_XOR()(v4.CURSO SQL PRACTICO APENDICES Wintell Nov 2008 APENDICES APENDICE I Biblioteca de funciones de MySQL Name ABS() ACOS() ADDDATE()(v4.0) Return the absolute value Return the arc cosine Add dates Add time Decrypt using AES Encrypt using AES Logical AND Return numeric value of left-most character Return the arc sine Return the arc tangent of the two arguments Return the arc tangent Return the average value of the argument Repeatedly execute an expression Check whether a value is within a range of values Return a string representation of the argument Cast a string to a binary string Return bitwise and Return the number of bits that are set Return length of argument in bits Return bitwise or Return bitwise xor Bitwise AND Invert bits Bitwise OR Bitwise XOR Case operator Cast a value as a certain type Return the smallest integer value not less than the argument Return the smallest integer value not less than the argument Return number of characters in argument Return the character for each integer passed A synonym for CHAR_LENGTH() Return the character set of the argument Return the first non-NULL argument Return the collation coercibility value of the string argument Return the collation of the string argument Description ITConsulting Pagina 34 de 39 Apéndice I – Funciones de MySQL. && ASCII() ASIN() ATAN2()..1.1.1.1) COLLATION()(v4.1) ADDTIME()(v4.. ..1.1) & ~ | ^ CASE CAST() CEIL() CEILING() CHAR_LENGTH() CHAR() CHARACTER_LENGTH() CHARSET()(v4. ATAN() ATAN() AVG() BENCHMARK() BETWEEN . AND .1) AES_DECRYPT() AES_ENCRYPT() AND. 1) CONCAT_WS() CONCAT() CONNECTION_ID() CONV() CONVERT_TZ()(v4.1.1) DAYNAME()(v4.1.1) DAY()(v4.1. CURRENT_TIME CURRENT_TIMESTAMP(). CURRENT_TIMESTAMP CURRENT_USER(). .0) / ELT() ENCODE() ENCRYPT() <=> = EXP() EXPORT_SET() EXTRACT Return result as a binary string Return concatenate with separator Return concatenated string Return the connection ID (thread ID) for the connection Convert numbers between different number bases Convert from one timezone to another Cast a value as a certain type Return the cosine Return the cotangent Return the count of a number of different values Return a count of the number of rows returned Compute a cyclic redundancy check value Return the current date Synonyms for CURDATE() Synonyms for CURTIME() Synonyms for NOW() Return the username and hostname combination Return the current time Return the default (current) database name Add two dates Format date as specified Subtract two dates Extract the date part of a date or datetime expression Subtract two dates Synonym for DAYOFMONTH() Return the name of the weekday Return the day of the month (0-31) Return the weekday index of the argument Return the day of the year (1-366) Decodes a string encrypted using ENCODE() Return the default value for a table column Convert radians to degrees Decrypt a string Encrypt a string Integer division Division operator Return string at index number Encode a string Encrypt a string NULL-safe equal to operator Equal operator Raise to the power of Description Wintell Nov 2008 Return a string such that for every bit set in the value bits. CURRENT_USER CURTIME() DATABASE() DATE_ADD() DATE_FORMAT() DATE_SUB() DATE()(v4.1) DATEDIFF()(v4.1. you get an on string and for every unset bit.CURSO SQL PRACTICO Name COMPRESS()(v4.21) DAYOFMONTH() DAYOFWEEK() DAYOFYEAR() DECODE() DEFAULT() DEGREES() DES_DECRYPT() DES_ENCRYPT() DIV(v4. you get an off string Extract part of a date ITConsulting Pagina 35 de 39 Apéndice I – Funciones de MySQL.0) CURDATE() CURRENT_DATE().1.1.3) Convert() COS() COT() COUNT(DISTINCT) COUNT() CRC32()(v4. CURRENT_DATE CURRENT_TIME().1.1. 1.1. LOCALTIME LOCALTIMESTAMP.CURSO SQL PRACTICO Name FIELD() FIND_IN_SET() FLOOR() FORMAT() FOUND_ROWS() FROM_DAYS() FROM_UNIXTIME() GET_FORMAT()(v4.1) HEX() HOUR() IF() IFNULL() IN() INET_ATON() INET_NTOA() INSERT() INSTR() INTERVAL() IS_FREE_LOCK() IS NOT NULL IS NULL IS_USED_LOCK()(v4.6) LOCATE() LOG10() Description Return the index (position) of the first argument in the subsequent arguments Return the index position of the first argument within the second argument Return the largest integer value not greater than the argument Return a number formatted to specified number of decimal places Wintell Nov 2008 For a SELECT with a LIMIT clause. Test whether the argument is NULL Return the last day of the month for the argument Value of the AUTOINCREMENT column for the last INSERT Synonym for LOWER() Return the smallest argument Left shift Return the leftmost number of characters as specified Return the length of a string in bytes Less than or equal operator Less than operator Simple pattern matching Return the natural logarithm of the argument Load the named file Synonym for NOW() Synonym for NOW() Return the position of the first occurrence of substring Return the base-10 logarithm of the argument ITConsulting Pagina 36 de 39 Apéndice I – Funciones de MySQL. the number of rows that would be returned were there no LIMIT clause Convert a day number to a date Format UNIX timestamp as a date Return a date format string Get a named lock Greater than or equal operator Greater than operator Return the largest argument Return a concatenated string Return a hexadecimal representation of a decimal or string value Extract the hour If/else construct Null if/else construct Check whether a value is within a set of values Return the numeric value of an IP address Return the IP address from a numeric value Insert a substring at the specified position up to the specified number of characters Return the index of the first occurrence of substring Return the index of the argument that is less than the first argument Checks whether the named lock is free NOT NULL value test NULL value test Checks whether the named lock is in use.1.0) ISNULL() LAST_DAY(v4. . LOCALTIMESTAMP()(v4. Return connection identifier if true.0.1) LAST_INSERT_ID() LCASE() LEAST() << LEFT() LENGTH() <= < LIKE LN() LOAD_FILE() LOCALTIME().1) GET_LOCK() >= > GREATEST() GROUP_CONCAT()(v4. 1.. left-padded with the specified string Remove leading spaces Wintell Nov 2008 Return a set of comma-separated strings that have the corresponding bit in bits set Create a date from the year and day of year MAKETIME() Block until the slave has read and applied all updates up to the specified position Perform full-text search Return the maximum value Calculate MD5 checksum Return the microseconds from argument Return a substring starting from the specified position Return the minimum value Minus operator Return the minute from the argument Return the remainder Modulo operator Return the month from the date passed Return the name of the month Check whether a value is not within a range of values Not equal operator Check whether a value is not within a set of values Negation of simple pattern matching Negation of REGEXP Negates value Return the current date and time Return NULL if expr1 = expr2 Return an octal representation of a decimal number A synonym for LENGTH() Return the value of the old (pre-4.1) MAKETIME(v4.1.1) ||..1.1) implementation of PASSWORD Logical OR Return character code for leftmost character of the argument Calculate and return a password string Add a period to a year-month Return the number of months between periods Return the value of pi Addition operator A synonym for LOCATE() Return the argument raised to the specified power Return the argument raised to the specified power Analyze the results of a query Return the quarter from a date argument Escape the argument for use in an SQL statement Return argument converted to radians ITConsulting Pagina 37 de 39 Apéndice I – Funciones de MySQL. !=..CURSO SQL PRACTICO Name LOG2() LOG() LOWER() LPAD() LTRIM() MAKE_SET() MAKEDATE()(v4. OR ORD() PASSWORD() PERIOD_ADD() PERIOD_DIFF() PI() + POSITION() POW() POWER() PROCEDURE ANALYSE() QUARTER() QUOTE() RADIANS() Description Return the base-2 logarithm of the argument Return the natural logarithm of the first argument Return the argument in lowercase Return the string argument.1) MID() MIN() MINUTE() MOD() % MONTH() MONTHNAME()(v4.21) NOT BETWEEN . AND . .1) MASTER_POS_WAIT() MATCH MAX() MD5() MICROSECOND()(v4. ! NOW() NULLIF() OCT() OCTET_LENGTH() OLD_PASSWORD()(v4..1. <> NOT IN() NOT LIKE NOT REGEXP NOT. 1) STRCMP() SUBDATE() SUBSTR() SUBSTRING_INDEX() SUBSTRING() SUBTIME()(v4.1) SUM() SYSDATE() SYSTEM_USER() TAN() TIME_FORMAT() TIME_TO_SEC() TIME()(v4.1. with two arguments.1) * TIMESTAMP()(v4.1.1. this function returns the date or datetime expression.1) TIMEDIFF()(v4.1) TO_DAYS() TRIM() TRUNCATE() Return a random floating-point value Pattern matching using regular expressions Releases the named lock Repeat a string the specified number of times Replace occurrences of a specified string Reverse the characters in a string Right shift Return the specified rightmost number of characters Synonym for REGEXP Round the argument Append string the specified number of times Remove trailing spaces Converts seconds to 'HH:MM:SS' format Return the second (0-59) Synonym for USER() Calculate an SHA-1 160-bit checksum Return the sign of the argument Return the sine of the argument Return a soundex string Compare sounds Return a string of the specified number of spaces Return the square root of the argument Return the population standard deviation Return the population standard deviation Convert a string to a date Compare two strings A synonym for DATE_SUB() when invoked with three arguments Return the substring as specified Description Wintell Nov 2008 Return a substring from a string before the specified number of occurrences of the delimiter Return the substring as specified Subtract times Return the sum Return the time at which the function executes Synonym for USER() Return the tangent of the argument Format as time Return the argument converted to seconds Extract the time portion of the expression passed Subtract time Times operator With a single argument. the sum of the arguments Return the date argument converted to days Remove leading and trailing spaces Truncate to specified number of decimal places ITConsulting Pagina 38 de 39 Apéndice I – Funciones de MySQL.CURSO SQL PRACTICO Name RAND() REGEXP RELEASE_LOCK() REPEAT() REPLACE() REVERSE() >> RIGHT() RLIKE ROUND() RPAD() RTRIM() SEC_TO_TIME() SECOND() SESSION_USER() SHA1(). SHA() SIGN() SIN() SOUNDEX() SOUNDS LIKE(v4.1.1.0) SPACE() SQRT() STD() STDDEV() STR_TO_DATE()(v4. .1. 1.1) UUID()(v4.1) UTC_TIMESTAMP()(v4.2) UNIX_TIMESTAMP() UPPER() USER() UTC_DATE()(v4.2) VALUES()(v4.1. .1.1) UTC_TIME()(v4.1.1.CURSO SQL PRACTICO Name UCASE() UNCOMPRESS()(v4.1) VARIANCE()(v4.1) UNHEX()(v4.1.1.1.1) XOR YEAR() YEARWEEK() Synonym for UPPER() Change the sign of the argument Uncompress a string compressed Return the length of a string before compression Convert each pair of hexadecimal digits to a character Return a UNIX timestamp Convert to uppercase Return the current username and hostname Return the current UTC date Return the current UTC time Return the current UTC date and time Return a Universal Unique Identifier (UUID) Defines the values to be used during an INSERT Return the population standard variance Returns a string that indicates the MySQL server version Return the week number Return the weekday index Return the calendar week of the date (0-53) Logical XOR Return the year Return the year and week Description Wintell Nov 2008 ITConsulting Pagina 39 de 39 Apéndice I – Funciones de MySQL.1) VERSION() WEEK() WEEKDAY() WEEKOFYEAR()(v4.1) UNCOMPRESSED_LENGTH()(v4.1.
Copyright © 2024 DOKUMEN.SITE Inc.