Mysql 01
Mysql 01
Mysql 01
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
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
www.pacoarce.com
Una tabla
www.pacoarce.com
Base de datos
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
www.pacoarce.com
Columnas
www.pacoarce.com
Tipo de dato
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
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
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
www.pacoarce.com
Cadenas
www.pacoarce.com
Cadenas
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
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
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
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
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
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
www.pacoarce.com
Tipo de columna cadena
www.pacoarce.com
Tipo de columna cadena
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
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
www.pacoarce.com
Tipo de columna cadena
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
www.pacoarce.com
Tipo de columna de fecha y
tiempo
www.pacoarce.com
Tipo de columna de fecha y
tiempo
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
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