My SQL

991 views

Published on

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
991
On SlideShare
0
From Embeds
0
Number of Embeds
32
Actions
Shares
0
Downloads
2
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

My SQL

  1. 1. Administración MySQLÓliver Centeno ÁlvarezOctubre 2009 1
  2. 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 MySQLOctubre 2009 Administración MySQL 2
  3. 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 MySQLOctubre 2009 Administración MySQL 3
  4. 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. EjerciciosOctubre 2009 1. Introducción a MySQL 4
  5. 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  TransaccionalidadOctubre 2009 1. Introducción a MySQL 5
  6. 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. 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  LAMPOctubre 2009 1. Introducción a MySQL 7
  8. 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ónOctubre 2009 1. Introducción a MySQL 8
  9. 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  libmcryptOctubre 2009 1. Introducción a MySQL 9
  10. 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 tablasOctubre 2009 1. Introducción a MySQL 10
  11. 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 MySQLOctubre 2009 Administración MySQL 11
  12. 12. II. Conceptos Básicos 1. Conexión al Servidor 2. Consultas SQL 3. Tipos de Datos 4. Tablas 5. Índices 6. EjerciciosOctubre 2009 2. Conceptos Básicos 12
  13. 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. 14. 2. Consultas SQL  SELECT-FROM-WHERE  INSERT-INTO-VALUES  UPDATE-SET-WHERE  DELETE-WHERE  CREATE TABLE  DROP TABLE  ALTER TABLEOctubre 2009 2. Conceptos Básicos 14
  15. 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  TIMESTAMPOctubre 2009 2. Conceptos Básicos 15
  16. 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  MERGEOctubre 2009 2. Conceptos Básicos 16
  17. 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 lentosOctubre 2009 2. Conceptos Básicos 17
  18. 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. 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 INDEXOctubre 2009 2. Conceptos Básicos 19
  20. 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áneaOctubre 2009 2. Conceptos Básicos 20
  21. 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 MySQLOctubre 2009 Administración MySQL 21
  22. 22. III. Administración de la BD 1. Gestión de Usuarios 2. Copias de Seguridad 3. Logs 4. Actualizaciones 5. EjerciciosOctubre 2009 3. Administración de la BD 22
  23. 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 , ALLOctubre 2009 3. Administración de la BD 23
  24. 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. 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 MySQLOctubre 2009 3. Administración de la BD 25
  26. 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 consumidorOctubre 2009 3. Administración de la BD 26
  27. 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. 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. 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. 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-transactionOctubre 2009 3. Administración de la BD 30
  31. 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  webminOctubre 2009 3. Administración de la BD 31
  32. 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-queriesOctubre 2009 3. Administración de la BD 32
  33. 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 diferenteOctubre 2009 3. Administración de la BD 33
  34. 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 -pOctubre 2009 3. Administración de la BD 34
  35. 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 generadosOctubre 2009 3. Administración de la BD 35
  36. 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 MySQLOctubre 2009 Administración MySQL 36
  37. 37. IV. Herramientas de MySQL 1. MySQLadmin 2. Utilidades ISAM 3. Otras Utilidades 4. Herramientas mysql-gui 5. EjerciciosOctubre 2009 4. Herramientas MySQL 37
  38. 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ónOctubre 2009 4. Herramientas MySQL 38
  39. 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 servidorOctubre 2009 4. Herramientas MySQL 39
  40. 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 índicesOctubre 2009 4. Herramientas MySQL 40
  41. 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 --unpackOctubre 2009 4. Herramientas MySQL 41
  42. 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. 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. 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-repairOctubre 2009 4. Herramientas MySQL 44
  45. 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 tablaOctubre 2009 4. Herramientas MySQL 45
  46. 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. 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 escrituraOctubre 2009 4. Herramientas MySQL 47
  48. 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álogosOctubre 2009 4. Herramientas MySQL 48
  49. 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 resultadosOctubre 2009 4. Herramientas MySQL 49
  50. 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 terminalOctubre 2009 4. Herramientas MySQL 50
  51. 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 AccessOctubre 2009 4. Herramientas MySQL 51
  52. 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 MySQLOctubre 2009 Administración MySQL 52
  53. 53. V. Características Avanzadas 1. Optimización 2. Plan de Ejecución 3. Análisis de Tablas 4. Replicación 5. EjerciciosOctubre 2009 5. Características Avanzadas 53
  54. 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. 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-sqlOctubre 2009 5. Características Avanzadas 55
  56. 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 extraOctubre 2009 5. Características Avanzadas 56
  57. 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ónOctubre 2009 5. Características Avanzadas 57
  58. 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 huecosOctubre 2009 5. Características Avanzadas 58
  59. 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 mezclaOctubre 2009 5. Características Avanzadas 59
  60. 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. 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=1Octubre 2009 5. Características Avanzadas 61
  62. 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. 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 tablaOctubre 2009 5. Características Avanzadas 63
  64. 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 MySQLOctubre 2009 Administración MySQL 64
  65. 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. EjerciciosOctubre 2009 6. El Lenguaje MySQL 65
  66. 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-WHEREOctubre 2009 6. El Lenguaje MySQL 66
  67. 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> LINESOctubre 2009 6. El Lenguaje MySQL 67
  68. 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. 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
  70. 70. 4. Operadores y Funciones  Operadores  +, -, *, /, %, AND, OR, NOT, <, >, =, <>, <=>  Funciones de cadenas  Concat(cadena1, cadena2, …)  Locate(subcadena, cadena, inicio)  Reverse(cadena)  Substring(cadena, inicio, fin)  Funciones Aritméticas  Abs(<campo>)  Pi()  Sqrt(<campo>)  Round(<campo>)Octubre 2009 6. El Lenguaje MySQL 70
  71. 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. 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 TABLESOctubre 2009 6. El Lenguaje MySQL 72
  73. 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. 74. 7. Otras Sentencias  ANALYZE TABLE  OPTIMIZE TABLE  SHOW  DESCRIBE  EXPLAIN  LOCK TABLE(S)  UNLOCK TABLE(S)Octubre 2009 6. El Lenguaje MySQL 74
  75. 75. Muchas GraciasÓliver Centeno Álvarez 75

×