Vous êtes sur la page 1sur 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:


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

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 V1 Pnombre Surez Status 20 Ciudadad 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 V1 V1 V2 Pno P1 P3 P1 Cant 300 400 300

V2 V3 V4
V4

P2 P2 P4
P5

400 400 300


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
Rojo Verde Azul

Ciudad
Guadalajara Monterrey 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 V1 Pno P4 Cant 200

V4

P4

300

El resultado del JOIN es:

Vno V1 V4

Vnombre Surez Lpez

Status 20 20

Ciudad Guadalajara Guadalajara

Pno P4 P4

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

Vous aimerez peut-être aussi