Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mysqlparaprincipiantes 101004100100 Phpapp02
Mysqlparaprincipiantes 101004100100 Phpapp02
ndice
1. Introduccin 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 tablas
2 MySQL para principiantes por Michelle Torres
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 datos
3 MySQL para principiantes por Michelle Torres
ndice
17.Eliminar datos 18.Consultas
ndice
22.Consultas con varias tablas 23.Imgenes 24.Triggers
Introduccin
En este taller obtendrs 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 ms, inclusive utilizar triggers para hacer esta base de datos mas completa.
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 tambin 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.
MySQL para principiantes por Michelle Torres
Conectarse al servidor
Para acceder a la cuenta de MySQL se ingresa con los siguientes datos.
Una vez dentro, tendremos a nuestra disposicin todas las sentencias de MySQL para el trabajo con la base de datos y el lenguaje SQL.
Conectarse al servidor
mysql-h computadora -u usuario -p
10
SHOW DATABASES;
11
USE nombre_bd;
12
13
14
15
SHOW TABLES;
16
17
Tipos de datos
Para guardar los datos, se utilizan tipos donde las clasificaciones bsicas son:
18
Numricos
Tipo TinyInt Bit o Bool SmallInt MediumInt Rango -128 a 127 0 a 255 01 -32768 a 32767 0 a 65,535 -8388608 a 8388607 0 a16777215
19
Numricos
Tipo Integer , Int BigInt Rango -2147483648 a 2147483647 0 a 4294967295 -9223372036854775808 a 9223372036854775807 0 a 18446744073709551615 Float -3.402823466E+38 a -1.175494351E-38 xReal, -1.7976931348623157E+308 Double a -2.2250738585072014E-308
20 MySQL para principiantes por Michelle Torres
Fecha
Date:
ao-mes-dia DateTime: ao-mes-dia horas:minutos:segundos Time: Hh:mm:ss Year
21 MySQL para principiantes por Michelle Torres
Fecha
TimeStamp: El formato de almacenamiento
depende del tamao del campo
Tama o 14 12 8 6 4 2 Formato AoMesDiaHoraMinutoSegundo aaaammddhhmmss AoMesDiaHoraMinutoSegundo aammddhhmmss oMesDia aaaammdd AoMesDia aammdd AoMes aamm Ao aa
22
Texto
Char(n): Cadena fija, mximo 255 caracteres
VarChar(n): Cadena variable, , mximo 255 caracteres Blob y Text: Mximo 65535 caracteres LongBlob y LongText: Mximo 4294967295 caracteres.
23
Enum
Permite declarar campos cuyo contenido puede ser una de entre varias opciones. Sexo ENUM(M, H)
24
Restricciones
Restricciones
26
Restricciones
Campos autoincrementables
Esta restriccin permite que un campo nmerico lleve un incremento automtico en base a cada tupla insertada. Solo se debe agregar la palabra AUTO_INCREMENT
27 MySQL para principiantes por Michelle Torres
Valores nulos
La opcin por defecto es que se permitan valores nulos, NULL, y para que no se permitan, se usa NOT NULL.
28
Para cada columna tambin se puede definir, opcionalmente, un valor por defecto. El valor por defecto se asignar de forma automtica a una columna cuando no se especifique un valor determinado al aadir filas. Para asignarlo se agrega DEFAULT y el valor deseado.
29
DESCRIBE nombre_tabla;
30
31
32
ADD nombre_atributo tipo_atributo CHANGE nombre_anterior_atributo nombre_nuevo_atributo tipo_atributo MODIFY nombre_atributo nuevo_tipo_atributo DROP nombre_atributo
MySQL para principiantes por Michelle Torres
33
34
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
36
Separador de campos por default es tabulador Para indicar otro tipo de separador se agrega a la sentencia
Modificar datos
UPDATE nombre_tabla SET atributo1=valor1 WHERE condicion;
38
Eliminar datos
DELETE FROM nombre_tabla WHERE condicion;
39
Consultas
Esto nos permitir obtener los datos guardados dento de nuestra BD. SELECT atributos FROM nombre_tabla;
40
Caracter comodin
SELECT * FROM nombre_tabla;
41
42
Ordenar
SELECT * FROM nombre_tabla ORDER BY nombre_atributo DESC;
43
44
Clculos
SELECT nombre_atributo + nombre_atributo FROM nombre_tabla;
45
Otros clculos
46
Renombrar atributo
SELECT nombre_atributo AS nuevo_nombre FROM nombre_tabla;
47
Contar filas
SELECT COUNT(*) FROM nombre_tabla;
48
Agrupar
SELECT COUNT(*) FROM nombre_tabla GROUP BY nombre_atributo;
49
50
51
52
Manejo de fechas
MySQL permite realizar distintas operaciones con fechas lo cual facilita el trabajo con estas.
53
CURDATE() :
Esta funcin devuelve la fecha actual en formato 'YYYY-MM-DD' o 'YYYYMMDD' (Ao-Mes-Da) mysql> select curdate(); --> 2007-01-03
CURTIME() :
mysql> select curtime(); --> 17:33:07
54
NOW() :
Esta funcin de fecha devuelve la fecha y hora actual en formato 'YYYY-MMDD HH:MM:SS' o YYYYMMDDHHMMSS (Ao-Mes-Da Hora:Minuto:Segundo) mysql> select now(); --> 2007-01-04 14:56:15
55
Rangos de fechas
DATEDIFF(fecha1,fecha2) :
Esta funcin devuelve fecha1 fecha2 expresados como un valor en das de una fecha a la otra. Aqu slo las partes de fecha sern consideradas para el clculo. mysql> select datediff('2007-2-6 17:33:25','2007-1-1'); --> 36
56
Rangos de fechas
57
Da y mes
DAYNAME(fecha) :
mysql> select dayname('2007-01-04'); --> Thursday MONTHNAME(fecha) :
mysql> select monthname('2007-07-09'); --> July
58
Semana
DAYOFWEEK(fecha) :
Devuelve el da de la semana en formato numrico como 1 para Domingo hasta 7 para Sbado. mysql> select dayofweek('2007-01-04'); --> 5
59
Secciones
HOUR(hora) :
MINUTE(hora) :
MONTH(fecha) :
DAY(fecha) :
60
Patrones
Los patrones en SQL permiten emplear el caracter '_' para representar coincidencia con un carcter individual y '%' para representar una serie de caracteres. En MySQL, por defecto, los patrones SQL no son casesensitive. No se emplean los operadores = o <> para trabajar con patrones SQL, en lugar de eso se usan los operadores de comparacin LIKE o NOT LIKE.
61
62
Expresiones regulares
Una expresin regular describe un conjunto de cadenas. MySQL permite hacer una evaluacin de coincidencia con una expresin 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
^ Coincidencia del principio de una cadena. mysql> SELECT 'fonfo' REGEXP '^fo$'; mysql> SELECT 'fofo' REGEXP '^fo'; -> 0 -> 1
$ Coincidencia del final de una cadena. mysql> SELECT 'fono' REGEXP '^fono$'; mysql> SELECT 'fono' REGEXP '^fo$'; -> 1 -> 0
64
. Coincidencia de cualquier carcter (incluyendo los de avance o el retorno de lnea). mysql> SELECT 'fofo' REGEXP '^f.*$'; -> 1 mysql> SELECT 'fornfo' REGEXP '^f.*$'; -> 1
a* Coincidencia de cualquier secuencia de cero o ms caracteres. mysql> SELECT 'Ban' REGEXP '^Ba*n'; mysql> SELECT 'Baaan' REGEXP '^Ba*n'; mysql> SELECT 'Bn' REGEXP '^Ba*n'; -> 1 -> 1 -> 1
a+ Coincidencia de cualquier secuencia de uno o ms caracteres. mysql> SELECT 'Ban' REGEXP '^Ba+n'; mysql> SELECT 'Bn' REGEXP '^Ba+n'; -> 1 -> 0
MySQL para principiantes por Michelle Torres
65
66
67
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 MySQL para principiantes por Michelle Torres
69
70
La respaldo
La recupero
71
Imgenes en MySQL
No existe un campo como tal para guardar imgenes, lo que se hace es que por medio de aplicaciones tales como PHP se realiza la conversin a binario de la imgen y esta se guarda dentro de un campo tipo BLOB. Mi recomendacin es guardar solamente la ruta donde se encuentra guardada la imgen.
72
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 tambin establecerse que se active antes o despues de la sentencia en cuestin. Por ejemplo, se puede tener un disparador que se active antes de que un registro sea borrado, o despus de que sea actualizado. Para crear o eliminar un disparador, se emplean las sentencias CREATE TRIGGER y DROP TRIGGER.
73
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 MySQL para principiantes por Michelle Torres
75
RETROALIMENTACIN
76
Muchas gracias!
77