Your SlideShare is downloading. ×
0
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
My sql desde cero
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

My sql desde cero

2,681

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,681
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
327
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ó Ú ÁTALLER DE PROGRAMACIÓN WEBCURSO DE MySql DESDE CERO Prof. Lucio IBARRA CAQUI
  • 2. Índice 1. Introducción 2. Obtener ayuda en MySQL 3. Conectarse con el servidor 4. Mostrar bases de datos 5. Acceder a una base de datos 6. Crear una base de datos 7. Borrar una base de datos 8. Mostrar tablas2
  • 3. … Índice 9. Crear una tabla 10.Valores nulos 11.Valores por defecto 12.Borrar una tabla 13.Estructura de una tabla 14.Modificar tablas 15.Cargar datos 16.Modificar datos3
  • 4. … Índice 17.Eliminar datos 18.Consultas • Ordenar • Renombrar • Agrupar • Cálculos 19.Manejo de Fechas 20.Patrones 21.Expresiones regulares4
  • 5. … Índice 22.Consultas con varias tablas 23.Imágenes 24.Triggers5
  • 6. Introducción ● En este taller obtendrás los conocimientos primordiales para el manejo de bases de datos MySQL. ● El objetivo es mostrarte el uso de MySQL, para crear y usar una sencilla base de datos, y con un poquito más, inclusive utilizar triggers para hacer esta base de datos mas completa.6
  • 7. MySQL ● MySQL es un gestor de base de datos que permite conectarnos a un servidor, ejecutar algunas consultas, y ver los resultados. ● MySQL puede ser usado también en modo batch: es decir, se pueden colocar toda una serie de consultas en un archivo, y posteriormente decirle a MySQL que ejecute dichas consultas.7
  • 8. Obtener ayuda en MySQL mysql --help8
  • 9. Conectarse al servidor Para acceder a la cuenta de MySQL se ingresa con los siguientes datos. ● Username: bdxxxxxxx ● Password: xxxxxxx Una vez dentro, tendremos a nuestra disposición todas las sentencias de MySQL para el trabajo con la base de datos y el lenguaje SQL.9
  • 10. Conectarse al servidor mysql-h computadora -u usuario -p10
  • 11. Mostrar bases de datos Mediante la sentencia SHOW se encuentran las bases de datos que existen actualmente en el servidor SHOW DATABASES;11
  • 12. Acceder a una base de datos USE nombre_bd;12
  • 13. Crear una base de datos CREATE DATABASE Nombre_BD;13
  • 14. Conectarse a MySQL ya con una base de datos especificada Debemos seleccionar la base de datos cada vez que iniciamos una sesión con mysql, así que es recomendable indicar la base de datos sobre la que vamos a trabajar al momento de invocar al monitor de MySQL. mysql -h computadora -u usuario -p nombre_BD14
  • 15. Borrar una base de datos DROP DATABASE Nombre_BD;15
  • 16. Mostrar tablas existentes La sentencia SHOW TABLES mostrará las tablas existentes dentro de la base de datos. SHOW TABLES;16
  • 17. Crear una tabla La sentencia CREATE TABLE es utilizada para indicar como estarán conformados los registros de nuestra base de datos. CREATE TABLE nombre_tabla( nombre_atributo tipo_dato, … … );17
  • 18. Tipos de datos Para guardar los datos, se utilizan tipos donde las clasificaciones básicas son: ● Numéricos ● Fecha ● Texto18
  • 19. Numéricos Tipo Rango TinyInt -128 a 127 0 a 255 Bit o Bool 0ó1 SmallInt -32768 a 32767 0 a 65,535 MediumInt -8388608 a 8388607 0 a1677721519
  • 20. Numéricos Tipo Rango Integer -2147483648 a 2147483647 , Int 0 a 4294967295 BigInt -9223372036854775808 a 9223372036854775807 0 a 18446744073709551615 Float -3.402823466E+38 a -1.175494351E-38 xReal, -1.7976931348623157E+308 Double a -2.2250738585072014E-30820
  • 21. Fecha Date: año-mes-dia DateTime: año-mes-dia horas:minutos:segundos Time: Hh:mm:ss Year21
  • 22. Fecha TimeStamp: El formato de almacenamiento depende del tamaño del campo Tamañ Formato o AñoMesDiaHoraMinutoSegundo 14 aaaammddhhmmss 12 AñoMesDiaHoraMinutoSegundo aammddhhmmss 8 ñoMesDia aaaammdd 6 AñoMesDia aammdd 4 AñoMes aamm 2 Año aa22
  • 23. Texto Char(n): Cadena fija, máximo 255 caracteres VarChar(n): Cadena variable, , máximo 255 caracteres Blob y Text: Máximo 65535 caracteres LongBlob y LongText: Máximo 4294967295 caracteres.23
  • 24. Enum ● Permite declarar campos cuyo contenido puede ser una de entre varias opciones. Sexo ENUM(‘M’, ‘H’)24
  • 25. Restricciones ● Llaves primarias Especificarlo a un lado del atributo nombre_atributo tipo_dato PRIMARY KEY Agregando la restricción formalmente constraint nombre_restriccion primary key (atributo)25
  • 26. … Restricciones ● Llaves foráneas FOREIGN KEY (atributo) REFERENCES nombre_tabla (nombre_atributo)26
  • 27. … Restricciones ● Campos autoincrementables Esta restricción permite que un campo númerico lleve un incremento automático en base a cada tupla insertada. Solo se debe agregar la palabra AUTO_INCREMENT27
  • 28. Valores nulos ● Al definir cada columna podemos decidir si podrá o no contener valores nulos. ● La opción por defecto es que se permitan valores nulos, NULL, y para que no se permitan, se usa NOT NULL.28
  • 29. Valor por defecto ● Para cada columna también se puede definir, opcionalmente, un valor por defecto. El valor por defecto se asignará de forma automática a una columna cuando no se especifique un valor determinado al añadir filas. ● Para asignarlo se agrega DEFAULT y el valor deseado.29
  • 30. Estructura de una tabla Para revisar la estructura de la tabla, se utiliza el comando DESCRIBE DESCRIBE nombre_tabla;30
  • 31. Borrar una tabla DROP TABLE nombre_tabla;31
  • 32. Borrar los datos de la tabla TRUNCATE TABLE nombre_tabla;32
  • 33. Modificar una tabla ALTER TABLE nombre_tabla ● ADD nombre_atributo tipo_atributo ● CHANGE nombre_anterior_atributo nombre_nuevo_atributo tipo_atributo ● MODIFY nombre_atributo nuevo_tipo_atributo ● DROP nombre_atributo33
  • 34. Cambiar nombre a la tabla ALTER TABLE nombre_tabla RENAME TO nuevo_nombre_tabla;34
  • 35. Insertar datos INSERT INTO nombre_tabla VALUES (Diana,f,2000-03-30); ● En esta sentencia se tienen que poner los valores en el orden en que se encuentran en la estructura de la tabla. ● Si se desea poner en otro orden o no todos los datos se utiliza de la siguiente manera INSERT INTO nombre_tabla (atributos) VALUES (valores);35
  • 36. Insertar con auto_increment ● Cuando existe un campo auto_increment, el insert se hace de la siguiente manera: INSERT INTO nombre_tabla VALUES (null,Diana,f,2000-03-30);36
  • 37. Insertar datos desde un archivo LOAD DATA LOCAL INFILE nombre_del_archivo INTO TABLE nombre_tabla; ● Separador de campos por default es tabulador ● Para indicar otro tipo de separador se agrega a la sentencia FIELDS TERMINATED BY separador37
  • 38. Modificar datos UPDATE nombre_tabla SET atributo1=valor1 WHERE condicion;38
  • 39. Eliminar datos DELETE FROM nombre_tabla WHERE condicion;39
  • 40. Consultas ● Esto nos permitirá obtener los datos guardados dento de nuestra BD. SELECT atributos FROM nombre_tabla;40
  • 41. Caracter comodin SELECT * FROM nombre_tabla;41
  • 42. Varios atributos como uno solo SELECT CONCAT(atributo1, , atributo2) FROM nombre_tabla;42
  • 43. Ordenar SELECT * FROM nombre_tabla ORDER BY nombre_atributo DESC;43
  • 44. Solo una cantidad de tuplas SELECT * FROM nombre_tabla ORDER BY nombre_atributo DESC LIMIT n;44
  • 45. Cálculos SELECT nombre_atributo + nombre_atributo FROM nombre_tabla;45
  • 46. Otros cálculos ● MAX ● MIN ● AVG ● SUM46
  • 47. Renombrar atributo SELECT nombre_atributo AS nuevo_nombre FROM nombre_tabla;47
  • 48. Contar filas SELECT COUNT(*) FROM nombre_tabla;48
  • 49. Agrupar SELECT COUNT(*) FROM nombre_tabla GROUP BY nombre_atributo;49
  • 50. No mostrar tuplas repetidas SELECT DISTINCT nombre_atributo FROM nombre_tabla;50
  • 51. 15 MINUTOS PARA EXPERIMENTAR ¿Dudas? Háganmelas saber51
  • 52. Solo algunas tuplas SELECT atributos FROM nombre_tabla WHERE condición;52
  • 53. Manejo de fechas ● MySQL permite realizar distintas operaciones con fechas lo cual facilita el trabajo con estas.53
  • 54. Fecha y hora actual ● CURDATE() : Esta función devuelve la fecha actual en formato YYYY-MM-DD o YYYYMMDD (Año-Mes-Día) mysql> select curdate(); --> 2007-01-03 ● CURTIME() : Devuelve la hora actual en formato HH:MM:SS o HHMMSS. mysql> select curtime(); --> 17:33:0754
  • 55. Fecha y hora actual ● NOW() : Esta función de fecha devuelve la fecha y hora actual en formato YYYY-MM- DD HH:MM:SS o YYYYMMDDHHMMSS (Año-Mes-Día Hora:Minuto:Segundo) mysql> select now(); --> 2007-01-04 14:56:1555
  • 56. Rangos de fechas ● DATEDIFF(fecha1,fecha2) : Esta función devuelve fecha1 – fecha2 expresados como un valor en días de una fecha a la otra. Aquí sólo las partes de fecha serán consideradas para el cálculo. mysql> select datediff(2007-2-6 17:33:25,2007-1-1); --> 3656
  • 57. Rangos de fechas ● DATE_ADD(fecha, INTERVAL rango expresión) : Esta función agrega el rango indicado. mysql> select date_add(2007-1-14, interval 15 day); --> 2007-01-2957
  • 58. Día y mes ● DAYNAME(fecha) : Devuelve el nombre del día para una fecha especificada. mysql> select dayname(2007-01-04); --> Thursday ● MONTHNAME(fecha) : Devuelve el nombre del mes para la fecha especificada. mysql> select monthname(2007-07-09); --> July58
  • 59. Semana ● DAYOFWEEK(fecha) : Devuelve el día de la semana en formato numérico como 1 para Domingo hasta 7 para Sábado. mysql> select dayofweek(2007-01-04); --> 559
  • 60. Secciones ● HOUR(hora) : Devuelve la hora del tiempo especificado en formato numérico de 0 a 23. ● MINUTE(hora) : Devuelve el minuto del tiempo especificado en formato numérico de 0 a 59. ● MONTH(fecha) : Devuelve el mes para la fecha dada en formato numérico en rango de 0 a 12 ● DAY(fecha) : Devuelve la fecha para el día del mes en el rango de 1 a 3160
  • 61. Patrones ● Los patrones en SQL permiten emplear el caracter _ para representar coincidencia con un carácter individual y % para representar una serie de caracteres. ● En MySQL, por defecto, los patrones SQL no son case- sensitive. ● No se emplean los operadores = o <> para trabajar con patrones SQL, en lugar de eso se usan los operadores de comparación LIKE o NOT LIKE.61
  • 62. ● Para encontrar nombres que comiencen con b: SELECT * FROM nombre_tabla WHERE nombre_atributo LIKE b%;62
  • 63. Expresiones regulares ● Una expresión regular describe un conjunto de cadenas. ● MySQL permite hacer una evaluación de coincidencia con una expresión regular por medio de la palabra REGEXP, en caso de no coincidir, devolverá 0. ● Los siguientes caracteres especiales son utilizados para construir expresiones regulares.63
  • 64. ● ^ Coincidencia del principio de una cadena. mysql> SELECT fonfo REGEXP ^fo$; -> 0 mysql> SELECT fofo REGEXP ^fo; -> 1 ● $ Coincidencia del final de una cadena. mysql> SELECT fono REGEXP ^fono$; -> 1 mysql> SELECT fono REGEXP ^fo$; -> 064
  • 65. ● . Coincidencia de cualquier carácter (incluyendo los de avance o el retorno de línea). mysql> SELECT fofo REGEXP ^f.*$; -> 1 mysql> SELECT fornfo REGEXP ^f.*$; -> 1 ● a* Coincidencia de cualquier secuencia de cero o más caracteres. mysql> SELECT Ban REGEXP ^Ba*n; -> 1 mysql> SELECT Baaan REGEXP ^Ba*n; -> 1 mysql> SELECT Bn REGEXP ^Ba*n; -> 1 ● a+ Coincidencia de cualquier secuencia de uno o más caracteres. mysql> SELECT Ban REGEXP ^Ba+n; -> 1 mysql> SELECT Bn REGEXP ^Ba+n; -> 065
  • 66. 15 MINUTOS PARA EXPERIMENTAR HACER UNA RETROALIMENTACIÓN66
  • 67. Consultas con mas de una tabla SELECT * FROM tabla1 INNER JOIN tabla2 ON tabla1.id = tabla2.id67
  • 68. Motor InnoDB ● Las tablas innoDB permiten transacciones, operaciones concurrentes y control estricto de referencias (lo que se conoce como integridad referencial) entre otros detalles. CREATE TABLE nombre_tabla( nombre_atributo tipo_dato, … … ) engine=innodb;68
  • 69. Convertir una tabla a InnoDB ALTER TABLE nombre_tabla type=innoDB;69
  • 70. 15 MINUTOS PARA EXPERIMENTAR HACER UNA RETROALIMENTACIÓN70
  • 71. Respaldar la base de datos ● La respaldo mysqldump nombre_bd > nombre_archivo.sql; ● La recupero mysql nombre_bd < nombre_archivo.sql;71
  • 72. Imágenes en MySQL ● No existe un campo como tal para guardar imágenes, lo que se hace es que por medio de aplicaciones tales como PHP se realiza la conversión a binario de la imágen y esta se guarda dentro de un campo tipo BLOB. ● Mi recomendación es guardar solamente la ruta donde se encuentra guardada la imágen.72
  • 73. Triggers ● Un disparador se asocia con una tabla y se define para que se active al ocurrir una sentencia INSERT, DELETE, o UPDATE sobre dicha tabla. ● Puede también establecerse que se active antes o despues de la sentencia en cuestión. Por ejemplo, se puede tener un disparador que se active antes de que un registro sea borrado, o después de que sea actualizado. ● Para crear o eliminar un disparador, se emplean las sentencias CREATE TRIGGER y DROP TRIGGER.73
  • 74. CREATE TABLE account ( acct_num INT, amount DECIMAL(10,2) ); CREATE TRIGGER ins_sum BEFORE INSERT ON account FOR EACH ROW SET @sum = @sum + NEW.amount;74
  • 75. 15 MINUTOS PARA EXPERIMENTAR HACER UNA RETROALIMENTACIÓN75
  • 76. RETROALIMENTACIÓN76
  • 77. ¡Muchas gracias!77

×