Mysql 01

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 89

MySQL

Francisco Javier Arce Anguiano

www.pacoarce.com
!
MySQL
MySQL fue desarrollado en 1996 por
una empresa sueca llamada TCX. Es
una base de datos relacional de código
abierto que se encuentra
estrechamente relacionada con
productos como PHP, Apache y Linux,
que también son de código abierto.
www.pacoarce.com
MySQL

Desde enero de 2008 fue adquirida por


Sun Microsystems y es manejada
desde 2009 por Oracle,
desarrollándola como software libre.

www.pacoarce.com
MySQL
Se estima que hay seis millones de
instalaciones de MySQL en el
mundo.
MySql es un sistema administrador
de bases de datos relacionales que
permite el manejo, acceso y
almacenamiento seguro y rápido de
información, especializado en
www.pacoarce.com
MySQL
Usted puede bajar la base de datos en
forma gratuita de la página http://
www.mysql.org.
Recomendamos ampliamente la
instalación de la paquetería gratuita
de Easyphp.org, que instala en un
mismo paquete el sistema operativo
web Apache y PHP con MySQL.
www.pacoarce.com
MySQL
También puede bajar ambientes como
WAMP, MAMP, LAMP o XAMPP, los
cuales ya incluyen la instalación de
MySQL.
Si cuenta con una página en un
servidor, verifique que cuente con
MySQL.
www.pacoarce.com
MySQL
Términos básicos: Tabla, campo y registro

www.pacoarce.com
Tabla

Una TABLA es un conjunto de


información que tiene relación entre
sí.

www.pacoarce.com
Una tabla

www.pacoarce.com
Base de datos

Una BASE DE DATOS es el conjunto


de tablas que describen una entidad
de información mayor.
Las tablas pueden tener relación entre
ellas y ser complementarias.

www.pacoarce.com
Ejemplo de Base de datos

www.pacoarce.com
Registros
Las tablas están formadas por
REGISTROS o RENGLONES.
Estos son la unidad básica que
describe a un objeto o a una
transacción, por ejemplo, los datos de
un artículo de venta, la información
de una persona para enviarle un
correo, etc.
www.pacoarce.com
Registros

www.pacoarce.com
Columnas

A su vez el REGISTRO está formado


por CAMPOS o COLUMNAS, que son
la unidad básica de información, y
son una propiedad específica de un
objeto o transacción.

www.pacoarce.com
Columnas

www.pacoarce.com
Tipo de dato

Dependiendo de la COLUMNA, esta


tendrá un TIPO DE DATO específico,
que indicará la forma de almacenar,
las características y limitantes del
CAMPO.

www.pacoarce.com
MySQL
Diseño de una base de datos

www.pacoarce.com
Diseño de una base de datos
1.Cada tabla deberá tener un nombre único y
específico.
2.Cada una de las tablas deberá tener al
menos un campo
3.Cada tabla puede tener cero o más filas.
Estas pueden estar desordenadas.
4.Cada valor en una COLUMNA tendrá el
mismo tipo de dato.
www.pacoarce.com
Diseño de una base de datos
5.A su vez, el campo o conjunto de campos
único (que no se repite su valor entre los
diferentes REGISTROS) con el cual se
accesa la información de las tablas, y
cuyo valor identifica unívocamente al
REGISTRO se le conoce como LLAVE
PRIMARIA.
6.Sólo existirá una llave primaria por tabla.
www.pacoarce.com
Diseño de una base de datos
7.Una LLAVE SECUNDARIA (externa o
foránea) es un campo o conjunto de
campos, que es una LLAVE PRIMARIA
en otra tabla.
8.La relación entre LLAVES PRIMARIAS
- LLAVES FORANEAS crea una
relación de padre-hijo entre las TABLAS
de una base de datos.
www.pacoarce.com
MySQL
Tipo de datos

www.pacoarce.com
Tipo de datos

MySQL reconoce varios tipos de datos,


o lo que es lo mismo, categorías
generales (abstracciones) cuyos
valores se pueden representar

www.pacoarce.com
Valores numéricos
Los números son valores como 48 o
193.62. MySQL entiende los
números especificados como enteros
(sin parte fraccional) o valores de
como flotante (que si lo tienen). Los
enteros se pueden especificar de forma
decimal o hexadecimal.
www.pacoarce.com
Valores numéricos

Un entero consiste en una secuencia


de dígitos. Un entero hexadecimal está
compuesto por "0x" seguido de uno o
mas números hexadecimal.

www.pacoarce.com
Valores numéricos
MySQL reconoce las notaciones
científicas. Van indicadas
inmediatamente después de un
número entero o de coma flotante con
una "e" o "E", un signo "+" o "-" y un
exponente entero. 1.34E+12 y
42.27e-1 son números con notación
científica correcta.
www.pacoarce.com
Valores numéricos

Los decimales se conocerán como


DOBLES o de punto FLOTANTE, ya
que se visualizan como un número
con dos partes enteras divididas por
un punto, por ejemplo 100.30.

www.pacoarce.com
Cadenas

Las cadenas son valores como


"MySQL es una base de datos" o "en el
mar, la vida es más sabrosa".
Puede utilizar comillas dobles o
sencillas para agrupar a una cadena.

www.pacoarce.com
Cadenas

Para representar caracteres de escape


existen varias secuencias de escape.
Cada secuencia comienza con una
barra invertida (\), que significa un
escape temporal de las reglas para la
interpretación de los caracteres.

www.pacoarce.com
Cadenas
Secuencia Significado
\0 ASCII 0
\' Comilla simple
\" Comilla doble
\b Retroceso
\n Nueva línea
\r Retorno
\t Tabulador
\\ Barra invertida
www.pacoarce.com
Valores de fecha y hora
Fechas y horas son valores del tipo
"1999-06-17" o "12:30:43".
También reconoce las combinaciones de
ambos valores como "1999-06-17 12:30:43".
MySQL mantiene el formato
YYYYMMDDHHMMSS, sin embargo se
puede cambiar el mismo con la función
DATE_FORMAT().
www.pacoarce.com
Valor NULL
NULL se puede considerar un valor "sin
tipo". Normalmente quiere decir "sin valor",
"valor desconocido", etc- Puede insertar en
la tabla valores NULL y hacer selecciones
de campos si tienen en valor NULL, etc.
No se puede realizar ningún operación con
el valor NULL, pues su resultado siempre
será NULL.
www.pacoarce.com
MySQL
Tipo de columnas MySQL

www.pacoarce.com
Tipo de columnas MySQL
Como ya se había dicho, una tabla es un
conjunto de uno o más columnas.
Cuando se crea una tabla con la sentencia
CREATE TABLE, se especifica el tipo deseado
para cada columna.
Un TIPO DE COLUMNA es más específico que
un TIPO DE DATO.
El tipo de dato es una categoría general como
"número"o "cadena".
www.pacoarce.com
Tipo de columnas
A un tipo de cadena le caracteriza
precisamente la clase de valores que puede
contener, como SMALLINT o
VARCHAR(32).
Los tipos de columna MySQL son los
responsables de describir qué clase de
valores quiere que contenga una columna,
lo que determina a su vez la manera en que
MySQL tratará
www.pacoarce.com
Tipo de columnas MySQL
1.Qué clase de valores quiere almacenar.
2.Cuánto espacio ocupan los valores, si son
de longitud fija o de longitud variable.
3.Cómo se clasifican o comparan los
valores del tipo.
4.Si el tipo permite o no valores NULL
5.Si el tipo se puede indexar o no
www.pacoarce.com
Tipo de columnas
Comprender los tipos de columna es
muy importante para reducir el
tamaño de la base de datos y
aumentar su velocidad de los procesos.
MySQL proporciona tipos de columna
para todas las categorías de valores de
datos en general, excepto para el valor
NULL.
www.pacoarce.com
MySQL
Tipos de columnas Enteras

www.pacoarce.com
Tipo de columna entera

Para números enteros (que no tienen


parte fraccional), como 43, -1, 3, 0 o
-789345, los formatos que MySQL
puede manejar son:

www.pacoarce.com
Tipo de columna entera

TINYINT
Entera muy pequeña
Requiere 1 byte
Con signo -128 a 127
Sin signo 0 a 255
www.pacoarce.com
Tipo de columna entera

SMALLINT
Requiere 2 bytes
Entera pequeña
Con signo -32768 a 32767
Sin signo 0 a 65535
www.pacoarce.com
Tipo de columna entera

MEDIUNMINT
Entera mediana
Requiere 3 bytes
Con signo -8388608 a 8388607
Sin signo 0 a 1677215
www.pacoarce.com
Tipo de columna entera
INT
Entera mediana
Requiere 4 bytes
Con signo -2147683648 a
2147483647
Sin signo 0 a 4,294,967,295
www.pacoarce.com
Tipo de columna entera
BIGINT
Entero muy grande
Requiere 8 bytes
Con signo -9223372036854775808
a 9223372036854775807
Sin signo 0 a
18,446,744,073,709,551,615
www.pacoarce.com
Tipo de columna entera

Observe que el rango de los cinco tipos


de enteros depende de si tiene o no
signo (UNSIGNED), que es uno de
los atributos.
Un ATRIBUTO es una característica
adicional a la columna.

www.pacoarce.com
Tipo de columna entera
Para seleccionar algún tipo de
columna necesitamos analizar el
rango de nuestra información y
seleccionar el tipo más pequeño que
satisfaga ese rango, de lo contrario
estaremos desperdiciando recursos de
nuestra base de datos.
www.pacoarce.com
Tipo de columna entera
Si usted intenta almacenar un campo
mayor al rango del tipo de columna, el
proceso marcará un error y sólo
cargará hasta el rango máximo, por
ejemplo:
Tiene un campo tipo TINYINT con
signo, y almacena un valor como 500,
solo se almacenará 127.
www.pacoarce.com
MySQL
Atributos de campos numéricos

www.pacoarce.com
Atributos de campos
numéricos

ZEROFILL: Tanto en Enteros como


en punto flotante, se tiene el atributo
ZEROFILL que sirve para rellenar la
parte izquierda de la columna en cero.

www.pacoarce.com
Atributos de campos
numéricos
AUTO_INCREMENT: El sistema
numerará desde el número uno a cada uno
de los renglones que sean creados en la
tabla.
Solo se puede tener un campo de este tipo y
debe ser nombrado como una llave
(PRIMARY KEY) o como clave (UNIQUE).
No acepta valores nulos (NOT NULL).
www.pacoarce.com
Atributos de campos
numéricos

UNSIGNED: Este comportamiento


rechaza los valores negativos de una
columna y se ajusta el rango aceptado
como se muestra en la tabla de los
números enteros.

www.pacoarce.com
MySQL
Tipo de columna decimal

www.pacoarce.com
Tipo de columna decimal

FLOAT
Número único de
coma flotante
Requiere 4 bytes
+-1.175494351E-38
www.pacoarce.com
Tipo de columna decimal

DOUBLE
Número doble de
coma flotante
Requiere 8 bytes
+-2.2250738585072014E-308
www.pacoarce.com
Tipo de columna decimal

DECIMAL(M,D)
Número coma flotante representado
como una cadena
Requiere M+2 bytes
Depende del valor de M y D

www.pacoarce.com
Tipo de columna decimal
Los número de coma flotante siempre
son positivos y negativos.
No tenemos atributos UNSIGNED.
El tipo DECIMAL difiere del FLOAT
en que el primero se maneja como
cadena desde la versión 3.23 de
MySQL.
www.pacoarce.com
Tipo de columna decimal
Los rangos para una columna DECIMAL son:
Campo Rango
DECIMAL(4,1) -999.9 a 9999.9
DECIMAL(5,1) -9999.9 a 99999.9
DECIMAL(6,1) -99999.9 a 999999.9
DECIMAL(6,2) -9999.99 a 99999.99
DECIMAL(6,3) -999.999 a 9999.999
www.pacoarce.com
Tipo de columna decimal

La longitud de una columna


DECIMAL equivale a DECIMAL(M
+2,D), donde D se adapta al tamaño
de M+2.

www.pacoarce.com
MySQL
Tipo de columna cadena

www.pacoarce.com
Tipo de columna cadena
MySQL proporciona varios tipos de
cadena para mantener los datos de un
carácter.
Para todos los tipos de cadena, los valores
demasiado largos se cortan para
ajustarlos.
Los tipos de cadena que maneja MySQL
son (donde L es la longitud del valor):
www.pacoarce.com
Tipo de columna cadena
Nombre del tipo Significado
CHAR Cadena de caracteres de longitud fija
VARCHAR Cadena de caracteres de longitud
variable
TINYBLOB Binary Large Object (BLOB) muy
pequeño
BLOB BLOB pequeño
MEDIUMBLOB BLOB Mediano
LONGBLOB BLOB Largo
www.pacoarce.com
Tipo de columna cadena
Nombre del tipo Significado
TINYTEXT : Cadena de texto muy pequeña
TEXT : Cadena de texto pequeña
MEDIUMTEXT : Cadena de texto mediana
LONGTEXT : Cadena de texto larga
ENUM : Una enumeración: columnas a las que se
pueden asignar un miembro de enumeración
SET : Un conjunto: columnas a las que se pueden
asignar múltiples conjuntos de miembros.
www.pacoarce.com
Tipo de columna cadena

Especificación tipo Tamaño máximo Almacenamiento


CHAR(M) M bytes M bytes
VARCHAR(M) M bytes L+1 bytes
TINYBLOB 255 bytes L+1 bytes
TINYTEXT 255 bytes L+1 bytes
BLOB, TEXT 65535 bytes L+2 bytes

www.pacoarce.com
Tipo de columna cadena

Especificación tipo Tamaño máximo Almacenamiento


MEDIUMBLOB 16 megas L+3 bytes
MEDIUMTEXT 16 megas L+3 bytes
LONGBLOB 32 megas L+4 bytes
LONGTEXT 32 megas L+4 bytes

www.pacoarce.com
Tipo de columna cadena

Los tipos de columnas más utilizados


son CHAR y VARCHAR.
Difieren que el primero es de una
longitud fija y que el segundo es de
una longitud variable.

www.pacoarce.com
Tipo de columna cadena
Si los campos que se van a almacenar
no varían de longitud drásticamente
(por ejemplo, un número telefónico)
no conviene utilizar el campo
VARCHAR, pues tiene un byte
adicional de control, y los campos de
longitud fija se procesan más rápido.
www.pacoarce.com
Tipo de columna cadena

Si existe una columna de longitud


variable, todos los registros serán de
longitud variable.
Solo hay que utilizar los campos de
longitud variable cuando se tenga un
problema de espacio en disco.

www.pacoarce.com
Tipo de columna cadena
Si usted combina columnas CHAR y
VARCHAR, MySQL convertirá las
columnas CHAR (con una longitud
mayor a 4) a tipo VARCHAR
MySQL tiene un bloque de campos
TEXT (TINYTEXT, TEXT,
MEDIUMTEXT. LONGTEXT) con
longitud variable de los textos.
www.pacoarce.com
Tipo de columna cadena

Por su tamaño, es fácil que estos tipos


de tablas se fragmenten (queden
almacenadas en diferentes áreas del
disco duro), por lo que es necesario
continuamente optimizarlo
(OPTIMIZE TABLE).

www.pacoarce.com
Tipo de columna cadena

El tipo ENUM y SET permiten que


los campos tengan un valor entre una
enumeración (ENUM) o conjunto
(SET).

www.pacoarce.com
MySQL
Tipo de columna de fecha y tiempo

www.pacoarce.com
Tipo de columna de fecha y
tiempo
MySQL proporciona varios tipos de
columna para valores temporales:
DATE : Requiere 3 bytes
Valor de fecha en formato YYYY-MM-
DD
"1000-01-01" a "9999-12-31"
www.pacoarce.com
Tipo de columna de fecha y
tiempo

TIME : Valor de hora en formato


HH:MM:SS
"-838:59:59" a "838:59:59"
Requiere 3 bytes

www.pacoarce.com
Tipo de columna de fecha y
tiempo

DATETIME : Valor de fecha y hora en


formato YYYY-MM-DD hh:mm:ss
"1000-01-01 00:00:00" a "9999-12-31
23:59:59"
Requiere 8 bytes

www.pacoarce.com
Tipo de columna de fecha y
tiempo

TIMESTAMP : Valor de un lapso de


tiempo en formato
YYYYMMDDhhmmss
Requiere 4 bytes

www.pacoarce.com
Tipo de columna de fecha y
tiempo

YEAR
Año en formato YYYY
Requiere 1 byte

www.pacoarce.com
Tipo de columna de fecha y
tiempo
Si insertamos un valor ilegal, en los campos
aparecerá el siguiente valor equivalente a "cero".
Especificación del tipo Valor cero
DATE 0000-00-00
TIME 00:00:00
DATETIME 0000-00-00 00:00:00
TIMESTAMP 000000000000
YEAR 0000
www.pacoarce.com
Tipo de columna de fecha y
tiempo
MySQL siempre representa las fechas con el año en
primer lugar, según la especificación de ANSI.
Los tipos DATE, TIME y DATETIME contienen la
fecha, la hora y los valores combinados de ambos.
Los formatos son YYYY-MM-DD, HH:MM:SS y
YYYY-MM-DD HH:MM:SS respectivamente. Para
DATETIME se necesita la parte de la Fecha y la Hora.
Si falta alguna de ellas automáticamente MySQL
las pone en cero.
www.pacoarce.com
Tipo de columna de fecha y
tiempo
El tipo de columna TIMESTAMP podemos
indicarle un "largo de pantalla" (caracteres
que se desplegarán, de un número entre 2 y
14). Por ejemplo:
Especificación Formato
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(4) YYMM
www.pacoarce.com
MySQL
Cómo elegir entre los tipos de las columnas

www.pacoarce.com
Cómo elegir entre los tipos
de las columnas
Para poder escoger entre todas las
variaciones de tipo de columna, no está
demás hacerse las siguientes preguntas
(aunque algunas veces parecerán obvias):
¿Qué tipo de valores, números, cadenas y
fechas almacenará la columna?
¿Sus valores se corresponden con algún
rango?
www.pacoarce.com
Cómo elegir entre los tipos
de las columnas
¿Qué tipos de columnas son los más
eficientes?
Operaciones de cadena vs. numéricas.
Tipos más pequeños vs. tipos más grandes.
Tipo de longitud fija vs. longitud variable.
¿Como hay que comparar sus valores?
¿Bajo qué campos será indexada la tabla?
www.pacoarce.com
MySQL
Cómo entrar a MySQL

www.pacoarce.com
Cómo entrar a MySQL

Para poder utilizar MySQL es


necesario que sus servicios estén
levantados, ya sea que trabaje en su
propia computadora o en el servidor.

www.pacoarce.com
Cómo entrar a MySQL
Desde el sistema operativo con
comandos de línea. Para ello deberá
abrir una ventana del sistema
operativo (tipo MSDOS) y llamar
desde el directorio de su intalación al
comando
mysql -u root -p
www.pacoarce.com
Cómo entrar a MySQL

www.pacoarce.com
!
Cómo entrar a MySQL
Desde PHPmyAdmin
Todas las instalaciones de la base de
datos tienen una interfase
desarrollada en PHP que simplifica
mucho las operaciones de la base de
datos.
Su formato general es:
www.pacoarce.com
Cómo entrar a MySQL

www.pacoarce.com
Cómo entrar a MySQL

www.pacoarce.com
Cómo entrar a MySQL
Desde un sistema:
Podemos llamar a la base de datos desde
un guión en PHP, CGI o C, y a su vez
llamar a estos desde una aplicación en
HTML o Flash.
Más adelante veremos algunos ejemplos
de estos guiones y aplicaciones.
www.pacoarce.com

También podría gustarte