Вы находитесь на странице: 1из 45

1

MySQL
Introducción

Crescencio Bravo
MySQL: Introducción

Contenidos
ƒ 1 ¿Qué es MySQL?
ƒ 2 El SQL de MySQL
ƒ 3 Tutorial Básico de MySQL
ƒ 4 Manual de SQL
ƒ 5 Características avanzadas
ƒ 6 Herramientas básicas de administración
ƒ mysqladmin
ƒ mysql
ƒ 7 Resumen
ƒ 8 Ejercicios

2
MySQL: Introducción

1 ¿Qué es MySQL? (i)


ƒ Un SGBD
ƒ Relacional
ƒ De código abierto

ƒ Características generales:
generales
ƒ Es rápido
ƒ Fiable
ƒ Fácil de usar
ƒ Muy adecuado para aplicaciones en Internet
ƒ Soporta arquitectura C/S y sistemas embebidos
ƒ Hay disponible gran cantidad de software que soportan
MySQL

3
MySQL: Introducción

1 ¿Qué es MySQL? (ii)


ƒ Principales vendedores y BD:

Microsoft SQL Server 2000 EE


http://www.microsoft.com/spain/servidores/sql

MySQL AB MySQL Database Server 4


http://www.mysql.com/products/mysql/index.html

PostgreSQL PostgreSQL 8
http://www.postgresql.com

Oracle Oracle 9i EE Database


http://otn.oracle.com/products/oracle9i/index.html

Sybase Inc Adaptive Server Enterprise (ASE) 12.5.1


http://www.sybase.com/products/databaseservers/ase

IBM Informix Standard Engine


http://www-3.ibm.com/software/data/informix/se

IBM DB2 8.1


http://www-5.ibm.com/es/software/db2

4
MySQL: Introducción

1 ¿Qué es MySQL? (iii)


ƒ BD Open Source:
Source
ƒ MySQL es una base de datos Open Source (Código Abierto)
y por lo tanto de coste gratuito
ƒ Código Abierto:
Abierto Movimiento que promulga el derecho de los
usuarios a tener libre acceso al código fuente con el que se
desarrolle cualquier aplicación, sistema operativo o librería
ƒ Ejemplo más conocido: Linux
ƒ Las bases de datos Open Source ya juegan en “Primera
División”
ƒ PostgreSQL es también un ejemplo de BD de código abierto

5
MySQL: Introducción

1 ¿Qué es MySQL? (iv)


ƒ Comparativas – Productividad:

6
MySQL: Introducción

1 ¿Qué es MySQL? (v)


ƒ Comparativas – Tiempo de respuesta:

7
MySQL: Introducción

1 ¿Qué es MySQL? (vi)


ƒ En 2003-2004, MySQL…
9Velocidad/Rendimiento
9Bajo consumo
9Utilidades de administración
9Probabilidad reducida de corromper los datos
9Apache+PHP+MySQL en foros/buscadores de aplicaciones
Carece de soporte para transacciones, rollbacks y
subconsultas
No maneja integridad referencial
No es viable para grandes bases de datos con accesos
continuos (mala escalabilidad)

8
MySQL: Introducción

1 ¿Qué es MySQL? (vii)


ƒ Características detalladas (MySQL 5):
5)
ƒ C / C++ Æ Multiplataforma
ƒ Soporta multi-hilo (hilos del kernel)
ƒ APIs para muchos lenguajes (C++, Java, Perl, PHP, Python, etc.)
ƒ Soporta transacciones
ƒ Árboles B muy rápidos (compresión de índices)
ƒ Sistema de gestión de memoria muy eficiente
ƒ Joins optimizados
ƒ Servidor separado para arquitecturas C/S o como librería
embebida
ƒ Muchos tipos de columnas; registros de longitud fija y variable
ƒ Amplio abanico de sentencias y funciones
ƒ Posibilidad de mezclar tablas de BD diferentes
ƒ Sistema de privilegios y passwords
ƒ Manejo de BD muy grandes
ƒ 64 índices por tabla; índices de hasta 16 columnas; máxima
longitud de índice de 1000 bytes
ƒ Conectores ODBC y Java
ƒ Soporte de internacionalización (mensajes, juego de caracteres y
ordenación)
9
MySQL: Introducción

2 El SQL de MySQL
ƒ MySQL soporta ANSI SQL y otros modos de SQL

ƒ Extensiones a SQL estándar:


ndar
ƒ Los nombres de BD y tablas son sensibles a mayúsculas (de
acuerdo al SO)
ƒ Las cadenas se pueden encerrar entre “ o ‘
ƒ Se puede acceder a tablas de diferentes BD (db.table)
ƒ Tipos de campos: MEDIUMINT, SET, ENUM, BLOB, TEXT
ƒ Modificadores de tipos: AUTO_INCREMENT, BINARY, NULL,
UNSIGNED, ZEROFILL
ƒ Se aceptan los operadores || y &&
ƒ Comparaciones entre cadenas: No sensibles a
mayúsculas/minúsculas
ƒ % es sinónimo de MOD()
ƒ Cada BD se localiza en un directorio del directorio de datos
ƒ Cada tabla se localiza en un fichero
ƒ Muchas sentencias tienen una funcionalidad ampliada; existen
nuevas funciones
ƒ Algunas otras se comportan de forma diferente

10
MySQL: Introducción

3 Tutorial Básico de MySQL (i)


ƒ Conexión al servidor:
servidor

ƒ Desconexión:

ƒ Introducción de consultas:
consultas

11
MySQL: Introducción

3 Tutorial Básico de MySQL (ii)


ƒ Utilización de una BD:
BD

ƒ Creación de una BD:


BD

ƒ Creación de una tabla:


tabla

12
MySQL: Introducción

3 Tutorial Básico de MySQL (iii)


ƒ Estructura de una tabla:
tabla

ƒ Recuperación de información:

13
MySQL: Introducción

3 Tutorial Básico de MySQL (iv)


ƒ Selección de determinadas filas:
filas

ƒ Selección de columnas:
columnas

14
MySQL: Introducción

3 Tutorial Básico de MySQL (v)


ƒ Ordenación de filas:
filas

ƒ Contar y agrupar:
agrupar

15
MySQL: Introducción

3 Tutorial Básico de MySQL (vi)


ƒ Operaciones con fechas:
fechas

ƒ Información de bases de datos y tablas:


tablas

16
MySQL: Introducción

3 Tutorial Básico de MySQL (vii)


ƒ Versión de MySQL:
MySQL
ƒ mysql -V

ƒ Ejecución en modo batch:

17
MySQL: Introducción

4 Manual de SQL: Estructura del lenguaje (i)


ƒ Literales:
ƒ “cadena”, ‘cadena de caracteres’
ƒ 123.45, 5e10
ƒ Valores lógicos

ƒ Valor nulo: NULL

ƒ Nombres:

18
MySQL: Introducción

4 Manual de SQL: Estructura del lenguaje (ii)


ƒ Comentarios:
Comentarios

19
MySQL: Introducción

4 Manual de SQL: Tipos de columnas


ƒ Tipos de columnas de ANSI SQL:
SQL

20
MySQL: Introducción

4 Manual de SQL: Tipos Numéricos (i)


ƒ Notación:
ƒ M: Ancho de visualización máximo (nº total de dígitos decimales)
ƒ D: En tipos en coma flotante y de coma fija, el número de dígitos que
siguen a la coma
ƒ p: Precisión en bits
ƒ [ ]: opcional

ƒ BIT[(M)] : Campo de bits, M (1 a 64) indica el nº de bits, 1 por defecto


ƒ TINYINT[(M)] [UNSIGNED] [ZEROFILL] : -122 a 127 (unsigned: 0 a 255)
ƒ BOOL, BOOLEAN : Sinónimos para TINYINT(1). 0 es falso, cualquier otra
cosa es verdadero
ƒ SMALLINT[(M)] [UNSIGNED] [ZEROFILL] : -32768 a 32767 (unsigned: 0
a 65535)
ƒ MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] : -8388608 a 8388607
(unsigned: 0 a 16777215)
ƒ INT[(M)] [UNSIGNED] [ZEROFILL] : -2147483648 a 2147483647
(unsigned: 0 a 4294967295)
ƒ INTEGER[(M)] [UNSIGNED] [ZEROFILL] : Sinónimo para INT

21
MySQL: Introducción

4 Manual de SQL: Tipos Numéricos (ii)


ƒ INTEGER[(M)] [UNSIGNED] [ZEROFILL] : Sinónimo para INT
ƒ BIGINT[(M)] [UNSIGNED] [ZEROFILL] : -9223372036854775808 a
9223372036854775807 (unsigned: 0 a 18446744073709551615)
ƒ FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] : -3.402823466E+38 a -
1.175494351E-38, 0 y 1.175494351E-38 a 3.402823466E+38. El nº
aproximado de decimales es 7
ƒ DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] : -1.7976931348623157E+308
a -2.2250738585072014E-308, 0 y 2.2250738585072014E-308 a
1.7976931348623157E+308. El nº aproximado de decimales es 15
ƒ DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)]
[UNSIGNED] [ZEROFILL] : Sinónimos para DOUBLE
ƒ FLOAT(p) [UNSIGNED] [ZEROFILL]
ƒ DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] : Un nº en coma fija
empaquetado. M<=65, D<=30. Por defecto, D=0, M=10.
ƒ DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED]
[ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL] : Sinónimos para
DECIMAL

22
MySQL: Introducción

4 Manual de SQL: Tipos Numéricos (iii)


ƒ Necesidades de almacenamiento:
almacenamiento

23
MySQL: Introducción

4 Manual de SQL: Tipos Fecha y Hora


ƒ DATE: Fecha, de '1000-01-01' a '9999-12-31'. MySQL muestra las fechas
en el formato 'YYYY-MM-DD'
ƒ DATETIME: Fecha y hora, de '1000-01-01 00:00:00' a '9999-12-31
23:59:59', en formato 'YYYY-MM-DD HH:MM:SS'
ƒ TIMESTAMP[(M)]: Un sello temporal, de '1970-01-01 00:00:00' hasta el
año 2037, en formato 'YYYY-MM-DD HH:MM:SS'
ƒ Útil para recoger la fecha y hora de una operación INSERT o UPDATE
ƒ TIME: Hora, de '-838:59:59' to '838:59:59, en formato 'HH:MM:SS'
ƒ YEAR[(2|4)]: Año en formato de 2 ó 4 dígitos, de 1901 a 2155, incluido el
año 0, en formato 'YYYY'

ƒ Necesidades de almacenamiento:
almacenamiento

24
MySQL: Introducción

4 Manual de SQL: Tipos Cadena (i)


ƒ Notación:
ƒ M: nº de caracteres

ƒ [NATIONAL] CHAR(M) [BINARY | ASCII | UNICODE] : Cadena de


longitud fija que se completa con espacios en blanco por la derecha;
el rango de M es de 0 a 255
ƒ [NATIONAL] VARCHAR(M) [BINARY] : Cadena de longitud variable; el
rango de M es de 0 a 65535
ƒ BINARY y VARBINARY son similares pero contienen cadenas binarias,
en lugar de cadenas de caracteres
ƒ BLOB[(M)] : Objeto binario con una longitud máxima de 65535 bytes.
ƒ Permite cuatro subtipos: TINYBLOB, BLOB, MEDIUMBLOB y LONGBLOB
ƒ TEXT[(M)] : Secuencia de caracteres con una longitud máxima de
65535 caracteres
ƒ Permite cuatro subtipos: TINYTEXT, TEXT, MEDIUMTEXT y LONGTEXT
ƒ ENUM('value1','value2',...) : Una enumeración. Un objeto de tipo
cadena que puede tener un único valor elegido de la lista de valores.
ƒ SET('value1','value2',...) : Un conjunto. Un objeto cadena que puede
tener 0 o más valores, cada uno elegido de la lista de valores.

25
MySQL: Introducción

4 Manual de SQL: Tipos Cadena (ii)


ƒ Necesidades de almacenamiento:
almacenamiento

26
MySQL: Introducción

4 Manual de SQL: Compatibilidad con otros Tipos


ƒ Equivalencias con otras BD:
BD

27
MySQL: Introducción

4 Manual de SQL: Funciones (i)


ƒ Operadores relacionales:
relacionales
ƒ >, <, >=, <=, <>, !=,
ƒ IS NULL, IS NOT NULL
ƒ ISNULL(expr)
ƒ expr BETWEEN min AND max,
ƒ expr NOT BETWEEN min AND max
ƒ…

ƒ Operadores lógicos:
gicos
ƒ NOT, !, OR, ||, AND, &&

ƒ Funciones de control del flujo:


flujo
ƒ IF(expr1, expr2, expr3)
ƒ…

28
MySQL: Introducción

4 Manual de SQL: Funciones (ii)


ƒ Funciones de cadenas de caracteres:
caracteres

ƒ CONCAT(str1, str2, …)
ƒ LENGTH(str)
ƒ LEFT(str, len)
ƒ RIGHT(str, len)
ƒ SUBSTRING(str, pos, len)
ƒ UCASE(str), UPPER(str), LCASE(str), RCASE(str)
ƒ…

ƒ expr LIKE pat


ƒ pat es el patrón con el que comparar; puede contener dos tipos de
comodines:
ƒ % coincide con cualquier nº de caracteres, incluido cero caracteres
ƒ _ coincide exactamente con un caracter

29
MySQL: Introducción

4 Manual de SQL: Funciones (iii)


ƒ Operaciones aritméticas:
ticas
ƒ +, -, *, /

ƒ Funciones matemáticas:
ticas
ƒ ABS(x), MOD(n, m), SQRT(x), PI(), …

ƒ Otras funciones:
funciones
ƒ DATABASE(), USER(), VERSION(), …

ƒ Funciones de agregado:
agregado
ƒ AVG: Calculo promedio de los valores de una columna
ƒ COUNT: Nº de filas de la selección
ƒ SUM: Suma de los valores de una columna
ƒ MAX, MIN: Valor más alto y más bajo de una columna

30
MySQL: Introducción

4 Manual de SQL: Manipulación de Datos (i)


ƒ SELECT

ƒ select_expression indica las columnas que se quieren


recuperar
ƒ Se puede incluir cualquier expresión válida

31
MySQL: Introducción

4 Manual de SQL: Manipulación de Datos (ii)


ƒ INSERT

32
MySQL: Introducción

4 Manual de SQL: Manipulación de Datos (iii)


ƒ UPDATE

ƒ DELETE

33
MySQL: Introducción

4 Manual de SQL: Definición de Datos (i)


ƒ Crear y eliminar BD:
BD

ƒ Creación de tablas:
tablas

34
MySQL: Introducción

4 Manual de SQL: Definición de Datos (ii)

35
MySQL: Introducción

4 Manual de SQL: Definición de Datos (iii)

36
MySQL: Introducción

4 Manual de SQL: Definición de Datos (iv)


ƒ Modificación de tablas:
tablas

37
MySQL: Introducción

4 Manual de SQL: Definición de Datos (v)


ƒ Cambio del nombre de una tabla:
tabla

ƒ Eliminación de tablas:
tablas

ƒ Creación de índice:
ndice

ƒ Eliminación de índice:
ndice

38
MySQL: Introducción

5 Características Avanzadas
ƒ Utilidad para chequeo, optimización y reparación de
tablas
ƒ DELETE, INSERT, REPLACE y UPDATE devuelven el
número de filas afectadas
ƒ Todos los programas/utilidades permiten la obtención
de ayuda en línea (--help o -?)
ƒ El comando SHOW muestra información sobre BD, tablas
e índices

39
MySQL: Introducción

6 Herramientas de Administración: mysqladmin (i)


ƒ mysqladmin:
mysqladmin Una utilidad para realizar operaciones
administrativas

ƒ Operaciones más habituales:


habituales
ƒ Crear BD:
ƒ mysqladmin create <nombreBD>
ƒ Eliminar BD:
ƒ mysqladmin drop <nombreBD>
ƒ Ver el estado de MySQL:
ƒ mysqladmin ping
ƒ mysqladmin status
ƒ Detener el servidor:
ƒ mysqladmin shutdown
ƒ Puede ser necesario autentificarse:
ƒ mysqladmin create <nombreBD> -u root -p

40
MySQL: Introducción

6 Herramientas de Administración: mysqladmin (ii)


ƒ Todas las operaciones:
operaciones

41
MySQL: Introducción

6 Herramientas de Administración: mysql (i)


ƒ mysql:
mysql Una consola para ejecutar comandos de SQL
ƒ Permite un uso interactivo y no interactivo

ƒ Comandos más habituales:


habituales
ƒ help,?: Ayuda
ƒ exit, quit: Salir
ƒ use <nombreBD>: Abrir otra BD
ƒ status: Estado del servidor
ƒ source <nombreFich>: Ejecuta un fichero con comandos
SQL

42
MySQL: Introducción

6 Herramientas de Administración: mysql (ii)


ƒ Todos los comandos:
comandos

43
MySQL: Introducción

7 Resumen
ƒ Qué hemos aprendido…
ƒ Sabemos qué es MySQL
ƒ Hemos repasado sus características principales y hemos
visto que soporta un SQL extendido
ƒ Hemos realizado un pequeño tutorial de MySQL
ƒ Hemos repasado el SQL que “entiende” MySQL
ƒ Hemos practicado con dos de sus herramientas principales
de consola

44
MySQL: Introducción

8 Ejercicios

ƒ Con mysql:
ƒ 1 Crear una BD alumnos con tres tablas: alumno,
asignatura, nota
ƒ 2 Crear una BD personal con la lista de dvds y las
cuentas de la casa
ƒ 3 Una vez creadas, mostrar todas las BD con el
comando adecuado
ƒ 4 Mostrar todas las tablas de cada BD
ƒ 5 Ver la estructura de las tablas
ƒ 6 Crear un fichero de texto con extensión .sql que
contenga instrucciones SQL para insertar algunos
datos de ejemplo y ejecutarlo
ƒ 7 Practicar con diferentes select y update desde la
línea de órdenes de mysql
ƒ Con mysqladmin:
ƒ 8 Estudiar la forma equivalente de crear estas dos BD

45

Вам также может понравиться