Você está na página 1de 63

UNIDAD 2 - MySQL

TALLER DE BASE DE DATOS


SQL
Structured Query Language (en español Lenguaje
Estructurado de Consultas)

Ya muchos productos son compatibles con SQL y se ha


hecho un estándar de bases de datos relacionales.
Componentes de SQL
Lenguaje de definición de datos (LDD).
El LDD de SQL proporciona órdenes para la definición de esquemas de relación, borrado de relaciones, creación de índices y modificación de esquemas de
relación.

Lenguaje interactivo de manipulación de datos (LMD).


El LMD de SQL incluye un lenguaje de consultas, basado tanto en el álgebra relacional como en el cálculo relacional de tuplas. Incluye también órdenes para
insertar, borrar y modificar tuplas de la base de datos.

Definición de vistas.
El LDD de SQL incluye órdenes para la definición de vistas.

Control de transacciones.
SQL incluye órdenes para la especificación del comienzo y final de transacciones.

SQL incorporado y SQL dinámico.


SQL dinámico e incorporado define cómo se pueden incorporar las instrucciones SQL en lenguajes de programación de propósito general, tales como C,
C++, Java, PL/I, Cobol, Pascal y Fortran.

Integridad.
El LDD de SQL incluye órdenes para la especificación de las restricciones de integridad que deben satisfacer los datos almacenados en la base de datos. Las
actualizaciones que violen las restricciones de integridad se rechazan.

Autorización.
El LDD de SQL incluye órdenes para especificar derechos de acceso para las relaciones y vistas.
Comandos SQL
Principales comandos para empezar a
administrar.
Comando Descripción
show databases; Mostrar todas las bases de datos que
tenemos
create database nombre_BD Crear una base de datos
use nombre_BD Usar una base de datos de las disponibles
Comandos SQL
Existen dos tipos de comandos SQL:

1. LDD que permiten crear y definir nuevas bases de


datos, campos e índices.
2. LMD que permiten generar consultas para ordenar,
filtrar y extraer datos de la base de datos.
3. Lenguaje de Control de Datos (LCD): Algunas
instrucciones de SQL que no pertenecen al LDD ni al LMD.
Comandos SQL
Lenguaje de Definición de Datos (LDD).
Comando Descripción
Podemos crear tablas, campos y la base
CREATE
de datos.
DROP Nos permite eliminar tablas.
Permite modificar las tablas agregando
ALTER campos o cambiando la definición de
los campos.
Truncate Vacía la Tabla
Comando CREATE
Podemos crear una base de datos:

Create database nombre_BD


O crear una tabla:
Create table nombres de campos y tipos de datos
Ejemplo de crear Tabla
CREATE TABLE JUEGOS
(id INT not null AUTO_INCREMENT,
nombre VARCHAR (50) not null ,
empresa VARCHAR (50) not null ,
plataforma VARCHAR (50) not null,
copias INT (3) not null,
PRIMARY KEY (id));
JUEGOS
id nombre empresa plataforma copias
1 Dark Souls II From Software Playstation 4 12
2 Mario Kart 8 Nintendo WII 10
3 Uncharted Sony Playstation 4 11
4 Grand Theft Auto V Rockstar XBOX ONE 13
5 Destiny Bungie Studios XBOX ONE 9
6 King of Fighters 2002 SNK PC 4
7 Fifa 15 EA Playstation 4 14
Comando TRUNCATE

Permite vaciar la tabla:


TRUNCATE TABLE nombre_tabla
Ejemplo
JUEGOS
id nombre empresa plataforma copias

TRUNCATE TABLE JUEGOS


Comando ALTER

Permite agregar y quitar columnas


ALTER TABLE `nombre_tabla` ADD `campo`
char(100) NOT NULL

alter table NOMBRETABLA drop column


NOMBRECAMPO
Cambiar nombre al campo
ALTER TABLE nombre_tabla CHANGE
nombre_campo_actual nuevo_nombre
varchar(30)
Cambiar nombre Tabla
RENAME TABLE nombre_tabla
TO nuevo_nombre_tabla
Eliminar SQL
Se puede eliminar tanto la tabla como la Base de
datos.
Drop table nombre_tabla

Drop Database nombre_BD


Comandos SQL
Lenguaje de Manipulación de Datos (LMD).

• Consultas de selección.
• Consultas de acción.
• Consultas de control de concurrencia.
Consulta de Selección

Comando Descripción
Filtra registros sin modificar
SELECT
información.
Ejemplo de Selección
SELECT nombre FROM prueba.juegos

JUEGOS
nombre
Dark Souls II
Mario Kart 8
Uncharted
Grand Theft Auto V
Destiny
King of Fighters 2002
Fifa 15
Ejemplo de Selección
SELECT * FROM juegos WHERE nombre = "Mario Kart 8"

JUEGOS
id nombre empresa plataforma copias

2 Mario Kart 8 Nintendo WII 10


Ejemplo de Selección
SELECT * FROM juegos WHERE nombre = "Mario Kart 8" OR copias = 12

JUEGOS
id nombre empresa plataforma copias
1 Dark Souls II From Software Playstation 4 12
2 Mario Kart 8 Nintendo WII 10
Ejemplo de Selección
JUEGOS
id nombre empresa plataforma copias

SELECT * FROM juegos WHERE nombre = "Mario Kart 8" AND copias = 12
Selección de dos o más tablas
Select campos
From tabla1, tabla2
where tabla1.id = tabla2.id
Selección con INNER JOIN
SELECT * FROM tabla1
INNER JOIN tabla2
ON tabla2.id_tabla1 = tabla1.id
INNER JOIN tabla3 ON tabla2.id
= tabla3.id_tabla2
Comando ORDER BY
Permite ordenar el resultado
Ejemplo:
select campos
from nombre_tabla
order by campo
Consultas de Acción
Para modificar la base de datos.
Comando Descripción
Puede insertar grandes cantidades de
INSERT
datos.
UPDATE Modifica o actualiza registros.

DELETE Elimina registros de la base de datos.


Insertar datos
Insert into
nombre_tabla (campo) values ( ‘valor’)
Insertar varios datos ejemplo
insert into ciudad1 (nombre, poblacion)
values('México','Tlalpan'),('Nuevo
Leon','Monterrey');
Modificar registros

UPDATE nombre_tabla
SET campo = 20
WHERE campo = 12
Modificar registros ejemplo

UPDATE juegos
SET copias = 20
WHERE copias = 12
Eliminar datos
En MySQL Workbench hay una protección para
modificar o eliminar datos, para quitarla:
1. Vamos al menú en la opción “edit”.

2. Seleccionamos la opción preferencias.


Quitar opción
“Safe Updates”
Eliminar datos
Ahora si podemos eliminar

DELETE FROM nombre_tabla WHERE campo = valor


Consultas de control de concurrencia
Comando Descripción
Se graban las ultimas modificaciones
COMMIT en la base de datos de manera
permanente.

Permite volver al estado en el que


ROLLBACK estaba la base de datos tras el último
COMMIT.
Comandos SQL
Lenguaje de Control de Datos (LCD).
Comando Descripción
Se emplea para dar permisos a los
GRANT
usuarios.

Con él podemos eliminar permisos a


REVOKE
los usuarios.
Operadores agregados
SQL tiene algunos operadores que funcionan
con el nombre de un atributo, estos son:

AVG, COUNT, SUM, MIN, MAX


Valores agregados
AVERAGE
Se obtiene un promedio.
Ejemplo en la table llamada producto:

SELECT AVG (precio) FROM producto


Valores agregados
COUNT
Cuenta el número de registros, los registros repetidos son descartados.
Ejemplo:

SELECT COUNT(DISTINCT nombres)


FROM productos_orden;

Resultado = 2
Valores agregados
SUM
Suma los registros. Ejemplo:

select sum(precio) from producto


Valores agregados
SUM
Suma los registros. Ejemplo:

select sum(precio) from producto


Valores agregados
MAX
Muestra el valor máximo. Ejemplo:

select max(precio) from producto


Valores agregados
MIN
Muestra el valor mínimo. Ejemplo:

select min(precio) from producto


Respaldo en MySQL workbench
El respaldo es importante en cualquier
manejador.
Respaldo BD
Respaldo BD
Respaldo BD
Vistas
En SQL las vistas (“views”) son un mecanismo
que permite generar un resultado a partir de
una consulta (query) almacenada, después se
puede utilizar como si fuera una tabla existente.
Ejemplo
CREATE VIEW vista_paises AS
SELECT nombre_pais, nombre_estado, nombre_municipio
FROM pais
INNER JOIN estado
ON estado.id_pais = pais.id
INNER JOIN municipio
ON estado.id = municipio.id_estado
Tipos de datos
Int
Varchar
Char
Float
Llaves
Superclave. Conjunto de atributos que permiten
distinguir de forma única a una entidad dentro del
conjunto de entidades.

Por ejemplo, {Rfc} es una superclave de la entidad


CONTRIBUYENTE, también {Rfc, Nombre} es una
superclave, pero {Nombre} no es una superclave, pues
varios contribuyentes pueden tener el mismo nombre.
Clave Candidata
El concepto de clave candidata sirve para definir conjuntos con cardinalidad
mínima de atributos que identifiquen a las entidades. Pueden existir varias
claves candidatas para cada entidad.
Clave Primaria
Clave candidata que elige el diseñador para distinguir a
las entidades dentro del conjunto de entidades.
Clave Alterna
Clave candidata que no es la clave primaria.
Uso de Llave Foránea
Una llave foránea ayuda a relacionar tablas,
haciendo referencia a la llave primaria de otra
tabla. Una llave foránea también puede ser
llave primaría o incluso ser eliminada
automáticamente si se elimina la llave primaria
a la que hace referencia.
Uso de Llave Foránea con restricción
de borrado
CREATE TABLE producto ( id INT NOT NULL, precio FLOAT,
PRIMARY KEY (id));
Uso de Llave Foránea con restricción
de borrado
CREATE TABLE productos_orden
(no_orden INT NOT NULL AUTO_INCREMENT,
nombre VARCHAR(30) NOT NULL,
producto_id INT(2) NOT NULL, PRIMARY KEY(no_orden),
FOREIGN KEY (producto_id) REFERENCES producto(id));
Borrar llave primaria en cascada
Crear tabla sucursal
CREATE TABLE sucursal (id INT NOT NULL, nombre VARCHAR(50), PRIMARY KEY
(id));

Crear tabla cuenta


create table cuenta(id INT NOT NULL,
id_sucursal INT (3) not null,
foreign key (id_sucursal)
references sucursal (id)
on delete cascade
on update cascade)
LIKE en SQL
Permite hacer una selección de datos que empiecen, terminen o contengan ciertos caracteres.

Que la palabra empiece con M

atributo LIKE ‘M%'))

Que la palabra termine con M

atributo LIKE '%M'))

Que contenga la letra M

atributo LIKE '%M%'))


Tipos de JOIN
INNER JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
CROSS JOIN
Practica
1. Crear una base de datos llamada países
2. Crear 3 tablas:
3. Países, estados y municipios
4. Relacionarlos entre sí (llaves foráneas)
5. Insertar 15 municipios en una sola consulta
6. Insertar 10 estados en una sola consulta
7. Insertar 2 países en una sola consulta
8. Hacer una selección y mostrar un país con su respectivo estado y
municipio.
9. Respaldar la base de datos
Practica resultado
1. Crear una base de datos llamada países
Create database países

2. Crear 3 tablas: Países, estados y municipios, relacionarlos entre sí.


CREATE TABLE `paises` ( CREATE TABLE `estados` ( CREATE TABLE `municipios` (
`id` int(11) NOT NULL `id` int(11) NOT NULL `id` int(11) NOT NULL
AUTO_INCREMENT, AUTO_INCREMENT, AUTO_INCREMENT,
`nombre_pais` varchar(50) NOT NULL, `nombre_estado` varchar(50) NOT `nombre_municipio` varchar(50) NOT
PRIMARY KEY (`id`) NULL, NULL,
) `id_pais` int(3) NOT NULL, `id_estado` int(3) NOT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) )
Practica resultado
5. Insertar 7 municipios en una sola consulta
INSERT INTO `municipios` VALUES (1,'San Juan del
Río',1),(2,'Pachuca',2),(3,'Zimapán',2),(4,'Cadereyta',1),(5,'Iztapalacra',3),(6,'Ja
lpan',1),(7,'Tlalpan',3);

6. Insertar 3 estados en una sola consulta

INSERT INTO `estados` VALUES (1,'Querétaro',1),(2,'Hidalgo',2),(3,'DF',3);

7. Insertar 2 países en una sola consulta

INSERT INTO `paises` VALUES (1,'México'),(2,'Argentina');


Practica resultado
8. Hacer una selección y mostrar un país con su respectivo estado y municipio (INNER
JOIN).

SELECT nombre_pais, nombre_estado, nombre_municipio FROM países INNER JOIN


estados ON estados.id_pais = paises.id INNER JOIN municipios ON estados.id =
municipios.id_estado Where nombre_pais = "México“

9. Respaldar la base de datos


Referencias
Silverschatz, A., Korth, H., Sudarshan, S. (2010).

http://luismido.wikidot.com/sql:structured-query-
language

Fundamentos de Base de Datos (pp. 107-110) USA.


Mc Graw Hill.

Você também pode gostar