2. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 2
3. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 3
4. I. Introducción a MySQL
1. Características Técnicas
2. Instalación en Windows
3. Instalación en Linux
4. Consideraciones a Posteriori
5. phpMyAdmin
6. Ejercicios
Octubre 2009 1. Introducción a MySQL 4
5. 1. Características Técnicas
SGBD Relacional compatible con php,
Perl, C, HTML, DreamWeaver
Disponible para Windows, UNIX y MacOS
MySQL AB (1995), Sun (2008), Oracle??
Incluye
Capacidades de análisis integradas
Servicios de transformación y replicación
Programación
Soporte para múltiples procesadores
Transaccionalidad
Octubre 2009 1. Introducción a MySQL 5
6. 2. Instalación en Windows
http://www.mysql.com/
mysql-5.x.y-win.zip
Instalar como servicio de Windows
Añadir el directorio bin al PATH
Opciones de configuración
Servidor básico, dedicado o de desarrollo
BD de propósito general, solo transaccional o
nunca transaccional
Espacio y ubicación en disco
Nivel de concurrencia (OLAP/OLTP)
Red e idiomas
…
Octubre 2009 1. Introducción a MySQL 6
7. 3. Instalación en Linux
Binario, RPM o código fuente
RHEL5 incluye el RPM en el DVD
mysql-5.0.45-7.el5.i386.rpm
mysql-server-5.0.45-7.el5.i386.rpm
mysql-test-5.0.45-7.el5.i386.rpm
/usr/share/sql-test
pass, disabled, skipped, fail
mysql-bench-5.0.45-7.el5.i386.rpm
/usr/share/sql-bench
LAMP
Octubre 2009 1. Introducción a MySQL 7
8. 4. Consideraciones a Posteriori
Se debe testear la instalación
1. Inicializar las tablas (mysql_install_db)
2. Arrancar el demonio mysqld
3. Verificar la ejecución con mysqladmin
4. Verificar el apagado (shutdown)
5. Verificar la ejecución mostrando BBDD y tablas
Se debe asignar una clave al usuario root
Conviene tener un benchmark de pruebas
Instalar php y Apache (LAMP)
Comprobar que el servidor está en ejecución
Octubre 2009 1. Introducción a MySQL 8
9. 5. phpMyAdmin
Herramienta Web para administrar php y
MySQL
http://localhost/phpmyadmin
http://localhost/phpMyAdmin
http://localhost/mysqladmin
Consideraciones
Iniciar Apache
blowfish_secret
php-mcrypt
libmcrypt
Octubre 2009 1. Introducción a MySQL 9
10. 6. Ejercicios
1. Lanzar los test de mysql
2. Comprobar la conexión con root
3. Mostrar las bases de datos
4. Mostrar las tablas de test
5. Mostrar las tablas de mysql
6. Mostrar la tabla user de mysql
7. Cargar el benchmark Winsconsin
8. Instalar phpMyAdmin resolviendo los
avisos pertinentes
9. Consultar la estructura de las tablas
Octubre 2009 1. Introducción a MySQL 10
11. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 11
12. II. Conceptos Básicos
1. Conexión al Servidor
2. Consultas SQL
3. Tipos de Datos
4. Tablas
5. Índices
6. Ejercicios
Octubre 2009 2. Conceptos Básicos 12
13. 1. Conexión al Servidor
Se requiere
Un cliente (mysql)
Conexión de Red
Un usuario con permisos
Comprobar la conexión
mysqladmin version
Lanzar el cliente
mysql –u <usuario> -p [-h host] [bd]
Obtener información
show
Abrir Base de Datos
connect <bd>
Octubre 2009 2. Conceptos Básicos 13
14. 2. Consultas SQL
SELECT-FROM-WHERE
INSERT-INTO-VALUES
UPDATE-SET-WHERE
DELETE-WHERE
CREATE TABLE
DROP TABLE
ALTER TABLE
Octubre 2009 2. Conceptos Básicos 14
15. 3. Tipos de Datos
CHAR (0-255)
VARCHAR (0-255)
BINARY
VARBINARY
BLOB
TEXT
ENUM (‘a’, ‘b’, ‘c’)
SET (‘a’, ‘b’, ‘c’)
INT
FLOAT (TAMAÑO, DECIMALES)
DOUBLE (TAMAÑO, DECIMALES)
DECIMAL (TAMAÑO, DECIMALES)
DATETIME
TIMESTAMP
Octubre 2009 2. Conceptos Básicos 15
16. 4. Tablas
Conjunto conexo de información del
mismo tipo (campos) cuya unidad
elemental de información es el registro
information_schema.tables
Operaciones
Crear/Borrar
Modificar
Tipos de tabla (show engines;)
MyISAM
InnoDB
MEMORY
MERGE
Octubre 2009 2. Conceptos Básicos 16
17. 4. Tablas
MyISAM
Index Sequential Access Method
Recomendadas cuando los datos cambian poco
Estáticas
No tiene campos variables
Más rápido pero más pesado
Dinámicas
Cada registro ocupa distinto tamaño
Se indica el tamaño delante
Comprimidas
De sólo lectura
Muy rápido y ocupa muy poco
Aconsejable si se usan dispositivos lentos
Octubre 2009 2. Conceptos Básicos 17
18. 4. Tablas
InnoDB
Transaccionales
Bloquean el registro modificado
Cumplen ACID (Atomic, Consistent, Isolated,
Durable)
MEMORY
Almacenadas en RAM
ENGINE = MEMORY
MERGE
Unión de varias tablas MyISAM
Divide y vencerás
ENGINE = MERGE
UNION = (a, b, c)
Octubre 2009 2. Conceptos Básicos 18
19. 5. Índices
Estructura interna para encontrar uno o más
registros de forma rápida
Aplicables a campos de filtrado
Permiten:
Ordenar
Acceso directo
Unión de tablas
Desventajas:
Espacio almacenado
Coste de actualización
Modificadores:
UNIQUE INDEX
ADD/DROP INDEX
Octubre 2009 2. Conceptos Básicos 19
20. 6. Ejercicios
1. Crear una tabla Películas de tipo InnoDB
en test con título, director y soporte
(DivX, DVD, BluRay)
2. Añadirle una columna id entera con
auto-incremento
3. Convertir esa columna en clave primaria
4. Crear una tabla Soportes de tipo
MyISAM en test
5. Modificar la tabla Películas para que el
campo soporte sea clave foránea
Octubre 2009 2. Conceptos Básicos 20
21. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 21
22. III. Administración de la BD
1. Gestión de Usuarios
2. Copias de Seguridad
3. Logs
4. Actualizaciones
5. Ejercicios
Octubre 2009 3. Administración de la BD 22
23. 1. Gestión de Usuarios
Asignar privilegios para ejecutar tareas a
usuarios con permiso de acceso
Evitar que se modifiquen tablas críticas
Utilizar root es una mala práctica
No utilizar contraseña también
Tipos de usuario según permisos
Propietario
Clientes
Consumidores/Web
Tareas
CREATE, ALTER, DROP, SELECT, INSERT, UPDATE,
DELETE, INDEX, GRANT OPTION , ALL
Octubre 2009 3. Administración de la BD 23
24. 1. Gestión de Usuarios
Tablas information_schema.*_privileges
Tablas mysql.db, user y *_priv
GRANT
<TAREA> [, <TAREA>, …]
ON {tablas | esquema | *.* }
TO <usuario[@host]>
[IDENTIFIED BY <contraseña>]
[WITH GRANT OPTION]
REVOKE-ON-FROM
FLUSH PRIVILEGES;
Octubre 2009 3. Administración de la BD 24
25. 1. Gestión de Usuarios
mysqladmin –u <usuario> password “x”
SET PASSWORD [FOR usuario@host] =
PASSWORD(“contraseña”)
DROP USER <usuario>
CREATE USER <usuario>
GRANT USAGE ON *.* TO <usuario>
mysqld_safe --skip-grant-tables
OJO! Propagar los cambios
OJO! Apagar el servidor MySQL
Octubre 2009 3. Administración de la BD 25
26. 1. Gestión de Usuarios
Ejercicios
Añadir una clave al usuario root mediante
mysqladmin
Cambiar la clave mediante SET y GRANT
Propagar los cambios
Salir y entrar sin contraseña
Crear un usuario alumno con permisos de
cliente sobre test
Realizar consultas de prueba
Revocar los permisos de modificación
bajándole a consumidor
Octubre 2009 3. Administración de la BD 26
27. 1. Gestión de Usuarios
Otros privilegios
FILE
PROCESS
RELOAD
SHUTDOWN
Modificadores
* para indicar bd, tabla o global
% para indicar máquina cliente
Permisos sobre columnas
Se indican entre paréntesis
GRANT UPDATE (c1, c2, c3) ON …
Octubre 2009 3. Administración de la BD 27
28. 1. Gestión de Usuarios
Recursos
Se puede restringir el número máximo de
recursos consumibles por un usuario
max_questions consultas/hora
max_updates en una hora
max_connections conexiones/hora
max_user_connections simultáneas
UPDATE mysql.user SET …
Octubre 2009 3. Administración de la BD 28
29. 2. Copias de Seguridad
mysqladmin variables
Muestra los directorios importantes
basedir /usr/
bdb_home /var/lib/mysql/
Opciones para copias de seguridad
Mantener copia de los archivos de
estos directorios
mysqldump bd [tablas]
Octubre 2009 3. Administración de la BD 29
30. 2. Copias de Seguridad
MySQLdump vuelca la BD como
sentencias SQL
Recogerlas en un fichero portable .sql
Para BBDD grandes conviene comprimir
los datos
mysqldump db | gzip > backup-fecha.sql
Modificadores
--add-drop-database
--add-drop-table
--lock-tables
--opt
--single-transaction
Octubre 2009 3. Administración de la BD 30
31. 2. Copias de Seguridad
Recuperación
Se pueden recuperar hasta los privilegios
Habrá que arrancar sin tablas grant
mysql db < backup-fecha.sql
Automatización
Crear un bash que genere la copia
Añadir el trabajo a cron para que lo ejecute a
una hora determinada
crontab <fichero>
Minuto, Hora, Día, Mes, Año, DiaSem, tarea
webmin
Octubre 2009 3. Administración de la BD 31
32. 3. Logs
MySQL mantiene diferentes registros de
actividad (logs)
Consultas: para conexiones y consultas
Arrancar mysqld con --log [=ruta]
Errores: para todo tipo de errores
/var/lib/mysql/maquina.err
Activar --log-error para mysqld
Binario: para instrucciones de alteración
--log-bin [=ruta]
mysqlbinlog fichero
Lento: para consultas muy lentas
--log-slow-queries
Octubre 2009 3. Administración de la BD 32
33. 3. Logs
Logs en tablas
MYSQL.GENERAL_LOG
MYSQL.SLOW_LOG
Solo están disponibles a partir de la
versión 5.1.6
http://dev.mysql.com/downloads/
Server
Client
Problemas
Incompatibilidades
Demonio diferente
Octubre 2009 3. Administración de la BD 33
34. 4. Actualizaciones
Las actualizaciones del servidor añaden
tablas nuevas, reparan bugs y mejoran
el rendimiento
Siempre instalar versiones estables
http://www.mysql.com
Conviene
Para el servidor
Hacer una copia de seguridad
Copia de seguridad de ficheros de
configuración
mysql_upgrade -p
Octubre 2009 3. Administración de la BD 34
35. 5. Ejercicios
1. Crear usuarios propietario, cliente y
consumidor para la bd test
2. Comprobar los privilegios en
USER_PRIVILEGES
3. Realizar una copia de seguridad de test
y restaurarla sobre nuevo-test
4. Comprobar las últimas versiones de
MySQL y la fecha de la 5.0.45 incluida
en RHEL 5.3
5. Activar los logs y comprobar los ficheros
generados
Octubre 2009 3. Administración de la BD 35
36. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 36
37. IV. Herramientas de MySQL
1. MySQLadmin
2. Utilidades ISAM
3. Otras Utilidades
4. Herramientas mysql-gui
5. Ejercicios
Octubre 2009 4. Herramientas MySQL 37
38. 1. MySQLadmin
Permite controlar
El funcionamiento del servidor
La asignación de contraseñas
La creación y borrado de instancias
mysqladmin comando
Modificadores:
-f fuerza la operación
-r muestra valores previos
-i ejecuta modo ralentizado
-w espera si no hay conexión
Octubre 2009 4. Herramientas MySQL 38
39. 1. MySQLadmin
Comandos:
create <bd> crea una instancia
drop <bd> elimina una instancia
ping estado del servidor
status estado del servidor
extended-status estado del servidor
flush-privileges recarga privilegios
flush-tables vacía caché de tablas
flush-logs vacía caché de logs
reload recarga privilegios
refresh vacía cachés y recarga logs
processlist lista hilos en el servidor
kill <idProceso> mata hilos en el servidor
shutdown apaga el servidor
Octubre 2009 4. Herramientas MySQL 39
40. 2. Utilidades ISAM
MySQLhotcopy
Realiza copias de los ficheros de BD
Debe lanzarse en el directorio de datos
/var/lib/mysql
Sólo aplicable a tablas MyISAM
mysqlhotcopy <bd> [ruta/dir/copia]
Admite expresiones regulares
mysqlhotcopy <bd>./expresion/
Modificadores:
-n modo de prueba
--allowold si existe renombra _old
--keepold mantiene los _old
--noindices no copia los índices
Octubre 2009 4. Herramientas MySQL 40
41. 2. Utilidades ISAM
MyISAMpack
Permite obtener tablas MyISAM comprimidas
Hasta 70% de reducción
Acceso rápido a registros (sólo lectura)
myisampack tabla
Modificadores:
-b realiza un backup de seguridad
-t testea el empaquetamiento
-w espera si la tabla está en uso
-f fuerza el empaquetamiento
myisamchk --unpack
Octubre 2009 4. Herramientas MySQL 41
42. 2. Utilidades ISAM
MyISAMchk
Verifica el estado de las tablas MyISAM
Se puede indicar una o varias tablas
Admite comodines (*, ?)
myisamchk <ruta>/<tabla>.MYI
Hacer copia de los ficheros antes de lanzar
MyISAMchk por si empeoramos
Modificadores:
-a análisis de distribución de claves
-b backup de la tabla (tabla.old)
-F checkeo rápido para tablas no cerradas
-e checkeo extendido (riguroso)
-m checkeo extendigo rápido (99% eficiente)
Octubre 2009 4. Herramientas MySQL 42
43. 2. Utilidades ISAM
MyISAMchk
Más modificadores:
-U marca las tablas como defectuosas
-T modo de solo lectura
-d muestra información de la tabla
-i muestra estadísticas de la tabla
Una vez detectados errores se puede intentar
recuperar
myisamchk --recover --quick <tabla>
myisamchk --recover <tabla>
myisamchk --safe-recover <tabla>
Conviene bloquear la tabla durante el proceso
LOCK TABLE <tabla> READ;
FLUSH TABLES;
Octubre 2009 4. Herramientas MySQL 43
44. 3. Otras Utilidades
MySQLcheck
Similar a MyISAMchk pero con mysqld
levantado
Utiliza comandos SQL
Opera para tablas de una bd, varias bbdd o
todas las bbdd
--databases <bd1> [<bd2> …]
--all-databases
Se puede renombrar
mysqlrepair
mysqlanalyze
mysqloptimize
--auto-repair
Octubre 2009 4. Herramientas MySQL 44
45. 3. Otras Utilidades
MySQLshow
Muestra información de las instancias, tablas,
columnas e índices de MySQL
Se puede solicitar para una instancia, tabla o
columna concretas
Por defecto muestra todas las instancias del
servidor
mysqlshow [bd [tabla [columna]]]
Modificadores:
-i muestra información del estado
-k muestra las claves de cada tabla
Octubre 2009 4. Herramientas MySQL 45
46. 3. Otras Utilidades
MySQLbinlog
Permite examinar ficheros de log binarios
mysqlbinlog <fichero>
Modificadores:
-d <bd> carga sólo la instancia indicada
-o <N> ignora las N primeras líneas
-r <file> vuelca a un fichero
-s formato corto
--start-datetime=“YYYY-MM-DD hh:mm:ss”
--stop-datetime=“YYYY-MM-DD hh:mm:ss”
Octubre 2009 4. Herramientas MySQL 46
47. 3. Otras Utilidades
MySQLimport
Permite cargar datos de ficheros de texto
mysqlimport <bd> <fichero>
Crea una tabla con el nombre del fichero (sin
extensión)
Modificadores:
-c indica columnas concretas a importar
-f fuerza el proceso aunque haya errores
-r reemplaza filas si hay claves duplicadas
-i mantiene filas si se intentan duplicar
-l bloquea las tablas para escritura
Octubre 2009 4. Herramientas MySQL 47
48. 4. Herramientas mysql-gui
MySQL Administrator
Administración de servidores, esquemas, tablas y
usuarios de MySQL
Contenidos:
Información de servidor
Control de servicios
Parámetros de arranque
Administración de usuarios
Conexiones de servidor
Monitor
Logs
Backups
Replicación
Esquemas/Catálogos
Octubre 2009 4. Herramientas MySQL 48
49. 4. Herramientas mysql-gui
MySQL Query Browser
Crear, ejecutar, y optimizar consultas SQL
De manera “gráfica”
Permite:
Buscar y editar los registros que nos
interesen
Crear instancias, tablas, vistas, …
Acceso a parámetros, sintaxis, funciones,
transacciones, …
Creación, edición y depuración de scripts
Exportación de resultados
Octubre 2009 4. Herramientas MySQL 49
50. 4. Herramientas mysql-gui
MySQL Migration Toolkit
Asistencia para la migración de esquemas y
datos desde otros SGBD relacionales a
MySQL
SQL Server
Oracle
Access
MySQL
Sybase
JDBC
Herramienta texto
Herramienta terminal
Octubre 2009 4. Herramientas MySQL 50
51. 5. Ejercicios
1. Crear una instancia “nueva” con mysqladmin
2. Importar la copia de seguridad de test
3. Crear un fichero csv provincias con el C.P. y
nombre de cada provincia de CLM
4. Crear una tabla provincias en “nueva” e
importar el csv
5. Comprimir la tabla provincias
6. Crear un usuario junta con permisos de
propietario sobre la instancia “nueva”
7. Repetir los ejercicios 3 y 4 con una base de
datos Access
Octubre 2009 4. Herramientas MySQL 51
52. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 52
53. V. Características Avanzadas
1. Optimización
2. Plan de Ejecución
3. Análisis de Tablas
4. Replicación
5. Ejercicios
Octubre 2009 5. Características Avanzadas 53
54. 1. Optimización
Maximizar la eficiencia de nuestro SGBD
Velocidad y número de usuarios simultáneos
Índices
Mejoran los tiempos de acceso
Ocupan espacio
Coste de recalcular
Tipos: INDEX, PRIMARY, UNIQUE, FULLTEXT
Servidor
Procesador, acceso a disco, memoria, …
Activar caché, DMA, …
Octubre 2009 5. Características Avanzadas 54
55. 1. Optimización
Pruebas de rendimiento
mysqlslap
Lanza una consulta repetidas veces y
simultáneamente (simular carga)
Modificadores:
--concurrency nº de conexiones
--iterations nº de repeticiones
--query consulta/script a probar
--auto-generate-sql
Octubre 2009 5. Características Avanzadas 55
56. 2. Plan de Ejecución
Operaciones del servidor que permiten
recuperar los datos de una consulta
EXPLAIN SELECT …
id
select_type tipo de consulta
table tabla asociada
type tipo de combinación
possible_keys índices utilizables
key índice utilizado
key_len tamaño del índice
ref campo asociado al índice
rows filas a recuperar
extra información extra
Octubre 2009 5. Características Avanzadas 56
57. 2. Plan de Ejecución
Combinaciones
ALL recorrer todas las filas
index recorrer todo el índice
ref por clave foránea
eq_ref por clave foránea indexada
Información extra
Using where utiliza where
Using index utiliza índices
Using temporary crea tablas temporales
Using filesort requiere ordenación
Octubre 2009 5. Características Avanzadas 57
58. 3. Análisis de Tablas
Los índices pierden eficacia por las
constantes modificaciones
Aparecen huecos en los registros
SHOW INDEX FROM <tabla>;
Muestra los índices de una tabla
ANALYZE TABLE <tabla>;
Analiza y reordena los índices
OPTIMIZE TABLE <tabla>;
Reordena los datos para eliminar huecos
Octubre 2009 5. Características Avanzadas 58
59. 4. Replicación
Transportar datos entre dos o más servidores
permitiendo que estén almacenados en más de
un sitio, y aumentando la disponibilidad y el
rendimiento de las consultas
Modelo de replicación:
publicador, suscriptor, distribuidor, publicación,
artículo y suscripción
Tipos básicos de replicación:
De instantáneas
Unidireccional
Transaccional
Por mezcla
Octubre 2009 5. Características Avanzadas 59
60. 4. Replicación
MySQL soporta replicación asíncrona
unidireccional
Un servidor actúa como maestro y uno o más
actúan como esclavos
El servidor maestro escribe actualizaciones en
fichero de log binario
Mantiene un índice para rastrear los logs
Cuando un esclavo se conecta al maestro,
informa de la última posición que ha leído y
recibe cualquier actualización desde entonces
LOAD TABLE FROM MASTER;
LOAD DATA FROM MASTER;
Octubre 2009 5. Características Avanzadas 60
61. 4. Replicación
1. Iniciar el maestro con logs binarios
2. Crear una cuenta en el servidor maestro para la
replicación
GRANT REPLICATION SLAVE, SUPER, RELOAD ON …
3. Realizar volcado y bloqueo de tablas
FLUSH TABLES WITH READ LOCK;
4. Crear un backup de los datos
5. Desbloquear las tablas
UNLOCK TABLES;
6. Detener el maestro
mysqladmin shudown
7. Añadir a /etc/my.cnf
[mysqld]
server-id=1
Octubre 2009 5. Características Avanzadas 61
62. 4. Replicación
8. Parar cada servidor esclavo
9. Añadir a cada /etc/my.cnf
server-id=i con distintos i > 1
10. Arrancar cada esclavo
1. Si se hizo backup de logs binarios copiarlos al directorio
de datos antes
11. Recuperar la copia de seguridad en los esclavos
12. Ejecutar en cada esclavo
CHANGE MASTER TO
MASTER_HOST='nombre_host_maestro',
MASTER_USER='usuario_replicacion',
MASTER_PASSWORD='password_replicacion',
MASTER_LOG_FILE='fichero de log guardado',
MASTER_LOG_POS=posición en el log;
13. Iniciar el flujo de esclavo
START SLAVE;
Octubre 2009 5. Características Avanzadas 62
63. 5. Ejercicios
1. Comprobar el plan de ejecución de select * from
tenk1
2. Mejorar la consulta si se puede
3. Añadir los índices pertinentes para mejorar la
consulta select * from tenk1 where string1 like
‘%AAA%’
4. Buscar los registros de tenk1 con string4=
‘OOOOxx’
5. Visualizar el plan de ejecución
6. Mejorar la consulta si se puede
7. Eliminar esos registros
8. Analizar los cambios en la tabla
9. Compactar la tabla
Octubre 2009 5. Características Avanzadas 63
64. Contenidos
I. Introducción a MySQL
II. Conceptos Básicos
III. Administración de la BD
IV. Herramientas de MySQL
V. Características Avanzadas
VI. El Lenguaje MySQL
Octubre 2009 Administración MySQL 64
65. VI. El Lenguaje MySQL
1. Sentencias DML
2. Sentencias DLL
3. Sentencias Auxiliares
4. Operadores y Funciones
5. Transacciones
6. Privilegios
7. Otras Sentencias
8. Ejercicios
Octubre 2009 6. El Lenguaje MySQL 65
66. 1. Sentencias DML
Data Manipulation Language
Consulta y manipulación de datos
SELECT
FROM-WHERE-GROUP BY-ORDER BY
FROM-JOIN-ON
FROM-UNION-SELECT
INSERT
INTO-() VALUES ()
INTO-SELECT
UPDATE
SET-WHERE
DELETE
FROM-WHERE
Octubre 2009 6. El Lenguaje MySQL 66
67. 1. Sentencias DML
LOAD DATA INFILE <fichero> [IGNORE |
REPLACE] INTO TABLE <tabla>
Carga datos externos en una tabla
existente
Admite opciones de importación a
continuación
FIELDS
TERMINATED BY <separador>
ENCLOSED BY <carácter>
ESCAPED BY <carácter>
LINES TERMINATED BY <separador>
IGNORE <n> LINES
Octubre 2009 6. El Lenguaje MySQL 67
68. 2. Sentencias DDL
Data Definition Language
Esquemas y estructuras de tablas en el SGBD
CREATE
DATABASE [IF NOT EXIST] <bd>;
TABLE <t>(<campo> <tipo> <otros>,…);
INDEX <i> ON <tabla> (<columnas>);
ALTER TABLE
ADD <campo> <tipo>;
ADD CONSTRAINT <restricción>;
ADD INDEX <i> (<columnas>);
MODIFIY <campo> <tipo>;
RENAME AS <nueva>;
DROP
DATABASE [IF EXIST] <bd>;
TABLE [IF EXIST] <bd>;
INDEX <i> ON <tabla>;
Octubre 2009 6. El Lenguaje MySQL 68
69. 3. Construcciones Auxiliares
SELECT
DISTINCT
AS <alias>
WHERE
BETWEEN <inf> AND <sup>
IN (<conjunto de valores>)
LIKE ‘<patrón>’
IS NULL
IS NOT NULL
CONSTRAINT
CHECK (<condicion>)
PRIMARY KEY (<campo>)
FOREIGN KEY (<campo>) REFERENCES <tabla>
(<campo>)
Octubre 2009 6. El Lenguaje MySQL 69
71. 4. Operadores y Funciones
Funciones estadísticas
Avg(<campo>)
Count(<campo>)
Max(<campo>)
Min(<campo>)
Sum(<campo>)
Funciones de fecha y hora
Dayname(<fecha>)
Dayofmonth(<fecha>)
Hour (<fecha>)
Current_date()
Octubre 2009 6. El Lenguaje MySQL 71
72. 5. Transacciones
START TRANSACTION | BEGIN
<sentencias SQL>
SAVEPOINT <punto de guarda>
COMMIT
<sentencias SQL>
ROLLBACK
<sentencias SQL>
TO SAVEPOINT <punto de guarda>
OJO!! Las DDL no se pueden deshacer
Alternativa:
LOCK TABLES
<sentencias SQL>
UNLOCK TABLES
Octubre 2009 6. El Lenguaje MySQL 72
73. 6. Privilegios
DCL (Data Control Language)
GRANT
ON <elemento>
TO <usuario>
IDENTIFIED BY <password>
REVOKE
ON <elemento>
FROM <usuario>
DENY
ON <elemento>
TO <usuario>
Octubre 2009 6. El Lenguaje MySQL 73
74. 7. Otras Sentencias
ANALYZE TABLE
OPTIMIZE TABLE
SHOW
DESCRIBE
EXPLAIN
LOCK TABLE(S)
UNLOCK TABLE(S)
Octubre 2009 6. El Lenguaje MySQL 74