Apuntes MySql.

36
 Programación WEB con PHP Y MySQL (I T Tapachula) 1 MySQL Objetivo Aprender los fundamentos del manejo d e información en MySQL.

Transcript of Apuntes MySql.

Page 1: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 1/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

1

MySQL

ObjetivoAprender los fundamentos del manejo de información en MySQL.

Page 2: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 2/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

2

MySQL

Trabajando con el daemon o servicio de MySQLEn linux arrancamos el daemon de MySQL con el comando: usr/local/mysql/bin/mysqld_safe --

user=mysql &

Para detener el daemon se utiliza el comando:

usr/local/mysql/bin/mysqladmin --user=root --password=password shutdown

En Windows NT 4, 2000, XP o 2003 utilizamos el administrador de servicios para arrancar o detener el servicio:

Page 3: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 3/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

3

MySQL

Explorando las bases de datos existentes

Para obtener un listado de las bases de datos utilizamos el comando mysqlshow, el cual se encuentra alojado en /usr/local/mysql/bin (linux), o en c:\mysql\bin (windows). Para ver que tablas contiene una bases de

datos utilizamos el comando mysqlhow y le enviamos como parámetro el nombre de la base de datos:

Page 4: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 4/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

4

MySQL

Utilizando mysql ClientEl cliente de MySQL es una interfase que nos permite trabajar directamente con los objetos que almacena

MySQL, el siguiente comando nos permite utilizarlo:

mysql --user=usuario --password=password --host=servidor-de-mysql

Para trabajar con el servidor local, simplemente omitimos el parametro --host:

mysql --user=usuario --password=password

Page 5: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 5/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

5

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.

Page 6: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 6/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

6

MySQL

Para utilizar una base de datos utilizamos el comando USE base-de-datos; Para obtener un listado de las tablas

utilizamos SHOW TABLES;

Page 7: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 7/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

7

MySQL

Para obtener la estructura de una tabla DESC tabla;

Para salir del cliente utilizamos los comandos exit o quit:

Page 8: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 8/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

8

MySQL

Creando nuevas bases de datos

Para crear una base de datos con el cliente de MySQL utilizamos el comando CREATE DATABASE base-de-datos;

Page 9: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 9/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

9

MySQL

Para borrar la base de datos utilizamos DROP DATABASE base-de-datos;

Page 10: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 10/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

10

MySQL

Creando nuevas tablas

Una vez creada la base de datos podemos crear sus tablas, primero ejecutamos el comando USE base-de-datos; posteriormente podemos crear las tablas con el comando CREATE TABLE tabla (campos-de-

la-tabla);

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).

Para borrar una tabla se utiliza el comando DROP TABLE tabla;

Page 11: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 11/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

11

MySQL

Tipos de datos de MySQL

Numéricos enterosTINYINT

SMALLINT

INT

MEDIUMINT

BIGINT

Numéricos con decimalesFLOAT

DOUBLE/REAL

DECIMAL

TextoCHAR : 0-255 caracteres de longitud fija

VARCHAR : 0 - 255 de longitud variable

TINYTEXT : 0 - 255 bytes

TEXT : 0 - 65535 bytes

MEDIUMTEXT : 0 - 16777215 bytes

LONGTEXT : 0 - 4294967295 bytes

Objetos BinariosTINYBLOB : 0-255 bytes

BLOB : 0 - 65535 bytes

MEDIUMBLOB : 0 - 16777215 bytes

LONGBLOB : 0 - 4294967295 bytes

Page 12: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 12/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

12

MySQL

Fechas

DATE : Formato YYYY-MM-DD

DATETIME : Formato YYYY-MM-DD hh:mm:ss

TIMESTAMP : Formato YYYYMMDDhhmmss

TIME : hh:mm:ss

YEAR : YYYY

EspecialesENUM

Almacena enumeraciones, por ejemplo: (1,5,8). Cuando se asigna un valor a un campo debe estar contenido en laenumeración.

SETAlmacena 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.

Page 13: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 13/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

13

MySQL

Atributos

BINARYProvoca que un campo de texto sea case-sensitive, solo valido para CHAR y VARCHAR.

NULL o NOT NULL

Permite o impide que un campo sea nulo.

Si a un campo no se le especifica un valor, entonces se le asigna el NULL.

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_INCREMENTIncrementa en uno el valor máxima que contenga el campo y se lo asigna al nuevo registro, solo puede haber uno

por tabla.

IndicesKEY/INDEX

Define que el campo sera utilizado como índice de uno o varios campos. Comúnmente se utilizan para agilizar lasbusquedas de información.

PRIMARY KEYDefine 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.

Page 14: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 14/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

14

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

claveCategoria int(11) NOT NULL auto_incrementTipo integer, no permite nulos, su valor se incrementa automaticamente con cada nuevo registro.

categoria varchar(15) NOT NULL default ''

Tipo string de entre 0 y 15 caracteres, no permite nulos, el valor default que se le asigna cuando no se proporciona

un valor es ''.

notas varchar(255) default NULLTipo string de entre 0 y 255 caracteres, si permite nulos.

PRIMARY KEY (claveCategoria)Define el campo claveCategoria como la llave primaria de la tabla.

UNIQUE KEY claveCategoria (claveCategoria)

Define que para el campo claveCategoria se crea un índice que no permite valores duplicados.

TYPE=MyISAMDetermina el tipo de tabla que se va a crear, este es el mas común y no soporta transacciones.

Page 15: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 15/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

15

MySQL

Utilizando archivos con scripts de MySQL

Dado que teclear código como el anterior en el cliente de MySQL puede ser muy laborioso, la alternativa esmandarle como parámetro al cliente de MySQL el nombre de un archivo que contenga el código que deseamos

ejecutar.

Comúnmente estos archivos terminan con la extension sql, y contienen scripts que son ejecutados

secuencialmente por el manejador de bases de datos.

El comando es como se muestra a continuación:

mysql --user=usuario --password=password < archivo.sql

Page 16: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 16/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

16

Page 17: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 17/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

17

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');

Page 18: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 18/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

18

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

mysql --user=usuario --password=password < /cursos/php/dbscripts/productos-

datos-pruebas.sql

Después de ejecutar estos comandos tendremos dos tablas en la base de datos recién creada:

Page 19: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 19/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

19

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;

Nos arroja un resultado como este:

Page 20: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 20/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

20

MySQL

Cambiando la estructura de las tablas

La estructura de una tabla puede ser cambiada con el comando ALTER TABLE, con este comando se puedeagregar, borrar o cambiar las características de los campos de la tabla, aquí tenemos algunos ejemplos:

ALTER TABLE categorias RENAME AS subcategorias;

Cambia el nombre de la tabla.

ALTER TABLE categorias ADD nuevoCampo VARCHAR(50) NOT NULL;

Agrega un campo a la tabla

ALTER TABLE categorias DROP COLUMN Campo;

Elimina un campo de la tabla.

ALTER TABLE categorias MODIFY nuevoCampo VARCHAR(100) NULL;Cambia la definición de un campo de la tabla.

ALTER TABLE categorias CHANGE campoOriginal campoModificado VARCHAR(80) NOT

NULL;

Cambia el nombre y la definición de un campo de la tabla.

Page 21: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 21/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

21

MySQL

Ejercicio - Creando bases de datos, tablas e importando información en MySQLEl siguiente ejercicio consiste crear la bases de datos, tablas e importar información en MySQL. Este es el esquemade la base de datos que vamos a utilizar:

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:

CREATE TABLE usuarios (

clave int(4) NOT NULL auto_increment,

usuario varchar(60) NOT NULL default '',

password varchar(60) NOT NULL default '',

PRIMARY KEY (clave),

UNIQUE KEY clave (clave)

) TYPE=MyISAM;

Page 22: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 22/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

22

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.

Al final deberá contar con las siguientes tablas:

Page 23: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 23/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

23

MySQL

Manejo de permisos en MySQL

MySQL lleva el registro de usuarios en la base de datos mysql con la tabla user:

Page 24: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 24/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

24

MySQL

La estructura de la tabla es la siguiente:

Page 25: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 25/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

25

MySQL

Para ver los usuarios registrados podemos ejecutar el estatuto SELECT:

select host, user, password from user;

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 u tiliza el

comando REVOKE.

Page 26: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 26/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

26

MySQL

GRANT

La sintaxis de este comando es la siguiente:GRANT tipo-de-privilegio ON base-de-datos.tabla TO usuario IDENTIFIED BY

'password';

Aquí tenemos algunos ejemplos:

GRANT ALL PRIVILEGES ON cursophp.* TO usuarioweb IDENTIFIED BY 'digitever';

Da de alta al usuario usuarioweb con el password digitever.

Otorga todos los privilegios aplicables para la base de datos cursophp.

GRANT ALL PRIVILEGES ON cursophp.categorias TO categorias IDENTIFIED BY'digitever';

Da de alta al usuario categorias con el password digitever.

Otorga todos los privilegios aplicables a una tabla para la tabla categorias.

GRANT SELECT ON cursophp.* TO soloLectura IDENTIFIED BY 'digitever';

Da de alta al usuario soloLectura con el password digitever.

Otorga solamente el privilegio de ejecutar estatutos SELECT en la base de datos cursophp.

GRANT SELECT, UPDATE ON cursophp.* TO noAltas IDENTIFIED BY 'digitever';

Da de alta al usuario noAltas con el password digitever.

Puede ejecutar estatutos SELECT y UPDATE en la base de datos cursophp.

GRANT SELECT (campo1, campo3) ON cursophp.categorias TO restringido

IDENTIFIED BY 'digitever';

Da de alta al usuario restringido con el password digitever.

Puede ejecutar el estatuto SELECT solamente en los campos especificado en la base de datos cursophp en la tabla

categorias.

REVOKELa 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.

REVOKE ALL PRIVILEGES ON *.* FROM usuarioweb;

Retira todos los privilegios al usuario usuarioweb aplicables para la todas las base de datos.

REVOKE DELETE ON cursophp.categorias FROM usuarioCategorias;

Retira el privilegio de ejecutar estatutos DELETE al usuario usuarioCategorias aplicables para la tabla categorias.

Page 27: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 27/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

27

MySQL

Borrando usuarios de MySQL

Si queremos borrar un usuario de MySQL podemos utilizar el estatuto DELETE, por ejemplo, para eliminar elusuario userPruebas:

Page 28: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 28/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

28

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:

Page 29: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 29/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

29

MySQL

Ejercicio - Dando de alta usuarios en MySQL

De de alta los siguientes usuarios con los privilegios indicados:

grant all privileges on cursophp.* to usuarioweb identified by 'digitever';

grant select on cursophp.* to soloLectura identified by 'digitever';

Verifique que los usuarios estén dados de alta con el siguiente estatuto SQL:

select host, user, password from user;

Page 30: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 30/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

30

MySQL

Manipulando los datos con estatutos SQL

Para manipular la información almacenada en las tablas, se utilizan comúnmente los siguientes estatutos SQL:• SELECT

• INSERT

• UPDATE

• DELETE

SELECTExtrae información de las tablas, sintaxis:

SELECT campo1,campo2,....,campoN FROM tabla

WHERE condiciones

Ejemplos:

mysql> select * from categorias;

+----------------+-----------------+--------------------------+------------------------+

| claveCategoria | categoria | notas | urlImagen |

+----------------+-----------------+--------------------------+------------------------+

| 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 |

+----------------+-----------------+--------------------------+------------------------+

mysql> select * from categorias where claveCategoria = 2;

+----------------+-------------+---------------+------------------------+

| claveCategoria | categoria | notas | urlImagen |

+----------------+-------------+---------------+------------------------+

| 2 | Condimentos | Apio, perejil | images/condimentos.jpg |

+----------------+-------------+---------------+------------------------+

mysql> select * from categorias where categoria = 'carnes';

+----------------+-----------+--------------------+-------------------+

| claveCategoria | categoria | notas | urlImagen |

+----------------+-----------+--------------------+-------------------+

| 6 | Carnes | Pollo, res, puerco | images/carnes.jpg |

+----------------+-----------+--------------------+-------------------+

Page 31: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 31/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

31

MySQL

mysql> select claveProducto,producto, existencia from productos where

existencia < 10 ORDER BY existencia;+---------------+----------------------------+------------+

| claveProducto | producto | existencia |

+---------------+----------------------------+------------+

| 5 | Chef Anton's Gumbo Mix | 0 |

| 17 | Alice Mutton | 0 |

| 29 | Th?ringer Rostbratwurst | 0 |

| 31 | Gorgonzola Telino | 0 |

| 53 | Perth Pasties | 0 |

| 21 | Sir Rodney's Scones | 3 |

| 66 | Louisiana Hot Spiced Okra | 4 |

| 74 | Longlife Tofu | 4 || 45 | R?gede sild | 5 |

| 8 | Northwoods Cranberry Sauce | 6 |

| 68 | Scottish Longbreads | 6 |

| 32 | Mascarpone Fabioli | 9 |

+---------------+----------------------------+------------+

Page 32: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 32/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

32

MySQL

UPDATE

Actualiza información, sintaxis:UPDATE tabla SET campo1 = valor1, campo2 = valor2, campoN = valorN

WHERE condiciones

mysql> select * from entregas;

+--------------+------------------+----------------+

| claveEntrega | descripcion | telefono |

+--------------+------------------+----------------+

| 1 | Speedy Express | (503) 555-9831 |

| 2 | United Package | (503) 555-3199 |

| 3 | Federal Shipping | (503) 555-9931 |

+--------------+------------------+----------------+

mysql> update entregas set descripcion = 'United Shipping' where

claveEntrega = 2;

mysql> select * from entregas;

+--------------+------------------+----------------+

| claveEntrega | descripcion | telefono |

+--------------+------------------+----------------+

| 1 | Speedy Express | (503) 555-9831 |

| 2 | United Shipping | (503) 555-3199 |

| 3 | Federal Shipping | (503) 555-9931 |+--------------+------------------+----------------+

Page 33: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 33/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

33

MySQL

INSERT

Agrega información, sintaxis:INSERT tabla (campo1,campo2,....,campoN) VALUES (valor1,valor2,....,valorN)

mysql> select * from entregas;

+--------------+------------------+----------------+

| claveEntrega | descripcion | telefono |

+--------------+------------------+----------------+

| 1 | Speedy Express | (503) 555-9831 |

| 2 | United Shipping | (503) 555-3199 |

| 3 | Federal Shipping | (503) 555-9931 |

+--------------+------------------+----------------+

mysql> insert entregas (descripcion, telefono) values ('Nuevo registro',

'(956) 722 -3420') ;

mysql> select * from entregas;

+--------------+------------------+-----------------+

| claveEntrega | descripcion | telefono |

+--------------+------------------+-----------------+

| 1 | Speedy Express | (503) 555-9831 |

| 2 | United Shipping | (503) 555-3199 |

| 3 | Federal Shipping | (503) 555-9931 |

| 4 | Nuevo registro | (956) 722 -3420 |+--------------+------------------+-----------------+

Page 34: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 34/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

34

MySQL

DELETE

Borra información, sintaxis:DELETE FROM tabla

WHERE condiciones

mysql> select * from entregas;

+--------------+------------------+-----------------+

| claveEntrega | descripcion | telefono |

+--------------+------------------+-----------------+

| 1 | Speedy Express | (503) 555-9831 |

| 2 | United Shipping | (503) 555-3199 |

| 3 | Federal Shipping | (503) 555-9931 |

| 4 | Nuevo registro | (956) 722 -3420 |+--------------+------------------+-----------------+

4 rows in set (0.00 sec)

mysql> delete from entregas where claveEntrega = 4;

Query OK, 1 row affected (0.00 sec)

mysql> select * from entregas;

+--------------+------------------+----------------+

| claveEntrega | descripcion | telefono |

+--------------+------------------+----------------+

| 1 | Speedy Express | (503) 555-9831 || 2 | United Shipping | (503) 555-3199 |

| 3 | Federal Shipping | (503) 555-9931 |

+--------------+------------------+----------------+

Page 35: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 35/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

35

MySQL

Asociando tablas con joinsUn join nos permite asociar varias tablas y extraer datos de ambas. Para que el join pueda asociar las tablas ambas

deben tener al menos un campo en común, por ejemplo, las tablas de productos y categorias están asociadas

mediante el campo claveCategoria:

mysql> desc categorias;

+----------------+--------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+----------------+--------------+------+-----+---------+----------------+

| claveCategoria | int(11) | | PRI | NULL | auto_increment |

| categoria | varchar(15) | | | | |

| notas | varchar(255) | YES | | NULL | |

| urlImagen | varchar(255) | YES | | NULL | |+----------------+--------------+------+-----+---------+----------------+

mysql> desc productos;

+-------------------+-------------+------+-----+---------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------------------+-------------+------+-----+---------+----------------+

| claveProducto | int(11) | | PRI | NULL | auto_increment |

| producto | varchar(40) | | | | |

| claveProveedor | int(11) | | MUL | 0 | |

| claveCategoria | int(11) | | MUL | 0 | |

| cantidadPorUnidad | varchar(20) | YES | | NULL | |

| precioUnitario | double | YES | | NULL | |

| existencia | int(11) | YES | | NULL | |

| pedidos | int(11) | YES | | NULL | |

| nivelDeResurtir | int(11) | YES | | NULL | |

| descontinuado | tinyint(4) | YES | MUL | 0 | |

+-------------------+-------------+------+-----+---------+----------------+

Page 36: Apuntes MySql.

5/9/2018 Apuntes MySql. - slidepdf.com

http://slidepdf.com/reader/full/apuntes-mysql 36/36

 

Programación WEB con PHP Y MySQL (IT Tapachula)

36

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 |

+---------------+----------------------------------+-----------------+