Está en la página 1de 41

Tomando como referencia el libro de C.J.

Date
Introduccin a los Sistemas de Bases de Datos.

SQL

Structured Query Language


Las

consultas ms simple SQL requieren


tuplas que satisfagan alguna condicin.
Estas consultas simples, como la mayora de las
consultas SQL utilizan tres palabras reservadas,
SELECT, FROM y WHERE.

La clusula SELECT indica los


atributos de las tuplas que se desean
consultar. Esto es similar a una
proyeccin en algebra relacional.
(* indica todos los atributos).

La clusula FROM hace referencia a


la(s) relacion(es) sobre las cuales se
refiere la consulta.

La clusula WHERE es una

condicin, tal como una condicin de


seleccin en lgebra relacional.

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 ledo como acceder al monitor de
mysql de la gua de ejercicios e
investigar los tipos de datos soportados
por Mysql.
5

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.

Estas son las relaciones


que conformarn la
base de datos Empresa

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 trmino 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 definicin puede ir en la misma lnea de la definicin


del atributo seleccionado para ser llave. RECUERDEN QUE LAS LLAVES
PRIMARIAS NO ACEPTAN VALORES NULOS, POR ESO LA DECLARACIN NOT
NULL
Cuando se utilizan tipos de datos carcter se escribe entre parntesis la longitud de
los mismos.

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

Definiendo la tabla
Suministra:

Observar que la llave primaria al ser compuesta se define


despus de la definicin de los atributos .
En esta tabla existen dos llaves forneas que son
primarias: la primera en la relacin Proveedor y la
segunda en la relacin 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

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

Ejemplo:

Insert into Proveedor (Vno, Vnombre, Status,


Ciudad) values (V1, Surez, 20, Guadalajara);
Nota: Si ya conocemos los atributos de la relacin
y el orden en que estn definidos la consulta
puede quedar de la siguiente manera:
Insert into Proveedor values (V1, Surez, 20,
Guadalajara);

12

Insertar datos en Parte


Observar como los
datos alfanumricos
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

Insertar datos en
Suministra

Insert into Suministra (Vno,


Pno, Cant) values (V1, P1,
300);
O
Insert into Suministra values
(V1, P1, 300);
14

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 relacin, el conjunto de
valores de los atributos debern ir en el
orden definidos separados por
tabulador.

15

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

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

Actualizando datos

En ciertas situaciones se puede desear


cambiar un valor en una tupla sin cambiar
todos los valores en la tupla. Para este
propsito 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 condicin;

18

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

Para comprobar los cambios se efectan 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

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

Si se desea corroborar que se ha


borrado al proveedor Camacho,
Realizar la siguiente consulta:
mysql> Select Vnombre From
Proveedor;

22

Delete from Proveedor;

Si se ejecuta esta consulta se borran


todas las tuplas de la relacin
Proveedor.

23

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

El resultado de la
consulta es:
Vno

Pnombre

Status

Ciudadad

V1

Surez

20

Guadalajara

V4

Lpez

20

Guadalajara

25

Obtener los suministros (Suministra)


cuya cantidad est entre 300 y 750
inclusive.

Select *
From Suministra
Where cant>= 300 and cant<= 750;

26

El resultado de la
consulta es:
Vno

Pno

Cant

V1

P1

300

V1

P3

400

V2

P1

300

V2

P2

400

V3

P2

400

V4

P4

300

V4

P5

400

27

Obtener todas las ocurrencias de


Parte.Color y Parte.Ciudad

Select distinct Color, Ciudad


From Parte;

Observar que en esta consulta no hay


una condicin.
28

El resultado de la
consulta es:
Color

Ciudad

Rojo

Guadalajara

Verde

Monterrey

Azul

Mxico

29

JOIN
El concepto de tabla reunida (o relacin
reunida) se incorpor en SQL para que
los usuarios pudieran especificar una tabla
resultante de una operacin de reunin en
la clasula FROM de una consulta.
Recuerden que para realizar el JOIN debe
existir un atributo en comn entre las
tablas participantes.
30

Obtener el nombre de los proveedores


que suministran la pieza con el cdigo
P4.

Select Vnombre
From Proveedor JOIN Suministra ON
Proveedor.Vno= Suministra.Vno
Where Suministra.Pno=P4;

31

El resultado de la
condicin Where es:
Vno

Pno

Cant

V1

P4

200

V4

P4

300

El resultado del JOIN es:

Vno

Vnombre

Status

Ciudad

Pno

Cant

V1

Surez

20

Guadalajara

P4

200

V4

Lpez

20

Guadalajara

P4

300

32

Y el resultado de Select:
Vnombre
Surez
Lpez

33

LIKE

MySQL posee capacidades estndar


para utilizar patrones as como tambin
una forma de patrones basada en
expresiones regulares extendidas
Los patrones SQL permiten emplear el
carcter '_' para representar
coincidencia con un carcter individual y
'%' .

34

Encontrar los nombres de los


proveedores cuya ciudad donde radican
comience con G.

Select Vnombre
From Proveedor
Where Ciudad LIKE G%;

35

El resultado de la
consulta es:
Vnombre
Surez
Lpez

36

Encontrar los nombres de los


proveedores que contengan la letra u

Select Vnombre
From Proveedor
Where Vnombre LIKE %u%;

37

El resultado de la
consulta es:
Vnombre
Surez
Velzquez

38

Encontrar los nombres de los


proveedores que contengan
exactamente 5 caracteres Utilizando el
guion (_) por cada carcter .

Select Vnombre
From Proveedor
Where Vnombre LIKE _____;

39

El resultado de la
consulta es:
Vnombre
Lpez

40

Esta presentacin es una pauta para


iniciar con el lenguaje SQL. Recuerden
que tienen una gua de ejercicios y una
antologa. As como cualquier libro de
bases de datos que se encuentra en la
bibliografa bsica del programa o un
libro de mysql.

41

También podría gustarte