YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Tel: 777-318-6493 Londres #109-A. Fracc. Prados de Cuernavaca

Curso SQL Practico

Page 2: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Indice Pagina 2 de 39

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

Page 3: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Indice Pagina 3 de 39

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

Page 4: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Indice Pagina 4 de 39

9 Generación de Informes y Consultas Cruzadas. ...........................................................27 Creación de Base de datos intermediaria ........................................................................27 Vinculación de tablas.....................................................................................................27 Especificación de archivo de origen de datos o DSN......................................................28 Selección de tablas a vincular ........................................................................................28 Creación de vista de consulta a tablas vinculadas. ..........................................................29 Captura de Query...........................................................................................................30 Ejecución de la consulta.................................................................................................30 Impresión o visualización de reporte de resultados.........................................................30 Uso de Informes para la visualización o impresión de un conjunto de resultados............31 Selección de columnas del reporte .................................................................................31 Selección de niveles de agrupamiento ............................................................................31 Selección de columnas para ordenado de resultados.......................................................32 Selección de esquema de distribución del informe .........................................................32 Selección de esquema o estilo de visualización de informe ............................................32 Visualización de informe ...............................................................................................33 APENDICES.................................................................................................................34 APENDICE I.................................................................................................................34 Biblioteca de funciones de MySQL................................................................................34

Page 5: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting I Tipos de Datos Pagina 5 de 39

1.-Tipos de datos

1.- Tipos de datos Table

Table

TEXT

BYTE

BYTE

CHAR

VARCHAR

BLOB

BLOB

PICT able

TEXT

BYTE

BYTE

CHAR

VARCHAR

BLOB

BLOB

PIC

MySQL soporta una gran variedad de tipos de datos, 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. Signed. [M,D] Donde M indica el Numero de Bytes para la columna y D la precisión de valores de tipo flotante. A continuación se listara y describirá brevemente los distintos tipos de datos. Tipos Numéricos. TINYINT.- Dato Entero de 1 Byte de longitud. BIT, BOOL, BOOLEAN.- Valores booleanos de tipo numérico donde 1=Verdadero y 0=Falso. SMALLINT.-Dato Entero de 2 Bytes de longitud (0-65535 sin signo o -32768 a 32767). MEDIUMINT.- Dato Entero de 3 Bytes (0-16777215 sin signo o -8388608 a 8388607) INT, INTEGER.- Dato Entero normal de 4 Bytes con un rango de 0 a 4294967295 sin signo o -

2147483648 a 2147483647. BIGINT.-Dato Entero de 8Bytes. Es importante anotar que dadas las limitantes de procesamiento

de la unidad de aritmética entera, 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, 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.

FLOAT[M,D].-Dato de tipo flotante de simple precisión con rango entre -3.402823466E+38 to -1.175494351E-38

DOUBLE[M,D].-Dato de tipo flotante de doble precisión, con rango entre -1.7976931348623157E+308 to -2.2250738585072014E-308

Tipos de Fecha y Hora. DATE.- Dato de tipo fecha siempre almacenado en formato YYYY-MM-DD. DATETIME.- Dato de tipo fecha y hora almacenado en formato YYYY-MM-DD HH:MM:SS. TIMESTAMP.-Dato de tipo fecha y hora autoregistrado. TIME.- Dato de tipo hora almacenado en formato hora HH:MM:SS.

Page 6: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting I Tipos de Datos Pagina 6 de 39

Tipos Carácter. CHAR, VARCHAR.- Dato de tipo carácter de longitud variable, con una longitud máxima de

255 caracteres. A menos que se utilice el modificador BINARY, las búsquedas y comparaciones se realizan de modo no sensible a mayúsculas/minúsculas.

BLOB, TEXT.- Dato de tipo carácter de longitud variable, con una longitud máxima de 65535 caracteres.

MEDIUM BLOB, MEDIUM TEXT.-Dato de tipo carácter de longitud variable, con una longitud máxima de 16777215 caracteres.

LONG BLOB,LONG TEXT.- Dato de tipo carácter de longitud variable, con una longitud de 4G ENUM.- Permite la creación de tipos personalizados de hasta 65535 valores escalares.

Es importante considerar los rangos o limites de operación así como el tiempo de procesamiento requerido para operaciones o consultas y ordenamientos, además de la compatibilidad de los tipos de datos con sus homólogos en otras plataformas, como son Access, Excell, VS o Macropro, 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.

Page 7: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 2 Agregar Registros Nuevos. Pagina 7 de 39

2.- Añadir registros nuevos.

2.- Añadir registros nuevos.

Para agregar registros nuevos en una tabla de MySQL, se utiliza el comando: INSERT, tal como a continuación se describe: Inserción simple INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name [(col_name,...)] VALUES ({expr | DEFAULT},...),(...),... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] Ejemplo: INSERT INTO Tabla1 (Columna1, columna2, columna3) values (‘A’,1,1.12) La línea anterior inserta en la tabla “Tabla1” los valores ‘A’, 1, 1.12 en las columnas Columna1, Columna2, Columna3 respectivamente. O: INSERT [LOW_PRIORITY | DELAYED] [IGNORE] [INTO] tbl_name SET col_name={expr | DEFAULT}, ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] Ejemplo: INSERT INTO Tabla1 SET Columna1=’A’, Columna2=1, Columna3=1.12 O Insercion de multiples tablas INSERT [LOW_PRIORITY | HIGH_PRIORITY] [IGNORE] [INTO] tbl_name [(col_name,...)] SELECT ... [ ON DUPLICATE KEY UPDATE col_name=expr, ... ] 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. Ejemplo: INSERT INTO tbl_temp2 (fld_id)

SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

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.

Page 8: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 3 Borrado de Registros. Pagina 8 de 39

3.- Borrado de Registros.

3.- Borrado de Registros.

La eliminación de registros implica en primera instancia la localización de registros existentes, razón por la cual introduciremos la sintaxis básica de una expresión de selección. Eliminación Simple DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_condition] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM Tabla1 WHERE Columna1=1 O para múltiples tablas. Eliminación de múltiples tablas DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*]] ... FROM table_references [WHERE where_condition] Ejemplo:

DELETE t1, t2 FROM t1 INNER JOIN t2 INNER JOIN t3 WHERE t1.id=t2.id AND t2.id=t3.id;

En este ejemplo se eliminan todos los registros de t1 y t2 que cumplan con la condición de:

t1.id=t2.id AND t2.id = t3.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=t2.id WHERE t2.id IS NULL; En este ejemplo se eliminan todos los registros de la tabla t1 que no existen en t2

Page 9: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 4 Actualización de Registros. Pagina 9 de 39

4.- Actualización de Registros

4.- Actualización de Registros

La actualización de registros consiste en la localización de registros existentes y modificación de uno, varios o todos los datos en las columnas del mismo.

Para este propósito se utiliza la sentencia: UPDATE Actualización Simple

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition] [ORDER BY ...] [LIMIT row_count]

Ejemplo:

UPDATE persondata SET age=age+1 WHERE name=’John’; En este ejemplo se incrementara la edad de todas las personas de nombre John. O Actualización en base a múltiples tablas

UPDATE [LOW_PRIORITY] [IGNORE] table_references SET col_name1={expr1|DEFAULT} [, col_name2={expr2|DEFAULT}] ... [WHERE where_condition]

Ejemplo:

UPDATE items,month SET items.price=month.price WHERE items.id=month.id;

En este ejemplo se actualizara la tabla ítems, modificando la columna price de la tabla ítems, asignándole el valor de la tabla month.price, donde ítems.id=month.id

Page 10: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 5 Selección de Registros. Pagina 10 de 39

5.- Selección de registros

5.- Selección de registros

La selección de registros en tablas de una base de datos, es la tarea más común y frecuente. 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, más rápida y eficiente. Dado que la selección de registros es la tarea mas frecuente y común al operar con bases de datos, debemos siempre pensar en el diseño de una base de datos y sus tablas, siempre considerando:

• La frecuencia con que se realizara cierta selección o Query. • El tamaño del vector de resultados que esperamos recibir. • El numero de usuarios que simultáneamente ejecutaran la misma selección o Query. • La velocidad que requerimos para la selección y entrega del vector.

A continuación mostraremos algunos puntos a considerar que impactan en algunos de los puntos antes mencionados.

Sin adentrarnos en una discusión detallada sobre el tema, 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. PROCEDIMIENTOS OK OK

La selección de alguno de los métodos sugeridos debe ser considerada con cuidado, ya que el impacto en la velocidad, o seguridad es significativo, y puede impactar enormemente en la operación regular con la base de datos. Parámetros de agilización de conexiones Además de los parámetros antes mencionados, existen los siguientes parámetros que impactan también en la velocidad de la conexión y entrega del vector de datos, pero estos son a nivel de configuración del servidor MySQL, y deberá ser considerados por el administrador del mismo, ya que el costo de uso de CPU o impacto en la seguridad e integridad del mismo pueden ser importantes. Connection TimeOut Controla el tiempo de espera y desconexión a la respuesta o envío de paquetes, 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. 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. Read, 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.

Page 11: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 5 Selección de Registros. Pagina 11 de 39

Max Package Size Limita el tamaño máximo de los paquetes a operar durante una transacción. NetBuffer Length Controla el tamaño máximo del buffer de memoria intermedia asignado para las comunicaciones P2P entre cliente y servidor. Este parámetro puede optimizar las consultas y escrituras durante una sesión, pero tiene un coste de consumo de memoria por conexión activa. Caching of hostnames Mantener una tabla cache de hostnames, en algunas ocasiones minimiza el tiempo de consulta por parte del server para la resolución de nombres de clientes y conexiones activas. Name Resolving Activa o desactiva la resolución de nombres sobre los clientes, esto puede agilizar las comunicaciones, pero disminuye la seguridad en las transacciones. Sintaxis de expresión de selección de datos. 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, ... [FROM table_references [WHERE where_condition] [GROUP BY {col_name | expr | position} [ASC | DESC], ... [WITH ROLLUP]] [HAVING where_condition] [ORDER BY {col_name | expr | position} [ASC | DESC], ...] [LIMIT {[offset,] row_count | row_count OFFSET offset}] [PROCEDURE procedure_name(argument_list)] [INTO OUTFILE 'file_name' export_options | INTO DUMPFILE 'file_name' | INTO @var_name [, @var_name]] [FOR UPDATE | LOCK IN SHARE MODE]] Como podemos notar, esta es la instrucción más compleja de todas las analizadas previamente, esto es debido a que es la operación más compleja, y de uso mas frecuente, de hecho se podría decir que es para lo que se han desarrollado las bases de datos. Comenzaremos por explicar la estructura de la instrucción: SELECT [ALL, DISTNCT, DISTINCTROW] Estos modificadores inmediatamente después de la instrucción indican: ALL

ALL.- Obtiene un vector con todos los registros de la(s) tablas indicadas. DISTINCT

DISTINCT.- Obtiene un vector con una lista no repetible de registros acotada por la instrucción WHERE DISTINCTR OW

Page 12: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 5 Selección de Registros. Pagina 12 de 39

DISTINCTROW.- Obtiene un vector con todos los registros no repetibles acotada por la instrucción WHERE. [HIGHPRIORITY] Incrementa la prioridad en la ejecución de la instrucción, acelerando la velocidad de despacho en la cola de despacho del servidor, además de la asignación de un mayor slide de tiempo de CPU. [STRAIGHT JOIN] Indica la validación estricta de la unión entre tablas, para el seguimiento de las relaciones columnares. select_expr Esta es la expresión de selección, en la cual se indica la lista de columnas que deseamos obtener como vector resultado de la selección. FROM Esta es la expresión de procedencia, en la cual se indica la lista de fuentes de datos de donde obtendremos nuestro vector de resultados. WHERE Esta es la expresión de discriminación, en ella se indican las condiciones de selección, para el filtrado de resultados. [GROUP BY] En una selección basada en múltiples tablas, la instrucción permite el agrupado de datos en forma categorizada. [ORDER BY] Establece el orden que deseamos obtener en el vector de resultados producto de la selección indicada. Ejemplos Prácticos A continuación se mostraran ejemplos prácticos que ilustren estas opciones. Selección Simple SELECT CONCAT(last_name,', ',first_name) AS full_name FROM mytable ORDER BY full_name; 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. Esto obtenido de la tabla “mytable” y ordenado por el mismo vector de resultados, sin omitir registro alguno. Selección de múltiples tablas SELECT t1.name, t2.salary FROM employee AS t1, info AS t2 WHERE t1.name = t2.name; La instrucción anterior entrega como vector de resultados las columnas t1.name, t2.salary, obtenidos de las tablas employees e info, renombrados a t1 y t2 respectivamente. Emplea como criterio de discriminación, t1.name=t2.name. Selección de datos resultados de operaciones. SELECT a, COUNT(b) FROM test_table GROUP BY a DESC; La instrucción anterior entrega como vector de resultados un conteo de las repeticiones de la columna a obtenido de la tabla test_table.

Page 13: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 6 Funciones de MySQL. Pagina 13 de 39

6.- Funciones SQL

6.- 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, centralizando y controlando las operaciones sobre los datos contenidos en el servidor que contiene la propia base de datos, eliminando así la redundancia y asincronía en la vida de los datos.

El tipo de funciones que MySQL proporciona, nos permite por ejemplo, generar cálculos como sumatorias, estadísticos, cálculos diferenciales sobre columnas de tipo fecha y hora, etc, etc…

No nos adentraremos en un estudio detallado sobre la biblioteca de funciones de MySQL, bastara con mencionar las mas frecuentes agrupadas por el tipo de dato sobre el que actúan.

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. Funciones para cálculos de resúmenes o datos estadísticos. Count. Devuelve un contador con la cantidad de repeticiones localizadas acorde con la instrucción de discriminación. Greatest. Devuelve el valor más grande de los parámetros pasados. Least. Devuelve el valor más pequeño de los parámetros pasados. Max. Devuelve el máximo valor del vector de resultados. Min. Devuelve el menor valor del vector de resultados. Sum. Devuelve la sumatoria basada en la columna indicada sobre el vector de resultados. Avg. Devuelve el promedio de los valores asignados. Funciones para expresiones de selección con fechas Addates. Suma 2 datos de tipo fecha. Addtime. Suma 2 datos de tipo Hora. current_date Regresa la fecha actual en el server. current_time. Regresa la hora actual en el server.

Page 14: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 6 Funciones de MySQL. Pagina 14 de 39

date_add Suma dos valores de tipo fecha. date_sub. Resta 2 valores de tipo fecha. Date Regresa la fecha de un dato tipo fecha y hora. Datediff Regresa la diferencia entre 2 valores de tipo fecha. Day Regresa el día de un valor de tipo fecha y hora. Month. Regresa el mes de un valor de tipo fecha y hora. Year. Regresa el año de un valor de tipo fecha y hora. Dayname. Regresa el nombre del día de un valor de tipo fecha y hora. Dayofweek. Regresa el día de la semana del día de un valor de tipo fecha y hora. Dayofyear. Regresa el día del año de un valor de tipo fecha y hora. Extract. Extrae un valor parcial de un valor de tipo fecha y hora. Hour. Regresa la hora de un valor de tipo fecha y hora. Minute. Regresa el minuto de un valor de tipo fecha y hora. Second. Regresa el segundo de un valor de tipo fecha y hora. Now. Regresa la fecha y hora actuales. Monthname. Regresa el nombre del mes de un valor de tipo fecha y hora. str_to_date. Convierte un valor de tipo carácter en tipo fecha y hora. Timediff. Regresa la diferencia entre dos valores de tipo hora.

Page 15: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 6 Funciones de MySQL. Pagina 15 de 39

Funciones de uso general. Upper. Devuelve el parámetro en todo mayúsculas. Lower. Devuelve el parámetro en todo minúsculas. Substr. Devuelve una sub cadena según el criterio establecido. Substrindex. Devuelve la posición de la cadena indicada dentro de la cadena principal. Concat. Suma n cadenas indicadas y las entrega como una cadena única. Trim. Elimina los espacios al principio y final de la cadena. Ltrim. Elimina los espacios a la izquierda de la cadena. Rtrim. Elimina los espacios a la derecha de la cadena.

Page 16: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 7 Referencias Cruzadas. Pagina 16 de 39

7.- Referencias Cruzadas en MySQL

7.- Referencias Cruzadas en MySQL

Definición Las referencias cruzadas son una de las herramientas más útiles en las bases de datos actuales. Estas permiten la rápida obtención de datos complejos que de otra forma nos tomaría días o meses encontrar. 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. Una referencia cruzada no es más que la asociación de múltiples tablas. Esto se ve más claramente en la siguiente ilustración Ejemplo

La ventaja que nos otorga el cruzado y relacionado de datos:

En primera instancia es el ahorro de consumo de espacio. Pues no se repite la información, solo las claves que nos remiten a la información completa.

En segundo lugar seria la facilidad y rapidez para la generación de resúmenes o entrega de resultados, pues

por ejemplo, fácil y naturalmente podríamos localizar todas las atenciones de un responsable en particular, o a un cliente en particular.

En esta ilustración podemos observar que existen. 2 tablas principales. La tabla de Responsables. Seria donde se registren a los ejecutivos de cuenta que atienden a los clientes. La tabla de Clientes. Seria donde se registre el catalogo de clientes. Y 2 tablas derivadas o cruzadas. La tabla de Atenciones. En esta se registrara un histórico con las atenciones atendidas a cada cliente por cada responsable. La tabla de Responsables_clientes En esta se registraría el cruzado de que responsables atienden a que clientes.

Page 17: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 7 Referencias Cruzadas. Pagina 17 de 39

Ejemplos Prácticos Por ejemplo: Para obtener un contador de todas las atenciones otorgadas a un cliente en particular medido en días,

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.nombrecliente as Cliente from clientes, responsables, responsables_clientes

WHERE (responsables.nombre=’David’) AND (responsables_clientes.noresponsable=responsables.noresponsable) AND (responsables_clientes.nocliente=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, de este modo el tiempo que el servidor MySQL tarde en generar el vector de resultados se vera reducido considerablemente. Del mismo modo se sugiere utilizar campos numéricos, en lugar de campos de texto para este propósito.

Page 18: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 18 de 39

8.- Importación, Exportación de datos a MySQL

8.- 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. Configuración de Servidores

Para configurar el programa y la conexión con el servidor MySQL hay que:

Oprimir el botón Connection: , esto abrirá la interfaz necesaria para registrar los datos de enlace con el servidor MySQL:

Los datos de configuración son:

Page 19: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 19 de 39

Connection Name.- Solo es el nombre con el que conoceremos esta conexión. Host name.- El nombre o IP del servidor MySQL Port.- Puerto de comunicaciones a emplear. User.- Nombre del usuario con el que estableceremos la comunicación. Password.- Password de acceso del usuario indicado. Basta oprimir el botón test connection para verificar que los datos ingresados son los correctos. A continuación, en la sección de Connections veremos una lista de servidores configurados, en nuestro caso solo 1

servidor.

Activación de Conexión Para trabajar ahora, es necesario indicar con que conexión lo haremos (esto es necesario porque el programa

Navicat, asume que se manejan mas de 1 conexión, aunque en nuestro caso solo sea una). Para ello basta con hacer doble clic sobre el nombre de nuestra conexión.

La imagen cambiara como se muestra en la figura anterior. Hay que notar, que cuando ya hemos asignado la conexión, el icono que indica la conexión cambia de: a: .

Page 20: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 20 de 39

A continuación, se requiere indicar con que base de datos trabajaremos. Aunque solo hemos dado de alta una base

de datos, MySQL siempre define 2 bases de datos para la operación interna, y no deben ser modificadas nunca. Estas bases de dato son: MySQL Test Como puede observar, las bases de datos aparecen en color gris, esto porque no se ha indicado con que base de

datos se pretende trabajar. Al igual que con las conexiones se debe indicar específicamente con que elemento se trabajara, para ello basta dar doble clic en la base de datos a emplear. El indicador cambiara de: a: .

Importación de datos de un archivo de Excel. Para importar datos de una hoja de Excel a una base de datos MySQL, primero hay que estar completamente

seguros que la hoja de Excel corresponde con las columnas de alguna tabla previamente definida. (Modelado de datos).

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.

Page 21: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 21 de 39

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, de donde se pretende importar los datos.

En nuestro caso debemos indicar Excel file, Excel 2007 file, según sea el caso. 2º.- Indicar cual y donde se encuentra el archivo origen.

3º.- Seleccionar la hoja(s) de donde se obtendrán los datos.

Page 22: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 22 de 39

4º.- Configuración de la interpretación de los datos contenidos.

Este paso es necesario pues dado el formato de Excel, en ocasiones no es fácilmente inidentificable el tipo de

información que se contiene en las columnas, por este motivo en ocasiones es necesario indicar de que forma vienen contenidos los datos de tipo fecha, y los numéricos, así como una indicación de la existencia de un renglón de identificación de columnas y los limites de la información.

5º.- Asignación de destino de los datos.

En este paso se debe confirmar a que tabla se pretende insertar la información, y si se debe añadir o insertar como

tabla nueva. En nuestros casos se deberá añadir para que se registre en forma incremental.

Page 23: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 23 de 39

6º.- Identificación de columnas.

Es necesario establecer una regla de correspondencia entre las columnas del archivo origen (de Excel), y la tabla

destino. Para ello se deben identificar una a una las columnas en la tabla y en el archivo de Excel. 7º.- Indicar si se deben actualizar los registros ya existentes, o agregar al final de la tabla.

Al igual que cuando indicamos si la tabla se modificaría o se agregaría como nueva, es necesario indicar que hacer

con los registros que se identifiquen como preexistentes en la tabla. En nuestro caso, se deberán agregar a la tabla, y así crear un registro incremental.

Page 24: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 24 de 39

8º.- Iniciar el proceso de importación.

Finalmente se debe ejecutar el proceso de importación de datos. Exportación de Datos. Para Exportar datos contenidos en MySQL, utilizaremos otra herramienta llamada: MySQL Query Browser. Esta herramienta nos permitirá seleccionar los datos que deseamos y guardarlos en un archivo con el formato que

mejor nos convenga. Al igual que con el programa Navicat, es necesario indicar a que servidor MySQL y con que Base de Datos

trabajaremos. Para ello seguiremos los siguientes pasos: Configuración de conexión para MySQL Query Browser. 1º.- Indicar los parámetros de conexión básicos.

Page 25: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 25 de 39

Selección de Base de datos 2º.- Indicar la base de datos con la cual se trabajara:

En la ventana principal del MySQL Query Browser, 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, basta con hacer doble clic sobre el nombre de la base de datos en

la sección de lista de bases de datos. En seguida se mostrara en negritas el nombre de la base de datos, además de que se expandirá y se mostrara un

listado de todas las tablas contenidas en esa base de datos.

Seccion de Captura de Queries

Sección de desplegado de resultados

Sección de lista de bases de datos.

Sección de ayuda rápida.

Page 26: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 8 Importación, Exportación a MySQL. Pagina 26 de 39

3º Introducir el Query que nos regrese los datos a exportar. Es necesario capturar el Query que pretendemos emplear para seleccionar la información a exportar, 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. Para finalizar, basta indicar que deseamos exportar los datos del set de resultados, el formato y el nombre y

ubicación del archivo exportado:

Page 27: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 27 de 39

9 Generación de Informes y Consultas Cruzadas.

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, 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, y con ello importar los datos en Excel o Access. 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. Para ello primero se indica el tipo de datos a vincular, en nuestro caso un acceso ODBC. Vinculación de tablas

Page 28: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 28 de 39

A continuación indicar que si el origen de datos se vincularan en forma dinámica los datos, y no solo se

importaran.

A continuación se especifica el archivo de origen de datos. Especificación de archivo de origen de datos o DSN

En seguida hay que indicar que tablas se vincularan. Selección de tablas a vincular

Macropro

Page 29: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 29 de 39

Solo por verificar, en el panel de exploración de tablas y consultas, 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.

Una vez iniciado el proceso de construcción de consulta, se deben indicar las tablas que serán consultadas.

En seguida se debe cambiar la vista a vista SQL

Page 30: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 30 de 39

Captura de Query

En esta vista es posible capturar la consulta SQL directamente. 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.

Impresión o visualización de reporte de resultados.

6º Imprimamos o exportemos los datos. Para ello en el panel de listado de tablas y consultas, hagamos clic derecho sobre el nombre de la consulta y

seleccionemos la opción Exportar, y determinemos el formato de salida para el archivo con el resultado de la consulta.

Page 31: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 31 de 39

Uso de Informes para la visualización o impresión de un conjunto de resultados. Ahora bien, es posible construir un informe con el resultado de la consulta. Esto es, organizar la información en

un formato impreso predeterminado. 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, es decir en base a que columnas se agruparan los resultados

del informe:

Page 32: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 32 de 39

Selección de columnas para ordenado de resultados Posteriormente se pueden fijar hasta 4 niveles de ordenación dependiente.

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. Access cuenta

con una amplia gama de estilos prediseñados.

Page 33: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting 9 Generación de Informes y Consultas Cruzadas. Pagina 33 de 39

Visualización de informe Y por ultimo visualice el informe recién construido:

Page 34: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Apéndice I – Funciones de MySQL. Pagina 34 de 39

APENDICES

APENDICES

APENDICE I

Biblioteca de funciones de MySQL

Name Description

ABS() Return the absolute value

ACOS() Return the arc cosine

ADDDATE()(v4.1.1) Add dates

ADDTIME()(v4.1.1) Add time

AES_DECRYPT() Decrypt using AES

AES_ENCRYPT() Encrypt using AES

AND, && Logical AND

ASCII() Return numeric value of left-most character

ASIN() Return the arc sine

ATAN2(), ATAN() Return the arc tangent of the two arguments

ATAN() Return the arc tangent

AVG() Return the average value of the argument

BENCHMARK() Repeatedly execute an expression

BETWEEN ... AND ... Check whether a value is within a range of values

BIN() Return a string representation of the argument

BINARY Cast a string to a binary string

BIT_AND() Return bitwise and

BIT_COUNT() Return the number of bits that are set

BIT_LENGTH() Return length of argument in bits

BIT_OR() Return bitwise or

BIT_XOR()(v4.1.1) Return bitwise xor

& Bitwise AND

~ Invert bits

| Bitwise OR

^ Bitwise XOR

CASE Case operator

CAST() Cast a value as a certain type

CEIL() Return the smallest integer value not less than the argument

CEILING() Return the smallest integer value not less than the argument

CHAR_LENGTH() Return number of characters in argument

CHAR() Return the character for each integer passed

CHARACTER_LENGTH() A synonym for CHAR_LENGTH()

CHARSET()(v4.1.0) Return the character set of the argument

COALESCE() Return the first non-NULL argument

COERCIBILITY()(v4.1.1) Return the collation coercibility value of the string argument

COLLATION()(v4.1.0) Return the collation of the string argument

Page 35: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Apéndice I – Funciones de MySQL. Pagina 35 de 39

Name Description

COMPRESS()(v4.1.1) Return result as a binary string

CONCAT_WS() Return concatenate with separator

CONCAT() Return concatenated string

CONNECTION_ID() Return the connection ID (thread ID) for the connection

CONV() Convert numbers between different number bases

CONVERT_TZ()(v4.1.3) Convert from one timezone to another

Convert() Cast a value as a certain type

COS() Return the cosine

COT() Return the cotangent

COUNT(DISTINCT) Return the count of a number of different values

COUNT() Return a count of the number of rows returned

CRC32()(v4.1.0) Compute a cyclic redundancy check value

CURDATE() Return the current date

CURRENT_DATE(), CURRENT_DATE Synonyms for CURDATE()

CURRENT_TIME(), CURRENT_TIME Synonyms for CURTIME()

CURRENT_TIMESTAMP(), CURRENT_TIMESTAMP

Synonyms for NOW()

CURRENT_USER(), CURRENT_USER Return the username and hostname combination

CURTIME() Return the current time

DATABASE() Return the default (current) database name

DATE_ADD() Add two dates

DATE_FORMAT() Format date as specified

DATE_SUB() Subtract two dates

DATE()(v4.1.1) Extract the date part of a date or datetime expression

DATEDIFF()(v4.1.1) Subtract two dates

DAY()(v4.1.1) Synonym for DAYOFMONTH()

DAYNAME()(v4.1.21) Return the name of the weekday

DAYOFMONTH() Return the day of the month (0-31)

DAYOFWEEK() Return the weekday index of the argument

DAYOFYEAR() Return the day of the year (1-366)

DECODE() Decodes a string encrypted using ENCODE()

DEFAULT() Return the default value for a table column

DEGREES() Convert radians to degrees

DES_DECRYPT() Decrypt a string

DES_ENCRYPT() Encrypt a string

DIV(v4.1.0) Integer division

/ Division operator

ELT() Return string at index number

ENCODE() Encode a string

ENCRYPT() Encrypt a string

<=> NULL-safe equal to operator

= Equal operator

EXP() Raise to the power of

EXPORT_SET() Return a string such that for every bit set in the value bits, you get an on string and for every unset bit, you get an off string

EXTRACT Extract part of a date

Page 36: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Apéndice I – Funciones de MySQL. Pagina 36 de 39

Name Description

FIELD() Return the index (position) of the first argument in the subsequent arguments

FIND_IN_SET() Return the index position of the first argument within the second argument

FLOOR() Return the largest integer value not greater than the argument

FORMAT() Return a number formatted to specified number of decimal places

FOUND_ROWS() For a SELECT with a LIMIT clause, the number of rows that would be returned were there no LIMIT clause

FROM_DAYS() Convert a day number to a date

FROM_UNIXTIME() Format UNIX timestamp as a date

GET_FORMAT()(v4.1.1) Return a date format string

GET_LOCK() Get a named lock

>= Greater than or equal operator

> Greater than operator

GREATEST() Return the largest argument

GROUP_CONCAT()(v4.1) Return a concatenated string

HEX() Return a hexadecimal representation of a decimal or string value

HOUR() Extract the hour

IF() If/else construct

IFNULL() Null if/else construct

IN() Check whether a value is within a set of values

INET_ATON() Return the numeric value of an IP address

INET_NTOA() Return the IP address from a numeric value

INSERT() Insert a substring at the specified position up to the specified number of characters

INSTR() Return the index of the first occurrence of substring

INTERVAL() Return the index of the argument that is less than the first argument

IS_FREE_LOCK() Checks whether the named lock is free

IS NOT NULL NOT NULL value test

IS NULL NULL value test

IS_USED_LOCK()(v4.1.0) Checks whether the named lock is in use. Return connection identifier if true.

ISNULL() Test whether the argument is NULL

LAST_DAY(v4.1.1) Return the last day of the month for the argument

LAST_INSERT_ID() Value of the AUTOINCREMENT column for the last INSERT

LCASE() Synonym for LOWER()

LEAST() Return the smallest argument

<< Left shift

LEFT() Return the leftmost number of characters as specified

LENGTH() Return the length of a string in bytes

<= Less than or equal operator

< Less than operator

LIKE Simple pattern matching

LN() Return the natural logarithm of the argument

LOAD_FILE() Load the named file

LOCALTIME(), LOCALTIME Synonym for NOW()

LOCALTIMESTAMP, LOCALTIMESTAMP()(v4.0.6)

Synonym for NOW()

LOCATE() Return the position of the first occurrence of substring

LOG10() Return the base-10 logarithm of the argument

Page 37: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Apéndice I – Funciones de MySQL. Pagina 37 de 39

Name Description

LOG2() Return the base-2 logarithm of the argument

LOG() Return the natural logarithm of the first argument

LOWER() Return the argument in lowercase

LPAD() Return the string argument, left-padded with the specified string

LTRIM() Remove leading spaces

MAKE_SET() Return a set of comma-separated strings that have the corresponding bit in bits set

MAKEDATE()(v4.1.1) Create a date from the year and day of year

MAKETIME(v4.1.1) MAKETIME()

MASTER_POS_WAIT() Block until the slave has read and applied all updates up to the specified position

MATCH Perform full-text search

MAX() Return the maximum value

MD5() Calculate MD5 checksum

MICROSECOND()(v4.1.1) Return the microseconds from argument

MID() Return a substring starting from the specified position

MIN() Return the minimum value

- Minus operator

MINUTE() Return the minute from the argument

MOD() Return the remainder

% Modulo operator

MONTH() Return the month from the date passed

MONTHNAME()(v4.1.21) Return the name of the month

NOT BETWEEN ... AND ... Check whether a value is not within a range of values

!=, <> Not equal operator

NOT IN() Check whether a value is not within a set of values

NOT LIKE Negation of simple pattern matching

NOT REGEXP Negation of REGEXP

NOT, ! Negates value

NOW() Return the current date and time

NULLIF() Return NULL if expr1 = expr2

OCT() Return an octal representation of a decimal number

OCTET_LENGTH() A synonym for LENGTH()

OLD_PASSWORD()(v4.1) Return the value of the old (pre-4.1) implementation of PASSWORD

||, OR Logical OR

ORD() Return character code for leftmost character of the argument

PASSWORD() Calculate and return a password string

PERIOD_ADD() Add a period to a year-month

PERIOD_DIFF() Return the number of months between periods

PI() Return the value of pi

+ Addition operator

POSITION() A synonym for LOCATE()

POW() Return the argument raised to the specified power

POWER() Return the argument raised to the specified power

PROCEDURE ANALYSE() Analyze the results of a query

QUARTER() Return the quarter from a date argument

QUOTE() Escape the argument for use in an SQL statement

RADIANS() Return argument converted to radians

Page 38: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Apéndice I – Funciones de MySQL. Pagina 38 de 39

Name Description

RAND() Return a random floating-point value

REGEXP Pattern matching using regular expressions

RELEASE_LOCK() Releases the named lock

REPEAT() Repeat a string the specified number of times

REPLACE() Replace occurrences of a specified string

REVERSE() Reverse the characters in a string

>> Right shift

RIGHT() Return the specified rightmost number of characters

RLIKE Synonym for REGEXP

ROUND() Round the argument

RPAD() Append string the specified number of times

RTRIM() Remove trailing spaces

SEC_TO_TIME() Converts seconds to 'HH:MM:SS' format

SECOND() Return the second (0-59)

SESSION_USER() Synonym for USER()

SHA1(), SHA() Calculate an SHA-1 160-bit checksum

SIGN() Return the sign of the argument

SIN() Return the sine of the argument

SOUNDEX() Return a soundex string

SOUNDS LIKE(v4.1.0) Compare sounds

SPACE() Return a string of the specified number of spaces

SQRT() Return the square root of the argument

STD() Return the population standard deviation

STDDEV() Return the population standard deviation

STR_TO_DATE()(v4.1.1) Convert a string to a date

STRCMP() Compare two strings

SUBDATE() A synonym for DATE_SUB() when invoked with three arguments

SUBSTR() Return the substring as specified

SUBSTRING_INDEX() Return a substring from a string before the specified number of occurrences of the delimiter

SUBSTRING() Return the substring as specified

SUBTIME()(v4.1.1) Subtract times

SUM() Return the sum

SYSDATE() Return the time at which the function executes

SYSTEM_USER() Synonym for USER()

TAN() Return the tangent of the argument

TIME_FORMAT() Format as time

TIME_TO_SEC() Return the argument converted to seconds

TIME()(v4.1.1) Extract the time portion of the expression passed

TIMEDIFF()(v4.1.1) Subtract time

* Times operator

TIMESTAMP()(v4.1.1) With a single argument, this function returns the date or datetime expression; with two arguments, the sum of the arguments

TO_DAYS() Return the date argument converted to days

TRIM() Remove leading and trailing spaces

TRUNCATE() Truncate to specified number of decimal places

Page 39: Curso SQL Practico

CURSO SQL PRACTICO Wintell

Nov 2008

ITConsulting Apéndice I – Funciones de MySQL. Pagina 39 de 39

Name Description

UCASE() Synonym for UPPER()

- Change the sign of the argument

UNCOMPRESS()(v4.1.1) Uncompress a string compressed

UNCOMPRESSED_LENGTH()(v4.1.1) Return the length of a string before compression

UNHEX()(v4.1.2) Convert each pair of hexadecimal digits to a character

UNIX_TIMESTAMP() Return a UNIX timestamp

UPPER() Convert to uppercase

USER() Return the current username and hostname

UTC_DATE()(v4.1.1) Return the current UTC date

UTC_TIME()(v4.1.1) Return the current UTC time

UTC_TIMESTAMP()(v4.1.1) Return the current UTC date and time

UUID()(v4.1.2) Return a Universal Unique Identifier (UUID)

VALUES()(v4.1.1) Defines the values to be used during an INSERT

VARIANCE()(v4.1) Return the population standard variance

VERSION() Returns a string that indicates the MySQL server version

WEEK() Return the week number

WEEKDAY() Return the weekday index

WEEKOFYEAR()(v4.1.1) Return the calendar week of the date (0-53)

XOR Logical XOR

YEAR() Return the year

YEARWEEK() Return the year and week


Related Documents