mysql mysql es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más...

21
MySQL MySQL es un sistema de gestión de base de datos relacional , multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009 — desarrolla MySQL como software libre en un esquema de licenciamiento dual. Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C . Al contrario de proyectos como Apache , donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es propietario y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código. Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus

Upload: valeriano-grano

Post on 22-Jan-2015

23 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

MySQLMySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB —desde enero de 2008 una subsidiaria de Sun Microsystems y ésta a su vez de Oracle Corporation desde abril de 2009— desarrolla MySQL como software libre en un esquema de licenciamiento dual.

Por un lado se ofrece bajo la GNU GPL para cualquier uso compatible con esta licencia, pero para aquellas empresas que quieran incorporarlo en productos privativos deben comprar a la empresa una licencia específica que les permita este uso. Está desarrollado en su mayor parte en ANSI C.

Al contrario de proyectos como Apache, donde el software es desarrollado por una comunidad pública y el copyright del código está en poder del autor individual, MySQL es propietario y está patrocinado por una empresa privada, que posee el copyright de la mayor parte del código.

Esto es lo que posibilita el esquema de licenciamiento anteriormente mencionado. Además de la venta de licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones contratan trabajadores alrededor del mundo que colaboran vía Internet. MySQL AB fue fundado por David Axmark, Allan Larsson y Michael Widenius.

Page 2: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Historia del Proyecto

SQL (Lenguaje de Consulta Estructurado) fue comercializado por primera vez en 1981 por IBM, el cual fue presentado a ANSI y desde entonces ha sido considerado como un estándar para las bases de datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea originaria de la empresa opensource MySQL AB establecida inicialmente en Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael "Monty" Widenius. El objetivo que persigue esta empresa consiste en que MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o usabilidad.

Michael Widenius en la década de los 90 trató de usar mSQL para conectar las tablas usando rutinas de bajo nivel ISAM, sin embargo, mSQL no era rápido y flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada MySQL para bases de datos muy similar a la de mSQL pero más portable.La procedencia del nombre de MySQL no es clara. Desde hace más de 10 años, las herramientas han mantenido el prefijo My. También, se cree que tiene relación con el nombre de la hija del cofundador Monty Widenius quien se llama My.

Por otro lado, el nombre del delfín de MySQL es Sakila y fue seleccionado por los fundadores de MySQL AB en el concurso “Name the Dolphin”. Este nombre fue enviado por Ambrose Twebaze, un desarrollador de Open source Africano, derivado del idioma SiSwate, el idioma local de Swazilandia y corresponde al nombre de una ciudad en Arusha, Tanzania, cerca de Uganda la ciudad origen de Ambrose.

Page 3: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Aplicaciones

MySQL es muy utilizado en aplicaciones web, como Drupal o phpBB, en plataformas (Linux/Windows-Apache-MySQL-PHP/Perl/Python), y por herramientas de seguimiento de errores como Bugzilla. Su popularidad como aplicación web está muy ligada a PHP, que a menudo aparece en combinación con MySQL.

MySQL es una base de datos muy rápida en la lectura cuando utiliza el motor no transaccional MyISAM, pero puede provocar problemas de integridad en entornos de alta concurrencia en la modificación. En aplicaciones web hay baja concurrencia en la modificación de datos y en cambio el entorno es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de aplicaciones.

Page 4: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Tipos de datos que se manejan en MySQL

Datos Numéricos :

Los tipos de datos numéricos son como sigue:

BITTINYINTBOOLEANSMALLINTMEDIUMINTINTINTEGERBIGINTFLOATDOUBLEDECIMAL

BIT : BIT es un sinónimo de TINYINT(1).

TINYINT[(M)] : Un número entero muy pequeño. El rango suscrito va de -128 a 127. El rango no suscrito va de 0 a 255.

Page 5: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

BOOL, BOOLEAN : Estos tipos son sinónimos de TINYINT(1). Un valor para cero es considerado falso. Valores que no sean cero son considerados verdad.

MEDIUMINT : Un número entero de tamaño medio. El rango suscrito va de -8388608 a 8388607. El rango no suscrito va de 0 a 16777215.

INT : Un número entero de tamaño normal. El rango suscrito va de -2147483648 to 2147483647. El rango no suscrito va de 0 a 4294967295.

INTEGER : Este tipo es sinónimo de INT.

FLOAT :Un número punto flotante pequeño (simple precisión). Los valores van de 3.402823466E+38 a -1.175494351E-38, 0, y 1.175494351E-38 a 3.402823466E+38.

DOUBLE : Un número punto flotante normal (doble precisión). Los valores van de 1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y 2.2250738585072014E-308 a 1.7976931348623157E+308.

Page 6: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

DECIMAL : El número máximo de dígitos (M) para DECIMAL es 64.Tipos de Datos Fecha y Hora :

DATETIMEDATETIMETIMESTAMPYEAR

DATE : Una Fecha. El rango es 1000-01-01 a 9999-12-31. Los valores de fecha se muestran con el formato YYYY-MM-DD (Año-Mes-Día).

TIME : Una Hora. El rango es -838:59:59 a 838:59:59. Los valores de hora se muestran con el formato HH:MM:SS.

Page 7: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

DATETIME :Una combinación de Fecha y Hora. El rango es 1000-01-01 00:00:00 a 9999-12-31 23:59:59. Los valores fecha hora son mostrados en formato YYYY-MM-DD HH:MM:SS.

TIMESTAMP :Una Marca de Tiempo. El rango es 1970-01-01 00:00:01 UTC hasta parcialmente el año 2037. Una columna TIMESTAMP es útil para grabar la fecha y hora de una operación INSERT o UPDATE.

YEAR : Un Año. Los valores de año son mostrados en formato de dos dígitos o de cuatro. El rango de valores para un dígito de cuatro es 1901 a 2155. Para los dos dígito, el rango es 70 a 69, representando años desde 1970 a 2069.

Para todas la columnas de fecha y hora, podemos asignar también los valores usando strings o números.

Page 8: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

CHAR() : Es un string de longitud fija que es principalmente usado cuando los datos no van a variar mucho en su longitud. Toma valores de 0 a 255 de longitud de caracteres. Cuando almacenamos valores CHAR ellos están rellenos correctamente con espacios de la longitud específica. Cuando obtenemos valores CHAR, los espacios finales son eliminados.

VARCHAR() : Es una variable string de longitud y es usada principalmente cuando los datos pueden variar en longitud. Toma valores de 0 a 255 de longitud de caracteres. Los valores VARCHAR no son rellenados cuando son más cortos.

TINYTEXT, TINYBLOB : Un string con una longitud máxima de 255 caracteres.

TEXT :Las columnas TEXT son tratadas como caracteres string (strings no binarios). Contiene una longitud máxima de 65535 caracteres. BLOB : BLOB es el acrónimo de Binary Large OBject (Objeto Binario Grande). Puede tener un montón de datos variables. Las columnas BLOB son tratadas como string de bytes (string binarios). Contiene una longitud máxima de 65535.

Page 9: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

VARBINARY :Es similar al tipo VARCHAR. Almacena el valor como un string de bytes binario en vez de como un caracter string no binario.

ENUM() : Una enumeracion. Cada columna puede tener uno de los posibles valores especificados. Puede almacenar solo uno de los valores que están declarados en la lista específica contenida en los paréntesis ( ). La lista ENUM tiene un alcance de más de 65535 valores.

SET() : Un set. Cada columna puede tener más de uno de los posibles valores especificados. Contiene más de 64 objetos de lista y puede almacenar más de una opción. Los valores SET son representados internamente como números enteros.

Si CHAR y VARCHAR son usados en la misma tabla, entonces MySQL cambiará automáticamente CHAR a VARCHAR por razones de compatibilidad. Los paréntesis ( ) permiten introducir un máximo número de caractereces que serán usados en la columna.

Page 10: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

MEDIUMTEXT, MEDIUMBLOB : Tiene una longitud máxima de 16777215 caracteres.

BIGINT : Un número entero grande. El rango suscrito va de -9223372036854775808 a 9223372036854775807. El rango no suscrito va de 0 a 18446744073709551615.

LONGTEXT, LONGBLOB : Tiene una longitud máxima de 4294967295 caracteres.

BINARY : Es similar al tipo CHAR. Almacena el valor como string de byte binario en vez de como un caracter string no binario

Page 11: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Gracias a aplicaciones como WAMP, EasyPHP, MAMP o XAMP, podemos instalar y configurar Apache, Mysql y PHP de forma fácil en nuestras computadoras.Conozco a muchos desarrolladores que aún programan o configura aplicaciones prefabricadas realizando los cambios en su computadora para luego subir los archivos vía FTP y refrescar. Sin duda no es un método eficiente por el tiempo que se pierde. Todo desarrollador web debería contar con un servidor web instalado de forma local. Si la fórmula a trabajar es Apache, Mysql y PHP, existe forma de configurarlo en nuestro sistema operativo, aunque el proceso puede ser un poco artesanal. Para los que buscamos una forma más rápida de arrancar con nuestro servidor, existen aplicaciones que ya incluyen estos paquetes y con un sencillo instalador nos dejan todo listo para trabajar en un par de minutos:

Instalando Apache, MySQL y PHP de forma fácil

Page 12: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero
Page 13: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Crear Base de datosmysql> USE zoologico ERROR 1049: Unknown database 'zoologico' mysql>

El mensaje anterior indica que la base de datos no ha sido creada, por lo tanto necesitamos crearla.

mysql> CREATE DATABASE zoologico; Query OK, 1 row affected (0.00 sec) mysql> USE zoologico Database changed mysql>

Page 14: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Crear tabla

Page 15: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Mostrar tablaAhora que hemos creado la tabla, la sentencia SHOW TABLES debe

producir algo como:

Page 16: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Para verificar que la tabla fue creada como nosotros esperábamos, usaremos la sentencia DESCRIBE:

Page 17: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Cargar e Insertar datos

Page 18: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Seleccionando todos los datos

Page 19: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Borrar, cargar y actualizar

Page 20: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Consultas particulares

Page 21: MySQL MySQL es un sistema de gestión de base de datos relacional, multihilo y multiusuario con más de seis millones de instalaciones. MySQL AB desde enero

Ahora vamos a la práctica