Inducción a MySQL

Description

Definición, tipos de datos y principales claves
Alexandro Prieto
Slide Set by Alexandro Prieto, updated more than 1 year ago
Alexandro Prieto
Created by Alexandro Prieto about 9 years ago
36
0

Resource summary

Slide 2

    Que es ??
    MySQL es un sistema de administración de bases de datos (Database Management System, DBMS) para bases de datos relacionales. Así, MySQL no es más que una aplicación que permite gestionar archivos llamados de bases de datos.

Slide 3

     Existen varias interfaces de programación de aplicaciones que permiten, a aplicaciones escritas en diversos lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C, C++, C#, Pascal, Delphi (vía dbExpress), Eiffel, Smalltalk, Java (con una implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby, Gambas,REALbasic (Mac y Linux), (x)Harbour (Eagle1), FreeBASIC, y Tcl; cada uno de estos utiliza una interfaz de programación de aplicaciones específica. También existe una interfaz ODBC, llamado MyODBC que permite a cualquier lenguaje de programación que soporte ODBC comunicarse con las bases de datos MySQL. También se puede acceder desde el sistema SAP, lenguaje ABAP.   MySQL es muy utilizado en aplicaciones web, como Joomla, Wordpress, 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. Sea cual sea el entorno en el que va a utilizar MySQL, es importante monitorizar de antemano el rendimiento para detectar y corregir errores tanto de SQL como de programación.      
    Lenguajes de programación y Aplicaciones

Slide 4

    Si se utiliza Windows XP: Lo primero es identificar el directorio donde se instaló el MySQL. Si se instaló el AppServ, que es un software que instala Apache+PHP+MySQL, el MySQL se encuentra en: C:\Appserv\mysql Para arrancar el modo consola (modo texto) de MySQL con el cual trabajaremos nos cambiamos al siguiente directorio: C:\Appserv\mysql\bin y en ese directorio se corre el programa: mysql -u root -p Si todo esta correcto aparece el siguiente identificador de MySQL: mysql> En este momento esta listo el MySQL para admitir comandos para el manejo de bases de datos. Si se utiliza Linux (Ubuntu 10.10): Se arranca una terminal por medio de los menús superiores seleccionando: Aplicaciones > Accesorios > Terminal Se abre una ventana y aparece el indicador de la terminal: rogelio@rogelio-laptop:~$ A continuación nos cambiamos al directorio donde se encuentra el programa administrador de MySQL: rogelio@rogelio-laptop:~$ cd /opt/lampp/bin/ Arrancamos el administrador: rogelio@rogelio-laptop:/opt/lampp/bin$ ./mysql -u root Donde "root" es el usuario de conexión con MySQL que en este caso no tiene clave de acceso. En caso de conectarse con un usuario ("juanito") con clave ("123456") se teclearia ./mysql -u root -p y a continuación nos preguntaría la clave de acceso. Si todo esta correcto aparece el siguiente identificador de MySQL: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.1.41 Source distribution Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>En este momento esta listo el MySQL para admitir comandos para el manejo de bases de datos.
    Instrucciones principales en MySQL

Slide 5

    Tipos de datos en MySQL
    ·         A continuación os mostramos los tipos de datos (data types) que se pueden definir para el motor de base de datos MySQL: ·         GrupoTipo de datoIntervaloAlmacenamientoNuméricosTINYINT ·         De -128 a 127 (signed) ·         De 0 a 255 (unsigned) ·         1 byteSMALLINT ·         De -32768 a 32767 (signed) ·         De 0 a 65535 (unsigned) ·         2 bytesMEDIUMINT ·         De -8388608 a 8388607 (signed) ·         De 0 a 16777215 (unsigned) ·         3 bytesINT ·         INTEGER ·         De -2147483648 a 2147483647 (signed) ·         De 0 a 4294967295 (unsigned) ·         4 bytesBIGINTDe -9223372036854775808 a 9223372036854775807 (signed) ·         De 0 a 18446744073709551615 (unsigned)8 bytesBITEquivalente a TINYINT(1)1 byteBOOL ·         BOOLEANEquivalente a TINYINT(1) ·         Valor 0 = False ·         Valor 1 = True1 byteFLOAT [(M,D)] ·         De -3.402823466E+38 a -1.175494351E-38, 0, y desde 1.175494351E-38 a 3.402823466E+38 ·         M es el número total de dígitos y D es el número de dígitos después del punto decimal. Si se omiteM y D, los valores se almacenan en los límites permitidos por el hardware (unas 7 posiciones decimales) ·         4 bytesFLOAT (p) ·         p representa la precisión en bits, MySQL usa este valor sólo para determinar si se debe usar FLOAT o DOUBLE para el tipo de datos resultante. ·         Si p está entre 0 a 24, el tipo de datos se convierte en FLOAT (sin M ó D). Si p está entre 25 a 53, el tipo de datos se convierte a DOUBLE (sin M ó D). ·         En realidad este tipo de datos es proporcionado por MySQL por compatibilidad con ODBC ·         4 bytes si 0 pp DOUBLE [(M,D)] ·         De -1.7976931348623157E+308 a -2.2250738585072014E-308, 0, y desde 2.2250738585072014E-308 a 1.7976931348623157E+308 ·         M es el número total de dígitos y D es el número de dígitos después del punto decimal. Si se omiteM y D, los valores se almacenan en los límites permitidos por el hardware (unas 15 posiciones decimales) ·         8 bytesREAL[(M,D)] ·         DOUBLE PRECISIONEquivalente a DOUBLE, con la excepción de que si está activado el modo REAL_AS_FLOAT, REAL es un sinónimo de FLOAT en lugar de DOUBLE4 Bytes ó 8 bytesDECIMAL [(M[,D])] ·         DEC [(M[,D])] ·         NUMERIC [(M[,D])] ·         FIXED[(M[,D])]  ·         Número en coma flotante sin empaquetar. Se comporta como una columna CHAR. El número se almacena como una cadena, usando un carácter para cada dígito del valor. ·         El rango máximo es el mismo que para el tipo DOUBLE ·         M+2 bytes sí D > 0 ·         M+1 bytes sí D = 0 ·         D+2, si M D ·         Fecha y horaDATEFecha, con rango desde '1000-01-01' a '9999-12-31' con formato 'YYYY-MM-DD'3 bytesDATETIMEFecha y hora, con rango desde '1000-01-01 00:00:00' a '9999-12-31 23:59:59' con formato 'YYYY-MM-DD HH:MM:SS'8 bytesTIMESTAMP[(M)]Fecha y hora, el rango va desde '1970-01-01 00:00:01' UTC a '2038-01-19 03:14:07' UTC. El formato de almacenamiento depende del tamaño del campo4 bytesTIMEHora, con rango desde '-838:59:59' a '838:59:59', con el formato 'HH:MM:SS'3 bytesYEAR[(2|4)]Año en dos o cuatro dígitos, para cuatro dígitos, el rango es de 1901 a 2155, para dos dígitos es de 70 a 69 (representando desde 1070 a 2069)1 byteCadenas de caracteresCHAR (M)Almacena una cadena de longitud fija. La cadena podrá contener desde 0 a 255 caracteresM bytes (tanto si se ocupan como si no)VARCHAR (M)Almacena una cadena de longitud variable. La cadena podrá contener desde 0 a 255 caracteresTamaño contenido del campo más 1 byteBINARY (M)Similar a CHAR, excepto que contiene cadenas de caracteres binarias en lugar de cadenas no binarias. Es decir, que contienen cadenas de bytes en lugar de cadenas de caracteres. Esto significa que no tienen conjunto de caracteres, y la comparación y ordenación se basa en los valores numéricos de los bytes en los valoresM bytes, 0 MVARBINARY (M)Similar a VARCHAR, excepto que contiene cadenas de caracteres binarias en lugar de cadenas no binarias. Es decir, que contienen cadenas de bytes en lugar de cadenas de caracteres. Esto significa que no tienen conjunto de caracteres, y la comparación y ordenación se basa en los valores numéricos de los bytes en los valoresTamaño contenido del campo más 1 byteTEXTTipo de datos no binario que puede contener una cantidad variable de datos. Sirve para almacenar texto (gran cantidad). Hasta 65535 caracteresLongitud + 2 bytes, mientras LTINYTEXTipo de datos no binario que puede contener una cantidad variable de datos. Sirve para almacenar texto (gran cantidad). Hasta 255 caracteresLongitud + 1 bytes, mientras LMEDIUMTEXTTipo de datos no binario que puede contener una cantidad variable de datos. Sirve para almacenar texto (gran cantidad). Hasta 16.777.215 caracteresLongitud + 3 bytes, mientras LLONGTEXTTipo de datos no binario que puede contener una cantidad variable de datos. Sirve para almacenar texto (gran cantidad). Hasta 4.294.967.295 caracteresLongitud + 4 bytes, mientras LBLOBTipo de datos binario que puede contener una cantidad variable de datos. Permite almacenar ficheros (de cualquier tipo). Hasta 65535 bytesLongitud + 2 bytes, mientras LTINYBLOBTipo de datos binario que puede contener una cantidad variable de datos. Permite almacenar ficheros (de cualquier tipo). Hasta 255 bytesLongitud + 1 bytes, mientras LMEDIUMBLOBTipo de datos binario que puede contener una cantidad variable de datos. Permite almacenar ficheros (de cualquier tipo). Hasta 16.777.215 bytesLongitud + 3 bytes, mientras LLONGBLOB ·         Tipo de datos binario que puede contener una cantidad variable de datos. Permite almacenar ficheros (de cualquier tipo). Hasta 4.294.967.295 bytes ·         Longitud + 4 bytes, mientras LENUM (valor1, valor2, ...)Es un tipo de datos de cadena con un valor elegido de una lista de valores permitidos que se enumeran explícitamente en la especificación de la columna al crear la tabla. Acepta hasta 65535 valores distintos1 ó 2 bytes, dependiendo del número de valores de ENUMSET (valor1, valor2, ...)Es un tipo de datos de cadena que puede contener ninguno, uno ó varios valores de una lista previamente establecida (al crear la tabla). La lista puede tener un máximo de 64 valores1, 2, 3, 4, ó 8 bytes, dependiendo del número de miembros del conjuntoTipos de datos espaciales (Open Gis) (*)GEOMETRYGeometry es la clase base de la jerarquía para el modelo geométrico OpenGIS. Es una clase no instanciable, pero tiene unas cuantas propiedades que son comunes para todos los valores geométricos creados con cualquiera de las subclases de GeometryPOINTUn POINT es una geometría que representa una ubicación única en un espacio de coordenadas (valor de la coordenada X, valor de la coordenada Y)LINESTRINGUn LINESTRING es una Curva con interpolación linear entre puntos. Un LINESTRING tiene coordenadas de segmentos, definidos por cada par consecutivo de puntosPOLYGONUn POLYGON es una superficie planar que representa una geometría multicara. Se define por un único límite exterior y cero o más límites interiores, donde cada límite interior define un agujero en el polígonoMULTIPOINTUn MULTIPOINT es una colección de geometrías compuesta de elementos Point. Los puntos no están conectados ni ordenados de ningún modoMULTILINESTRINGUna MULTILINESTRING es una colección de geometrías MultiCurve compuesta de elementos LINESTRINGMULTIPOLYGONUn MULTIPOLYGON es un objeto MultiSurface compuesto de elementos POLYGONGEOMETRYCOLLECTION ·         Una GEOMETRYCOLLECTION es una geometría que consiste en una colección de una o más geometrías de cualquier clase. ·         Todos los elementos en una GEOMETRYCOLLECTION deben estar en el mismo Sistema de Referencia Espacial (es decir, en el mismo sistema de coordenadas) ·         CURVEUna clase CURVE es una geometría unidimensional, normalmente representada por una secuencia de puntos. Las subclases particulares de CURVE definen el tipo de interpolación entre puntos. CURVE es una clase no instanciableMULTICURVEUna clase MULTICURVE es una colección de geometrías que se compone de elementos CURVE. MULTICURVE es una clase no instanciable SURFACEUna clase SURFACE es una geometría bidimensional. Es una clase no instanciable. Su única subclase instanciable es POLYGON    ·         (*) MySQL implementa extensiones espaciales siguiendo la especificación del Consorcio Open GIS (OGC), un consorcio internacional de más de 250 compañías, agencias y universidades que participan en el desarrollo de soluciones conceptuales públicamente disponibles y que pueden ser útiles para todo tipo de aplicaciones que manejan datos espaciales. MySQL implementa un subconjunto del entorno SQL con Tipos Geométricos propuesto por el OGC. Este término se refiere a un entorno SQL que ha sido extendido con un conjunto de tipos geométricos. Una columna SQL con valores geométricos se implementa como una columna que tiene un tipo geométrico. Las especificaciones describen un conjunto de tipos geométricos SQL, así como las funciones para analizar y crear valores geométricos sobre esos tipos.  

Slide 6

    Ejemplos de creación de tablas de MySQL
    Tabla para guardar documentos (gestor documental): CREATE TABLE documento ( codigo int(10) unsigned NOT NULL AUTO_INCREMENT, documento longblob, fechaalta datetime DEFAULT NULL, version varchar(40) DEFAULT NULL, nombre varchar(150) DEFAULT NULL, ruta varchar(255) DEFAULT NULL, caracteristicas text, codusuarioa int(10) unsigned DEFAULT NULL, codusuariom int(10) unsigned DEFAULT NULL, fechaa datetime DEFAULT NULL, fecham datetime DEFAULT NULL, codigoregistro int(10) unsigned DEFAULT NULL, ventana varchar(50) DEFAULT NULL, guardarbd char(1) DEFAULT NULL, PRIMARY KEY (codigo)  ) ENGINE=InnoDB DEFAULT CHARSET=latin1'Tabla de usuarios (login) para acceso a aplicación: CREATE TABLE usuario ( codigo int(10) unsigned NOT NULL AUTO_INCREMENT, nick varchar(20) NOT NULL DEFAULT '', contrasena varchar(100) DEFAULT NULL, codusuarioa int(10) unsigned DEFAULT NULL, codusuariom int(10) unsigned DEFAULT NULL, fechaa datetime DEFAULT NULL, fecham datetime DEFAULT NULL, tipo varchar(20) DEFAULT NULL, administrador char(1) DEFAULT NULL, modificacion char(1) DEFAULT NULL, nombre varchar(100) DEFAULT NULL, fecha datetime DEFAULT NULL, accesoweb char(1) DEFAULT NULL, codigodepartamento int(10) unsigned DEFAULT NULL, email varchar(150) DEFAULT NULL, prioridad int(10) unsigned DEFAULT NULL, telefono varchar(15) DEFAULT NULL, activo char(1) DEFAULT NULL, PRIMARY KEY (codigo), UNIQUE KEY usuario_nick (nick)  ) ENGINE=InnoDB DEFAULT CHARSET=latin1
Show full summary Hide full summary

Similar

MENTEFACTO BASE DE DATOS
jessica patiño
MySQL WorkBench
Adriana Valdez
Páginas Web Dinámicas
Liliana Valentin
Bases de Datos Distribuidas
Prof.Perla
BASE DE DATOS AVANZADAS
German Fabian Niño Cely
Software para trabajar en MySQL
Adriana Valdez
BASES DE DATOS
Horst Berndt Reyes
Mapa Conceptual de la arquitectura de base de datos
Alan Alvarado
Creación de un glosario
palomares07
Mapa mental Base de datos
sebastian97-19
FUNDAMENTOS DE BASES DE DATOS
Francisco Hernandez