Universidad Nacional Federico Villarreal Escuela de Ingeniería de Sistemas Curso de Taller de Base de Datos Sesión 1: Lenguaje SQL Consultas Básicas - DML Ing. Ivan Crispin Sanchez Componentes del SQL Comandos SQL Cláusulas Operadores Sentencia Select Selecciona filas y columnas de una tabla Son tres las claúsulas básicas de la sentencia SELECT • SELECT especifica las columnas • FROM especifica las tablas • WHERE establece un criterio sobre las filas SELECT * Recupera todas las columnas SELECT sin WHERE recupera todas las filas Select * Select * From productos codProd desProd Precio Stock Proveedor A001 Camisas 65.50 50 M & H s.a. A002 Pantalones 75.00 100 Zeta Import s.a. A003 Corbatas 35.00 120 Diaz Hnos. s.a. A004 Casacas 115.50 160 M & H s.a. A005 Billeteras 30.00 15 M & H s.a. A006 Pañuelos 5.00 60 S & S s.a. A007 Sacos 150.00 30 K & B s.a. Eligiendo columnas Select desProd, Precio, Stock From productos desProd Precio Stock Camisas 65.50 50 Pantalones 75.00 100 Corbatas 35.00 120 Casacas 115.50 160 Billeteras 30.00 15 Pañuelos 5.00 60 150.00 30 Sacos Eligiendo filas Select * From productos Where Proveedor = ‘M & H s.a.’ codProd desProd Precio Stock Proveedor A001 Camisas 65.50 50 M & H s.a. A004 Casacas 115.50 160 M & H s.a. A005 Billeteras 30.00 15 M & H s.a. Eligiendo filas basados en rangos Select * From productos Where precio BETWEEN 100 AND 150 codProd desProd Precio Stock Proveedor A004 Casacas 115.50 160 M & H s.a. A007 Sacos 150.00 30 K & B s.a. Nota: También se puede utilizar NOT BETWEEN Eligiendo filas basadas en listas Select * From productos Where proveedor IN (‘M & H s.a.’, ‘K & B s.a.’) codProd desProd Precio Stock Proveedor A001 Camisas 65.50 50 M & H s.a. A004 Casacas 115.50 160 M & H s.a. A005 Billeteras 30.00 15 M & H s.a. A007 Sacos 150.00 30 K & B s.a. Nota: También se puede aplica IN en Subconsultas Eligiendo filas basadas en cadenas Select * From productos Where desProd LIKE ‘C%’ codProd desProd Precio A001 Camisas 65.50 A003 Corbatas 35.00 A004 Casacas 115.50 Stock Proveedor 50 M & H s.a. 120 Diaz Hnos. s.a. 160 M & H s.a. COMPARACIÓN DE SUBCADENAS El operador de comparación LIKE es usado para comparar cadenas parciales. Dos caracteres reservados son usados: ‘%’ (ó ‘*’ en algunas implementaciones) reemplaza un número arbitrario de caracteres y ‘_’ reemplaza un carácter arbitrario simple. Consulta 1: Recuperar todos los empleados cuyas direcciones están en Houston, Texas. Aquí, el valor del atributo ADDRESS tiene que contener la subcadena ‘Houston, Texas’. SELECT FNAME, LNAME FROM EMPLOYEE WHERE ADDRESS LIKE ‘%Houston,TX%’; Consulta 2: Recuperar todos los empleados que nacieron durante los años 50’s. Aquí, ‘5’ tiene que ser el octavo carácter de la cadena (de acuerdo al formato para la fecha dd-mm-aaaa), de manera que el valor de BDATE es ‘________5_’, con cada guión bajo reservando un lugar para cada carácter arbitrario simple. SELECT FNAME, LNAME FROM EMPLOYEE WHERE BDATE LIKE ‘________5_ ’; El operador LIKE nos permite considerar cada valor como atómico o indivisible de la misma manera en que SQL trata a sus cadenas. Distinct Select distict precio From productos codProd desProd Precio Stock Proveedor A001 Camisas 65.50 50 A002 Pantalones 75.00 100 Zeta Import s.a. A003 Corbatas 35.00 120 Diaz Hnos. s.a. A004 Casacas 150.00 160 M & H s.a. A005 Billeteras 30.00 15 M & H s.a. A006 Pantalones XQ 75.00 60 S & S s.a. A007 Sacos 150.00 30 K & B s.a. M & H s.a. Precio 65.50 75.00 35.00 150.00 30.00 NULLS EN CONSULTAS SQL SQL permite consultas que chequen si un valor es NULL (perdido, indefinido ó no aplicable) SQL usa IS ó IS NOT para comparar valores nulos porque este considera cada NULL distinto de otro valor NULL, por lo tanto la comparación por igualdad no es apropiada. Consulta: Recuperar los nombres de todos los empleados quienes no tienen supervisores. SELECT FNAME, LNAME FROM EMPLOYEE WHERE SUPERSSN IS NULL; EJERCICIOS EJERCICIOS EJERCICIOS EJERCICIOS EJERCICIOS EJERCICIOS EJERCICIOS EJERCICIOS