My SQL
My SQL
MySQL
Objetivo
Aprender los fundamentos del manejo de información en MySQL.
1
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
En Windows NT 4, 2000, XP o 2003 utilizamos el administrador de servicios para arrancar o detener el servicio:
2
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
3
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
4
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Dentro del cliente de MySQL podemos utilizar un gran número de comandos, después de teclear cada comando
se termina con el carácter de punto y coma (;) para indicarle a MySQL que ejecute la instrucción.
Por ejemplo, para obtener el listado de bases de datos utilizamos el comando SHOW DATABASES;
NOTA
En este caso el comando no es case sensitive.
5
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Para utilizar una base de datos utilizamos el comando USE base-de-datos; Para obtener un listado de las tablas
utilizamos SHOW TABLES;
6
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
7
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
8
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
9
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Por ejemplo CREATE TABLE productos (numero INT, nombre VARCHAR(255)); crea una tabla
llamada productos con dos campos: numero (de tipo integer) y nombre (de tipo texto de hasta 255 caracteres).
10
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Texto
CHAR : 0-255 caracteres de longitud fija
VARCHAR : 0 - 255 de longitud variable
TINYTEXT : 0 - 255 bytes
Objetos Binarios
TINYBLOB : 0-255 bytes
11
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Fechas
DATE : Formato YYYY-MM-DD
TIME : hh:mm:ss
YEAR : YYYY
Especiales
ENUM
Almacena enumeraciones, por ejemplo: (1,5,8). Cuando se asigna un valor a un campo debe estar contenido en la
enumeración.
SET
Almacena una lista valida de valores, por ejemplo: ("a","b","c","d"). Cuando se asigna un valor a un campo debe
estar contenido en la lista y además se le pueden asignar varios de los valores.
12
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Atributos
BINARY
Provoca que un campo de texto sea case-sensitive, solo valido para CHAR y VARCHAR.
DEFAULT valor_default
Asigna un valor default al campo.
En caso que un campo tenga un valor default especificado, este se le asigna cuando el valor es NULL.
AUTO_INCREMENT
Incrementa en uno el valor máxima que contenga el campo y se lo asigna al nuevo registro, solo puede haber uno
por tabla.
Indices
KEY/INDEX
Define que el campo sera utilizado como índice de uno o varios campos. Comúnmente se utilizan para agilizar las
busquedas de información.
PRIMARY KEY
Define que el campo deberá contener valores únicos, no puede contener NULL. Este campo se utiliza para
establecer asociaciones entre distintas tablas.
UNIQUE
Define que el campo deberá contener valores únicos.
13
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Para crear una tabla de categorías podemos utilizar un comando como este:
USE base-de-datos;
CREATE TABLE categorias (
claveCategoria int(11) NOT NULL auto_increment,
categoria varchar(15) NOT NULL default '',
notas varchar(255) default NULL,
urlImagen varchar(255) default NULL,
PRIMARY KEY (claveCategoria),
UNIQUE KEY claveCategoria (claveCategoria)
) TYPE=MyISAM
TYPE=MyISAM
Determina el tipo de tabla que se va a crear, este es el mas común y no soporta transacciones.
14
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
15
Programación WEB con PHP Y MySQL (IT Tapachula)
16
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Los scripts pueden crear tablas como en el ejemplo anterior, pero también se pueden utilizar para insertar datos en
las tablas. Por ejemplo el archivo categorias-datos-pruebas.sql contiene los siguientes estatutos:
USE pruebas;
INSERT INTO `categorias` (`claveCategoria`, `categoria`, `notas`,
`urlImagen`) VALUES
(1,'Bebidbas','Sodas, cafe, te, cerveza','images/bebidas.jpg'),
(2,'Condimentos','Apio, perejil','images/condimentos.jpg'),
(3,'Postres','Pasteles, dulces','images/postres.jpg'),
(4,'Lacteos','Queso, mantequilla','images/lacteos.jpg'),
(5,'Granos/Cereales','Pasta, pan','images/granos.jpg'),
(6,'Carnes','Pollo, res, puerco','images/carnes.jpg'),
(7,'Vegetales','Tomates, lechuga','images/vegetales.jpg'),
(8,'Mariscos','Camarones, ostiones','images/mariscos.jpg');
17
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Podemos ejecutar varios archivos y de esta manera crear fácilmente tablas e importar información en las tablas,
por ejemplo:
mysql --user=usuario --password=password < /cursos/php/dbscripts/productos-
tabla-pruebas.sql
Después de ejecutar estos comandos tendremos dos tablas en la base de datos recién creada:
18
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Una vez importados los datos en las tablas podemos ejecutar comandos para manipular dicha información, por
ejemplo el estatuto SELECT. Este estatuto extrae información de las tablas, por ejemplo:
select * from categorias;
19
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
20
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Lista de actividades:
1. Arranque el daemon o servicio de MySQL
2. Agregue una base de datos llamada cursophp
3. Agregue una tabla llamada usuarios con las siguientes características:
21
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
4. En el directorio /cursos/php/dbscripts están los scripts con las definiciones de las tablas y sus datos
5. Por cada tabla hay un par de scripts: Uno para crear la tabla y otro para insertar datos en la misma.
6. Primero ejecute el script para crear la tabla y posteriormente el script para insertar información. Por ejemplo,
para la tabla de categorías primero ejecute el script categorias-tabla.sql y luego categorias-
datos.sql.
7. Los scripts están numerados, van del 01- al 16-, ejecútelos en ese orden.
22
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
23
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
24
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Para crear y otorgar permisos a un nuevo usuario en MySQL podemos insertar registros directamente en la tabla, o
bien utilizar el comando GRANT lo cual es la manera recomendada. Para cambiar los permisos se utiliza el
comando REVOKE.
25
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
GRANT
La sintaxis de este comando es la siguiente:
GRANT tipo-de-privilegio ON base-de-datos.tabla TO usuario IDENTIFIED BY
'password';
REVOKE
La sintaxis es similar a la de GRANT:
REVOKE tipo-de-privilegio ON base-de-datos.tabla FROM usuario;
Ejemplos:
REVOKE ALL PRIVILEGES ON cursophp.* FROM usuarioweb;
Retira todos los privilegios al usuario usuarioweb aplicables para la base de datos cursophp.
26
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
27
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Utilizamos el estatuto:
delete from user where user='userPruebas';
Al manipular directamente la tabla de usuarios de MySQL tenemos que utilizar el comando FLUSH
PRIVILEGES para que MySQL tome en cuenta los cambios:
28
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Verifique que los usuarios estén dados de alta con el siguiente estatuto SQL:
select host, user, password from user;
29
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
SELECT
Extrae información de las tablas, sintaxis:
SELECT campo1,campo2,....,campoN FROM tabla
WHERE condiciones
Ejemplos:
30
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
31
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
UPDATE
Actualiza información, sintaxis:
UPDATE tabla SET campo1 = valor1, campo2 = valor2, campoN = valorN
WHERE condiciones
32
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
INSERT
Agrega información, sintaxis:
INSERT tabla (campo1,campo2,....,campoN) VALUES (valor1,valor2,....,valorN)
33
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
DELETE
Borra información, sintaxis:
DELETE FROM tabla
WHERE condiciones
34
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
35
Programación WEB con PHP Y MySQL (IT Tapachula)
MySQL
Para obtener la descripción de la categoría para su respectiva clave almacenada en productos el join seria como
este:
mysql> select productos.claveProducto, productos.producto,
categorias.categoria from productos, categorias where
productos.claveCategoria = categorias.claveCategoria;
+---------------+----------------------------------+-----------------+
| claveProducto | producto | categoria |
+---------------+----------------------------------+-----------------+
| 1 | Chai | Bebidbas |
| 2 | Chang | Bebidbas |
| 24 | Guaran? Fant?stica | Bebidbas |
| 75 | Rh?nbr?u Klosterbier | Bebidbas |
| 76 | Lakkalik??ri | Bebidbas |
| 3 | Aniseed Syrup | Condimentos |
| 4 | Chef Anton's Cajun Seasoning | Condimentos |
| 5 | Chef Anton's Gumbo Mix | Condimentos |
| 6 | Grandma's Boysenberry Spread | Condimentos |
| 66 | Louisiana Hot Spiced Okra | Condimentos |
| 77 | Original Frankfurter gr?ne So?e | Condimentos |
| 16 | Pavlova | Postres |
| 48 | Chocolade | Postres |
| 49 | Maxilaku | Postres |
| 50 | Valkoinen suklaa | Postres |
| 62 | Tarte au sucre | Postres |
| 68 | Scottish Longbreads | Postres |
| 78 | nuevo01 | Postres |
| 11 | Queso Cabrales | Lacteos |
| 12 | Queso Manchego La Pastora | Lacteos |
| 31 | Gorgonzola Telino | Lacteos |
| 72 | Mozzarella di Giovanni | Lacteos |
| 22 | Gustaf's Kn?ckebr?d | Granos/Cereales |
| 23 | Tunnbr?d | Granos/Cereales |
| 64 | Wimmers gute Semmelkn?del | Granos/Cereales |
| 9 | Mishi Kobe Niku | Carnes |
| 17 | Alice Mutton | Carnes |
| 7 | Uncle Bob's Organic Dried Pears | Vegetales |
| 14 | Tofu | Vegetales |
| 28 | R?ssle Sauerkraut | Vegetales |
| 51 | Manjimup Dried Apples | Vegetales |
| 74 | Longlife Tofu | Vegetales |
| 10 | Ikura | Mariscos |
| 46 | Spegesild | Mariscos |
| 58 | Escargots de Bourgogne | Mariscos |
| 73 | R?d Kaviar | Mariscos |
+---------------+----------------------------------+-----------------+
36