1. Tomando como referencia el libro de C.J.Date
Introducción a los Sistemas de Bases de Datos.
1
2. SQL
“Structured Query Language”
•Las consultas más simple SQL requieren
tuplas que satisfagan alguna condición.
Estas consultas simples, como la mayoría de las
consultas SQL utilizan tres palabras
reservadas, SELECT, FROM y WHERE.
2
3. La cláusula SELECT indica los
atributos de las tuplas que se desean
consultar. Esto es similar a una
proyección en algebra relacional.
(* indica “todos los atributos”).
3
4. La cláusula FROM hace referencia a
la(s) relacion(es) sobre las cuales se
refiere la consulta.
La cláusula WHERE es una
condición, tal como una condición de
selección en álgebra relacional.
4
5. Antes de comenzar a realizar consultas
en SQL, se debe definir la base de
datos y las relaciones que la conforman.
Es importante que antes de continuar
haber leído como acceder al monitor de
mysql de la guía de ejercicios e
investigar los tipos de datos soportados
por Mysql.
5
6. Definiendo una base de datos en
SQL
Suponer que se desea definir o crear la base de datos
Empresa.
Lo primero que se debe hacer desde el monitor de mysql es
crear la base de datos y ponerla en uso para comenzar a
definir las relaciones (tablas)
mysql> Create database Empresa;
El comando Create database literalmente indica Crear la
base de datos
Si se quiere visualizar si existe la base de datos escribir el
comando:
Mysql> show databases;
Se deben listar las bases de datos existentes y entre ellas
Empresa. 6
7. Estas son las relaciones
que conformarán la base
de datos Empresa
7
8. Definiendo la tabla proveedor.
Antes de empezar a definir las tablas, se debe poner en uso la base de datos a la
que pertenecen
Mysql> use Empresa;
CREATE TABLE nombre_table( lista de atributos (nombre y tipo del atributo),
llaves o restricciones);
Para indicar el término de una orden o comando en mysql se escribe ;
Create table Proveedor(
Vno varchar(3) not null primary key,
Vnombe varchar(20),
Status int,
Ciudad varchar(15));
Si la llave primaria es simple su definición puede ir en la misma línea de la definición
del atributo seleccionado para ser llave. RECUERDEN QUE LAS LLAVES
PRIMARIAS NO ACEPTAN VALORES NULOS, POR ESO LA DECLARACIÓN NOT
NULL
Cuando se utilizan tipos de datos carácter se escribe entre paréntesis la longitud de
los mismos.
8
9. Definiendo la tabla parte:
Create table Parte(
Pno varchar(3) not null primary key,
Pnombre varchar(12),
Color varchar (10),
Peso int,
Ciudad varchar(15));
9
10. Definiendo la tabla Suministra:
Observar que la llave primaria al ser compuesta se define
después de la definición de los atributos .
En esta tabla existen dos llaves foráneas que son
primarias: la primera en la relación Proveedor y la
segunda en la relación Parte.
Create table Suministra(
Vno varchar(3) not null,
Pno varchar(3) not null,
Cant int,
Primary key (Vno,Pno),
Foreign key (Vno) references
Proveedor(Vno),
Foreign Key (Pno) references
Parte(Pno));
10
11. Insertando datos en las
realciones
La sentencia Insert es una solicitud
para insertar una tupla.
Insert into nombre_tabla (lista
atributos) values (lista de valores);
11
12. Ejemplo:
Insert into Proveedor (Vno, Vnombre, Status, Ciudad)
values (‘V1’, ‘Suárez’, 20, ‘Guadalajara’);
Nota: Si ya conocemos los atributos de la relación y el
orden en que están definidos la consulta puede quedar
de la siguiente manera:
Insert into Proveedor values (‘V1’, ‘Suárez’, 20,
‘Guadalajara’); 12
13. Insertar datos en Parte
Observar como los
datos alfanuméricos
van entre comillas
simples.
Insert into Parte (Pno, Pnombre, Color, Peso, Ciudad)
values (‘P1’, ‘Tuerca’, ‘Rojo’, 12, ‘Guadalajara’);
O
Insert into Parte values (‘P1’, ‘Tuerca’, ‘Rojo’, 12,
‘Guadalajara’);
13
14. Insertar datos en Suministra
Insert into Suministra (Vno, Pno,
Cant) values (‘V1’, ‘P1’, 300);
O
Insert into Suministra values (‘V1’,
‘P1’, 300);
14
15. Load Data Infile
Otra manera de introducir datos a las
tablas, es creando un archivo txt, el cual
debe ser almacenado en la carpeta bin
de mysql, este archivo contendrá las
tuplas de una relación, el conjunto de
valores de los atributos deberán ir en el
orden definidos separados por
tabulador.
15
16. Ejemplo:
Load Data Infile “datosProveedor.txt”
into table Proveedor;
Crear el archivo txt con 5 filas, cada
valor debe estar separado por
tabulador, guardar el archivo txt con el
nombre datosProveedr.txt en la carpeta
BIN de Mysql.
El archivo lo pueden crear desde el bloc
de notas.
16
17. Deben estar en el orden correcto, tal como se muestra en la
tabla.
Es importante que la base de datos este en USO.
mysql> use Empresa;
mysql>Load Data Infile “datosProveedor.txt” into table
Proveedor;
17
18. Actualizando datos
En ciertas situaciones se puede desear
cambiar un valor en una tupla sin
cambiar todos los valores en la tupla.
Para este propósito puede usarse la
sentencia Update, se pueden elegir las
tuplas que se van a actualizar usando
una consulta.
Update nombre_tabla set conjunto de
atributos a modificar where condición;
18
19. Ejemplos:
Suponer que el proveedor Camacho se
traslada a la ciudad de Xalapa
Update Proveedor set ciudad=‘Xalapa’
where Pnombre=‘Camacho’;
El peso del tornillo azul ha sido
modificado a 14 libras:
Update Parte set Peso=14 where
Pnombre=‘Tornillo’ and Color=‘Azul’;
19
20. Para comprobar los cambios se efectúan las
siguientes consultas desde el monitor de
mysql.
A) mysql> Select *
> From Proveedor
> Where Pnombre= ‘Camacho’;
Y
b) mysql> Select *
> From Parte
> Where Pnombre=‘Tornillo’
and Color=‘Azul’;
20
21. Borrando tuplas
Delete from R where C;
Ejemplo:
El proveedor Camacho ha dejado de trabajar
para la empresa:
Delete from Proveedor where
Pnombre=‘Camacho’;
21
22. Si se desea corroborar que se ha
borrado al proveedor Camacho,
Realizar la siguiente consulta:
mysql> Select Vnombre From
Proveedor;
22
23. Delete from Proveedor;
Si se ejecuta esta consulta se borran
todas las tuplas de la relación
Proveedor.
23
24. Consultas
Obtener los datos de los proveedores
que viven en Guadalajara:
Select *
From Proveedor
Where Ciudad=‘Guadalajara’;
Recuerden que el Select es el proyectar
del álgebra (si se pone el * indica que se
quiere consultar la tupla completa)
24
25. El resultado de la consulta
es:
Vno Pnombre Status Ciudadad
V1 Suárez 20 Guadalajara
V4 López 20 Guadalajara
25
26. Obtener los suministros (Suministra)
cuya cantidad esté entre 300 y 750
inclusive.
Select *
From Suministra
Where cant>= 300 and cant<= 750;
26
28. Obtener todas las ocurrencias de
Parte.Color y Parte.Ciudad
Select distinct Color, Ciudad
From Parte;
Observar que en esta consulta no hay
una condición.
28
29. El resultado de la consulta
es:
Color Ciudad
Rojo Guadalajara
Verde Monterrey
Azul México
29
30. JOIN
El concepto de tabla reunida (o relación
reunida) se incorporó en SQL para que
los usuarios pudieran especificar una tabla
resultante de una operación de reunión en
la claúsula FROM de una consulta.
Recuerden que para realizar el JOIN debe
existir un atributo en común entre las
tablas participantes.
30
31. Obtener el nombre de los proveedores
que suministran la pieza con el código
P4.
Select Vnombre
From Proveedor JOIN Suministra ON
Proveedor.Vno= Suministra.Vno
Where Suministra.Pno=‘P4’;
31
32. El resultado de la condición
Where es:
Vno Pno Cant
V1 P4 200
V4 P4 300
El resultado del JOIN es:
Vno Vnombre Status Ciudad Pno Cant
V1 Suárez 20 Guadalajara P4 200
V4 López 20 Guadalajara P4 300
32
34. LIKE
MySQL posee capacidades estándar
para utilizar patrones así como también
una forma de patrones basada en
expresiones regulares extendidas
Los patrones SQL permiten emplear el
carácter '_' para representar
coincidencia con un carácter individual y
'%' .
34
35. Encontrar los nombres de los
proveedores cuya ciudad donde radican
comience con G.
Select Vnombre
From Proveedor
Where Ciudad LIKE ‘G%’;
35
39. Encontrar los nombres de los
proveedores que contengan
exactamente 5 caracteres Utilizando el
guion (_) por cada carácter .
Select Vnombre
From Proveedor
Where Vnombre LIKE ‘_____’;
39
41. Esta presentación es una pauta para
iniciar con el lenguaje SQL. Recuerden
que tienen una guía de ejercicios y una
antología. Así como cualquier libro de
bases de datos que se encuentra en la
bibliografía básica del programa o un
libro de mysql.
41