bases_de_datos:mysql:aspectos_basicos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| bases_de_datos:mysql:aspectos_basicos [2016/11/07 19:34] – [Funciones] alberto | bases_de_datos:mysql:aspectos_basicos [2016/11/15 23:42] (actual) – [Introducción a MySQL] alberto | ||
|---|---|---|---|
| Línea 1: | Línea 1: | ||
| ====== Aspectos Básicos de MySQL ====== | ====== Aspectos Básicos de MySQL ====== | ||
| - | ==== Introducción a MySQL ==== | + | ===== Introducción a MySQL ===== |
| SQL son las siglas de // | SQL son las siglas de // | ||
| Es un lenguaje estándar no procedimental que se utiliza para definir, gestionar y manipular la información contenida en una Base de Datos Relacional.\\ | Es un lenguaje estándar no procedimental que se utiliza para definir, gestionar y manipular la información contenida en una Base de Datos Relacional.\\ | ||
| Línea 20: | Línea 20: | ||
| Existen diferentes Sistemas Gestores de Bases de Datos (SGBD) que implementan el estándar SQL, aunque en cada uno muestra algunas diferencias respecto de los demás, de forma que el estándar aunque muy similar, no se implementa exactamente igual en cada SGBD.\\ | Existen diferentes Sistemas Gestores de Bases de Datos (SGBD) que implementan el estándar SQL, aunque en cada uno muestra algunas diferencias respecto de los demás, de forma que el estándar aunque muy similar, no se implementa exactamente igual en cada SGBD.\\ | ||
| De entre los distintos SGBD que existen, nos vamos a centrar en MySQL, por ser libre, de código abierto y suficientemente potente para multitud de aplicaciones.\\ | De entre los distintos SGBD que existen, nos vamos a centrar en MySQL, por ser libre, de código abierto y suficientemente potente para multitud de aplicaciones.\\ | ||
| + | Además, hay que saber que MySQL no distingue mayúsculas de minúsculas, | ||
| - | ==== Datos ==== | + | ===== Datos ===== |
| - | === Literales === | + | ==== Literales |
| La información que almacena MySQL se guarda con literales que pueden ser de diferentes tipos: | La información que almacena MySQL se guarda con literales que pueden ser de diferentes tipos: | ||
| * **Numérico**: | * **Numérico**: | ||
| Línea 28: | Línea 29: | ||
| * **Fecha**: Son constantes de cadena que mantienen un formato determinado, | * **Fecha**: Son constantes de cadena que mantienen un formato determinado, | ||
| - | === Tipos de datos === | + | ==== Tipos de datos ==== |
| Existen multitud de [[https:// | Existen multitud de [[https:// | ||
| * Datos numéricos: | * Datos numéricos: | ||
| Línea 52: | Línea 53: | ||
| * Binarios: | * Binarios: | ||
| * **BOOLEAN**: | * **BOOLEAN**: | ||
| - | ==== Operadores ==== | + | ===== Operadores |
| Los [[https:// | Los [[https:// | ||
| * **Aritméticos**: | * **Aritméticos**: | ||
| * **De comparación**: | * **De comparación**: | ||
| * Retornan según proceda Verdadero, Falso o Nulo (TRUE, FALSE, NULL). | * Retornan según proceda Verdadero, Falso o Nulo (TRUE, FALSE, NULL). | ||
| - | * Igual(=), distinto(!=), | + | * Igual< |
| * // | * // | ||
| * Forma de uso: BETWEEN valor1 AND valor2 | * Forma de uso: BETWEEN valor1 AND valor2 | ||
| Línea 83: | Línea 84: | ||
| | 6º | OR, XOR | Inclusión, exclusión | | 6º | OR, XOR | Inclusión, exclusión | ||
| - | ==== Funciones ==== | + | ===== Funciones |
| Existen multitud de [[https:// | Existen multitud de [[https:// | ||
| - | * **Funciones aritméticas** | + | * **Funciones aritméticas**: |
| ^ Función ^ Operación ^ | ^ Función ^ Operación ^ | ||
| | ABS(num) | Valor absoluto de num | | | ABS(num) | Valor absoluto de num | | ||
| Línea 104: | Línea 106: | ||
| * **Funciones de caracteres**: | * **Funciones de caracteres**: | ||
| + | ^ Función ^ Operación ^ | ||
| + | | ASCII(c1) | Devuelve el código ASCII del carácter c1 | | ||
| + | | CHAR(num) | Devuelve el carácter cuyo código ASCII es num | | ||
| + | | CONCAT(cad1, | ||
| + | | INSERT(cad1, | ||
| + | | LENGTH(cad1) | Longitud de cad1 | | ||
| + | | LOCATE(cad1, | ||
| + | | LOWER(cad1) | cad1 en minúsculas | | ||
| + | | LPAD(cad1, n, cad2) | Añade a cad1 por la izquierda cad2 hasta n caracteres (si se omite cad2, añade espacios) | | ||
| + | | LTRIM(cad1) | Suprime blancos a la izquierda de cad1 | | ||
| + | | REPLACE(cad1, | ||
| + | | RPAD(cad1, n, cad2) | Añade a cad1 por la derecha cad2 hasta n caracteres (si se omite cad2, añade espacios) | | ||
| + | | RTRIM(c1) | Suprime blancos a la derecha de c1 | | ||
| + | | SUBSTR(c1, n, m) | Devuelve una subcadena a partir de c1, comenzando en la posición n, tomando m caracteres | | ||
| + | | UPPER(cad1) | La cadena cad1 en mayúsculas | | ||
| * **Funciones de fecha**: | * **Funciones de fecha**: | ||
| + | ^ Función ^ Operación ^ | ||
| + | | ADDDATE(fecha, | ||
| + | | SUBDATE(fecha, | ||
| + | | DATE_ADD(fecha, | ||
| + | | DATE_SUB(fecha, | ||
| + | | DATEDIFF(fecha1, | ||
| + | | DAYNAME(fecha) | Nombre del día de la semana de fecha | | ||
| + | | DAYOFMONTH(fecha) | Número del día del mes de fecha | | ||
| + | | DAYOFWEEK(fecha) | Número del día de la semana de fecha (de 1 a 7, empezando por el domingo) | | ||
| + | | DAYOFYEAR(fecha) | Número del día del año de fecha (de 1 a 366) | | ||
| + | | WEEKOFYEAR(fecha) | Número de la semana de fecha (de 1 a 53) | | ||
| + | | MONTH(fecha) | Número del mes de fecha (de 1 a 12) | | ||
| + | | YEAR(fecha) | Número del año con cuatro dígitos de fecha (de 0 a 9999) | | ||
| + | | HOUR(tiempo) | Hora de tiempo (de 0 a 23) | | ||
| + | | MINUTE(tiempo) | Minutos de tiempo (de 0 a 59) | | ||
| + | | SECOND(tiempo) | Segundos de tiempo (de 0 a 59) | | ||
| + | | CURDATE() | Fecha actual en formato ' | ||
| + | | CURTIME() | Hora actual en formato ' | ||
| + | | SYSDATE() | Fecha y hora actual con formato ' | ||
| + | |||
| + | Para la conversión a otro tipo de datos: DATE_FORMAT(fecha, | ||
| + | * Devuelve una cadena de caracteres con el formato especificado. | ||
| + | * El formato es una cadena de caracteres que incluye las siguientes máscaras: | ||
| + | |||
| + | ^ Máscara ^ Descripción^ | ||
| + | | %a | Abreviatura (3 letras) del nombre del día de la semana | | ||
| + | | %b | Abreviatura (3 letras) del nombre del día del mes | | ||
| + | | %c | Número del mes (de 1 a 12) | | ||
| + | | %e | Número del día del mes (de 0 a 31) | | ||
| + | | %H | Número de la hora en formato 24 horas (de 00 a 23) | | ||
| + | | %h | Número de la hora en formato 12 horas (de 01 a 12) | | ||
| + | | %i | Número de minutos (de 00 a 59) | | ||
| + | | %j | Número del día del año (de 000 a 366) | | ||
| + | | %M | Nombre del mes | | ||
| + | | %m | Número del mes (de 01 a 12) | | ||
| + | | %p | AM o PM | | ||
| + | | %r | Hora en formato 12 horas (hh:mm seguido de AM o PM) | | ||
| + | | %s | Número de segundos (00 a 59) | | ||
| + | | %T | Hora en formato 24 horas (hh:mm:ss) | | ||
| + | | %u | Número de semana en el año (de 00 a 53) | | ||
| + | | %W | Nombre del día de la semana | | ||
| + | | %w | Número del día de la semana ( 0: domingo a 6 sábado) | | ||
| + | | %Y | Número del año con cuatro dígitos | | ||
| + | | %y | Número del año con dos dígitos | | ||
| * **Funciones de comparación**: | * **Funciones de comparación**: | ||
| + | ^ Función ^ Operación ^ | ||
| + | | GREATEST(lista de valores) | Mayor de la lista de columnas o expresiones de columna | | ||
| + | | LEAST(lista de valores) | Menor de la lista de columnas o expresiones de columna | | ||
| + | | IFNULL(exp1, | ||
| + | | ISNULL(exp) | TRUE si exp es NULL | | ||
| + | | STRCMP(cad1, | ||
| * **Otras funciones**: | * **Otras funciones**: | ||
| + | |||
| + | ^ Función ^ Operación ^ | ||
| + | | DATABASE() | Nombre de la base de datos actual | | ||
| + | | USER() | Usuario y host de la sesión, de la forma: usuario@host | | ||
| + | | VERSION() | Devuelve una cadena indicando la versión de MySQL que estamos utilizando | | ||
| + | |||
| + | ===== Valores Nulos (NULL) ===== | ||
| + | En SQL (y por extensión en MySQL) la ausencia de valor se representa como NULL.\\ | ||
| + | Al operar con valores nulos hay que tener en cuenta las siguientes consideraciones: | ||
| + | * Si realizamos operaciones aritméticas, | ||
| + | * Si comparamos expresiones que contienen el valor nulo, con otro valor nulo, el resultado no es mayor, ni menor, ni igual. En SQL un valor nulo no es igual a otro valor nulo. | ||
| + | |||
| + | Para evitar los problemas con valores nulos a la hora de que al realizar cálculos o comparaciones entre columnas, es recomendable usar la función IFNULL para devolver otro valor en caso de que un valor sea NULL. | ||
| + | |||
| + | ===== Expresiones y condiciones ===== | ||
| + | Una **expresión** es un conjunto de variables, literales, funciones, operadores y paréntesis.\\ | ||
| + | Los paréntesis sirven para variar el orden de prioridad y sólo son obligatorios en ese caso.\\ | ||
| + | |||
| + | Las **condiciones** son casos especiales de expresiones, | ||
| + | |||
| + | ===== Control de Transacciones: | ||
| + | Los gestores de bases de datos disponen de dos comandos que permiten confirmar o deshacer los cambios realiazdos en la base de datos: | ||
| + | * **COMMIT**: Confirma los cambios realizados haciéndolos permanentes. | ||
| + | * **ROLLBACK**: | ||
| + | |||
| + | Cuando hacemos modificaciones en las tablas no se hacen efectivas (escritura en disco) hasta que no ejecutamos la sentencia COMMIT. Cuando ejecutamos comandos DDL o de definición de datos (CREATE, DROP, ALTER), se ejecuta un COMMIT automático, | ||
| + | |||
| + | Cuando ejecutamos ROLLBACK, se deshacen todos los cambios hasta el último COMMIT ejecutado.\\ | ||
| + | |||
| + | Existe una variable, AUTO_COMMIT, | ||
| + | * **0**: AUTO_COMMIT está desactivado. Hay que hacer COMMIT de forma manual, por lo que es posible usar ROLLBACK. | ||
| + | * **1**: AUTO_COMMIT está activado. Cada vez que se ejecute una sentencia se hará automáticamente COMMIT, por lo que no es posible hacer ROLLBACK. | ||
| + | |||
| + | Para cambiar el valor de esta variable: | ||
| + | <WRAP box> | ||
| + | SET AUTO_COMMIT = 0; | ||
| + | SET AUTO_COMMIT = 1; | ||
| + | </ | ||
| + | |||
| + | Este control de transacciones puede ser extremadamente útil edurante la fase de depuración y prueba de nuestra base de datos. | ||
bases_de_datos/mysql/aspectos_basicos.1478543658.txt.gz · Última modificación: por alberto
