Bases de datos (BD): son un mecanismo que permite guardar
información estructurada de forma permanente.
Existen diferentes modelos de BD pero el mas usado es el modelo
relacional.
Una base de datos relacional esta integrada por un conjunto de tablas
y registros que contienen atributos.
Tabla: personas
Id_persona nombre direccion
BD: Casas
Tabla: totales
Id_total persona propied ciu
ad
Tabla:propiedades
Id_propiedades descripción precio
1
MySQL
M.C. Pedro Bello López
2
Mysql: Características
· Disponibilidad en gran cantidad de
plataformas y sistemas.
· Diferentes opciones de almacenamiento
según si se desea velocidad en las
operaciones o el mayor número de
operaciones disponibles.
· Transacciones y claves foráneas.
· Conectividad segura.
· Replicación.
· Búsqueda e indexación de campos de texto.
3
MySQL : Ventajas
· Acceso a las bases de datos de forma
simultánea por varios usuarios y/o
aplicaciones.
· Seguridad, en forma de permisos y
privilegios
· Portabilidad: SQL es también un lenguaje
estandarizado, de modo que las consultas
hechas usando SQL son fácilmente
portables a otros sistemas y plataformas.
· Escalabilidad: es posible manipular bases
de datos enormes, del orden de seis mil
tablas y alrededor de cincuenta millones de
registros, y hasta 32 índices por tabla.
4
Iniciando MySql
· Comprobación de entrada al Servidor:
Mysql>
· Comandos para salir del Servidor
Mysql>quit Ó Mysql>exit
5
Comandos básicos
Mostrando Bases de Datos existentes:
Mysql>show databases;
· Activando Base de Datos de Trabajo:
mysql> use nombre_BD;
· Mostrando las Tablas existentes en la Base de Datos actual
Mysql>show tables;
· Describir el esquema de las tablas:
mysql> describe nombre_Tabla;
6
COMANDOS
Existen dos tipos de comandos en MySQL:
DDL crean y definen nuevas bases de datos,
campos e índices.
DML generan consultas para ordenar, filtrar
y extraer datos.
7
DDL
(Data Definition Language)
Incluye los comandos:
• CREATE
• DROP
• ALTER
8
Ejemplo: Base datos Videoteca
• En una Videoteca se requiere
automatizar sus procesos de
rentas, por lo que solicita que la
siguiente información sea
almacenada en una base de
datos:
– Películas: título, director, actor.
– Clientes: nombre del cliente, año de
nacimiento.
– Rentas: título de la película, cliente,
fecha de inicio, fecha final 9
BD: videoteca
Tabla: clientes
Tabla: Pelicula
id_cliente
id_pelicula
cliente
titulo
year
director
actor
Tabla: rentas
Id_rentas
id_pelicula
Id_cliente
fechainicio
fechafin
10
CREATE DATABASE
Utilizado para crear nuevas Bases de Datos.
Sintaxis
DROP DATABASE IF EXISTS nombre_BD;
CREATE DATABASE nombre_BD;
Ejemplo
DROP DATABASE IF EXISTS videoteca;
CREATE DATABASE videoteca;
11
CREATE TABLE
Utilizado para crear nuevas tablas, campos e índices.
Sintaxis:
USE nombre_BD;
DROP TABLE IF EXISTS nombre_tabla;
CREATE TABLE nombre_tabla(
var1 tipo1 [NOT NULL] [PRIMARY KEY],
…
varN tipoN
);
12
CREATE TABLE
Ejemplo:
USE videoteca;
DROP TABLE IF EXISTS pelicula;
CREATE TABLE pelicula(
id_pelicula INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
titulo VARCHAR(64) NOT NULL,
director VARCHAR(128) NOT NULL,
actor VARCHAR(128) NOT NULL
);
DROP TABLE IF EXISTS clientes;
CREATE TABLE clientes(
id_cliente INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
cliente VARCHAR(64) NOT NULL
);
13
FOREIGN KEY Y REFERENCES
• Foreign Key es utilizado para designar llaves foráneas en una
tabla.
• References establece cuál es la tabla de donde se obtiene la llave
foránea.
• On delete cascade indica que al eliminar registros en la otra tabla
se eliminan de la tabla actual.
• On update cascade indica que al actualizar registros en la otra
tabla se actualizan en la tabla actual
USE nombre_BD;
Sintaxis: DROP TABLE IF EXISTS nombre_tabla;
CREATE TABLE nombre_tabla(
var1 tipo1 [NOT NULL] [PRIMARY KEY],
var_foranea tipo x [NOT NULL] …
varN tipoN
FOREIGN KEY(var_foranea) REFERENCES
otra_Tabla(var_foranea) ON DELETE CASCADE ON
UPDATE CASCADE
);
14
Ejemplo de Foreign key
USE videoteca;
DROP TABLE IF EXISTS rentas;
CREATE TABLE rentas(
fecha_inicio date NOT NULL,
fecha_fin date NOT NULL,
id_cliente INT NOT NULL,
id_pelicula INT NOT NULL,
FOREIGN KEY(id_cliente) REFERENCES clientes(id_cliente) ON DELETE
CASCADE ON UPDATE CASCADE,
FOREIGN KEY(id_pelicula) REFERENCES pelicula(id_pelicula) ON DELETE
CASCADE ON UPDATE CASCADE, PRIMARY KEY(id_cliente,id_pelicula,
fecha_inicio)
);
15
DROP
Empleado para eliminar Bases de Datos y
tablas.
Sintaxis
DROP Database nombre_BD;
DROP table nombre_tabla;
Ejemplo
DROP table rentas;
16
ALTER
Utilizado para modificar las tablas agregando
campos o cambiando la definición de los
campos.
Sintaxis
ALTER TABLE nombre_tabla
ADD COLUMN campo1 tipo_campo1;
ALTER TABLE nombre_tabla
DROP COLUMN campo1;
17
ALTER
Ejemplo
ALTER TABLE pelicula ADD COLUMN categoria Varchar(20) ;
ALTER TABLE clientes ADD COLUMN year INT(4) ;
ALTER TABLE pelicula DROP COLUMN categoria;
18
DML
(Data Manipulation Language)
Incluye los comandos:
• INSERT
• SELECT
• UPDATE
• DELETE
19
INSERT
Utilizado para cargar lotes de datos en la base
de datos en una única operación.
Sintaxis
Use nombre_BD;
INSERT INTO Tabla (campo1, campo2, .., campoN)
VALUES (valor1, valor2, ..., valorN);
20
INSERT: Ejemplos en la tabla pelicula
Use Videoteca;
INSERT INTO pelicula (titulo, director, actor) VALUES( 'Blade Runner', 'Ridley
Scott', 'Harrison Ford' );
INSERT INTO pelicula (titulo, director, actor) VALUES( 'Alien', 'Ridley Scott',
'Sigourney Weaver' );
INSERT INTO pelicula (titulo, director, actor) VALUES( 'Doce monos', 'Terry
Gilliam', 'Bruce Willis' );
INSERT INTO pelicula (titulo, director, actor) VALUES( 'Contact', 'Robert
Zemeckis', 'Jodie Foster' );
INSERT INTO pelicula (titulo, director, actor) VALUES( 'Tron', 'Steven Lisberger',
'Jeff Bridges' );
INSERT INTO pelicula (titulo, director, actor) VALUES( 'La guerra de las galaxias',
'George Lucas', 'Harrison Ford' );
21
INSERT: Ejemplos en la tabla clientes
Use Videoteca;
INSERT INTO clientes (cliente, year) VALUES( 'Jorge Perez', 1980);
INSERT INTO clientes (cliente, year) VALUES( 'Juan Dominguez', 1950);
INSERT INTO clientes (cliente, year) VALUES( 'Jose Luis Lopez', 1967);
22
INSERT: Ejemplos en la tabla rentas
Use Videoteca;
INSERT INTO rentas (id_cliente, id_pelicula, fecha_inicio,fecha_fin) select
clientes.id_cliente,pelicula.id_pelicula,CURDATE(),CURDATE()+2 from clientes,pelicula where
clientes.cliente='Jorge Perez' and pelicula.titulo='Tron';
INSERT INTO rentas (id_cliente, id_pelicula, fecha_inicio,fecha_fin) select
clientes.id_cliente,pelicula.id_pelicula,CURDATE(),CURDATE()+2 from clientes,pelicula where
clientes.cliente='Jorge Perez' and pelicula.titulo='Doce monos';
INSERT INTO rentas (id_cliente, id_pelicula, fecha_inicio,fecha_fin) select
clientes.id_cliente,pelicula.id_pelicula,CURDATE(),CURDATE()+2 from clientes,pelicula where
clientes.cliente='Jorge Perez' and pelicula.titulo='Contact';
INSERT INTO rentas (id_cliente, id_pelicula, fecha_inicio,fecha_fin) select
clientes.id_cliente,pelicula.id_pelicula,CURDATE(),CURDATE()+2 from clientes,pelicula where
clientes.cliente='Juan Dominguez' and pelicula.titulo='Contact';
23
SELECT
Utilizado para consultar registros de la base de
datos que satisfagan un criterio determinado
Sintaxis
Use nombre_BD;
SELECT [DISTINCT]
<lista_columnas> | *
FROM <lista_tablas>
[WHERE <predicado>]
24
SELECT
Ejemplo
USE videoteca;
SELECT * FROM pelicula;
SELECT * FROM pelicula WHERE director='Ridley Scott';
SELECT titulo FROM pelicula WHERE director='Ridley Scott‘ ORDER BY titulo;
Select pelicula.titulo from pelicula,rentas where id_cliente=1 and
pelicula.id_pelicula=rentas.id_pelicula;
25
UPDATE
Utilizado para modificar los valores de los
campos y registros especificados
Sintaxis:
Use nombre_BD;
UPDATE Tabla SET
Campo1=Valor1,
Campo2=Valor2, ...
CampoN=ValorN
WHERE Criterio;
26
UPDATE
Ejemplo
USE videoteca;
UPDATE pelicula
SET titulo='Star Wars'
WHERE titulo='La guerra de las galaxias';
27
DELETE
Utilizado para eliminar registros de una tabla de una
base de datos.
Sintaxis:
DELETE FROM Tabla WHERE criterio;
Ejemplo
DELETE FROM pelicula where director=‘Ridley Scott’;
28