© 2007 Fundamentos de Bases de Datos L. Gómez1 Fundamentos de Bases de Datos El lenguaje estándar para acceso y manipulación de Bases de Datos: Structured.

Slides:



Advertisements
Presentaciones similares
SQL.
Advertisements

SQL Y BASES DE DATOS A TRAVÉS DE LA WEB
Introducción Lenguaje de manipulación de datos (Data Manipulation Language) Permite a los usuarios llevar a cabo las tareas de consulta o manipulación.
SQL Sigla del nombre “Structured Query Language”.
integridad referencial
Repaso DBD!!! (Es ahora o nunca)
SQL BAJO EL ENTORNO PHP/MYSQL MI JUAN PABLO TORRES HERRERA UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA ENSENADA Mayo de 2005.
Fernando Velasco
Unidad IV Objetivo de la Unidad:
Teórico: Structured Query Language
Consultas anidadas.
IBD Clase 15.
EL LENGUAJE ESTÁNDAR SQL
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
OPERACIONES DE RECUPERACIÓN. WHERE ciudad =‘Las Palmas’; de los suministradores Obtener el código y la situación de Las Palmas SELECT sn, situacion FROM.
Características Objeto Relacionales en Oracle Francisco Moreno Universidad Nacional.
MySQL M.C. Pedro Bello López.
SQL.
Lenguaje SQL (Structured Query Language)
SQL Lenguaje de consulta estructurado
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 5 Agregando Datos Usando Funciones de Grupo.
SQL Structured Query Language
SQL el Structured Query Language no es mas que un lenguaje estándar de comunicación con bases de datos.
Subconsultas Avanzadas
Facultad de Tecnología Informática
Bases de datos en la Web n Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web n Ventajas –Proporcionar.
Componentes sintácticos
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
COMANDOS SQL.
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
SQL: DDL Francisco Moreno & Carlos Mario Zapata. SQL:DDL DDL: Lenguaje de Definición de Datos Permite crear objetos en la Base de Datos Tipos de Objetos:
Diseñando la arquitectura de aplicaciones empresariales. Acceso al SQL Server.- Autenticación de usuario:
SQL (Structured Query Language / Lenguaje de consulta estructurado)‏
IBD CLASE 15. SQL Lenguaje de Consultas Estruturado (SQL) ◦Lenguaje de trabajo estándard para modelo relacional ◦Componentes ◦DDL: Data Definition Language.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
Autora: Francisca Montañez Muñoz
Consultas SQL (Base de Datos)
INSTRUCCIONES Elaboración de la Presentación:
Introducción a Bases de Datos en Microsoft Access Programación de Computadoras 2 Sección: P.
LENGUAJE SQL.
Bases de Datos Sql.
Structured Query Language (Lenguaje Estructurado de Consultas)
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Expresiones algebraicas equivalentes
Más ejemplos en SQL Francisco Moreno. S sn snombre situacion ciudad S1 Salazar 20 Londres S2 Jaramillo 10 París S3 Bernal30 París S4 Caicedo 20 Londres.
LENGUAJE ESTRUCTURADO DE CONSULTAS
COMANDOS DML DML son las siglas de Data Manipulation Language y se refiere a los comandos que permiten a un usuario manipular los datos en un repositorio,
INSTRUCCIONES Elaboración de la Presentación:
Prof. De Bases de Datos: Lcdo. Luis Peña. El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, Structured Query.
SQL Lenguaje Estructurado de Consulta MATERIA: diseñar sistemas de información ALUMNO: sarmiento flores Liliana Guadalupe GRUPO: 4° “A” TURNO: matutino.
 La sentencia SELECT recupera todas las columnas o un subconjunto de ellas de una tabla. Esto afecta a todas las filas de la tabla, a menos que especifiquemos.
Consultas SQL. SQL SQL es un lenguaje de consulta estructurado (Structured Query Languague). Se utiliza para: Eliminar Modificar Consultar La base de.
SQL (Structured Query Language) Lenguaje orientado a bases de datos y sobre todo, al manejo de consultas; el objetivo principal de SQL es la realización.
MSSQL SERVER CURSO BÁSICO 1. CONCEPTOS BASICOS DE SQL. DESCRIPCIÓN DEL CURSO. Sesión 3: Índices Uso, Creación, Tipos, Eliminación LENGUAJE DE CONSULTAS.
MSSQL SERVER CURSO BÁSICO 1. DESCRIPCIÓN DEL CURSO. Sesión 4: Sentencia Insert,Transacciones,Insert general, Insert Select * From, Sentencia Update,Update.
SQL es el lenguaje de comunicación entre el programa cliente y programa servidor; Oracle es un programa servidor, en el que está la base de datos propiamente.
Bases de Datos SQL.
SQL STRUCTURED QUERY LANGUAGE
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Unidad 6. Tema 4. Lenguaje de consultas SQL
1 John Freddy Duitama M. U.de.A. Facultad de Ingeniería Structured Query Language S.Q.L. John Freddy Duitama Muñoz Facultad de Ingeniería U.de.A. S.Q.L.
SQL: DDL.
Structure Query Languaje SQL. Introducción a SQL El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por.
DLM Transact SQL Sesión II Recuperación de información.
Querys a bases de datos con MS ACCESS. DEFINAMOS LOS TERMINOS: DML=Lenguaje de manipulación de datos Las sentencias DML permiten generar consultas para.
DML Transact SQL Sesión VI Trabajando con subconsultas.
Crear una tabla (create table - sp_tables - sp_columns - drop table) Para ver las tablas existentes creadas por los usuarios en una base de datos usamos.
CONSULTAS SQL POSTGRES.
Transcripción de la presentación:

© 2007 Fundamentos de Bases de Datos L. Gómez1 Fundamentos de Bases de Datos El lenguaje estándar para acceso y manipulación de Bases de Datos: Structured Query Language (SQL)

© 2007 Fundamentos de Bases de Datos L. Gómez2 Base de datos Northwind Esta BD contiene información de pedidos, clientes, empleados, productos, proveedores, etc. Las llaves primarias están en negritas

© 2007 Fundamentos de Bases de Datos L. Gómez3 Consultando la información de Northwind Para consultar los datos que están almacenados en una Base de datos se utiliza el lenguaje de manipulación de datos SQL Para obtener la información de las compañías que envían los paquetes se ejecuta el siguiente comando o query Atributos Tabla

© 2007 Fundamentos de Bases de Datos L. Gómez4 Ejemplo usando Select * La consulta más compacta es obtener todos los atributos de una tabla Por ejemplo para obtener toda la información de los clientes, utilizamos el siguiente query El (*) asterisco indica que se deben obtener todos los atributos del cliente: select * from Customers

© 2007 Fundamentos de Bases de Datos L. Gómez5 Ejecutando las consultas Utilizando Microsoft SQL Server Management Studio: Query Base de datos utilizada Ejecutar query Resultados

© 2007 Fundamentos de Bases de Datos L. Gómez6 SQL: STRUCTURED QUERY LANGUAGE Los ejemplos anteriores muestran un ejemplo sencillo del SQL, para hacer consultas más elaboradas se requiere conocer la sintaxis del SQL: SELECT [DISTINCT | ALL] {* | [columnExpression [AS newName]] [,...] } FROM TableName [alias] [,...] [WHEREcondition] [GROUP BYcolumnList] [HAVINGcondition] [ORDER BYcolumnList]

© 2007 Fundamentos de Bases de Datos L. Gómez7 El estatuto SELECT SELECT Especifica las columnas a mostrar en el resultado FROM Especifica la(s) tabla(s) a utilizar. WHERE Filtra renglones de acuerdo a la condición especificada. GROUP BY Forma grupos de renglones con el mismo valor en la columna HAVING Filtra grupos de acuerdo a la condición especificada. ORDER BY Especifica como ordenar el resultado.

© 2007 Fundamentos de Bases de Datos L. Gómez8 Mostrar solo algunos atributos Obtener solo algunos atributos y todos los registros de una tabla SELECT A 1, A 2, …, A n FROM r 1

© 2007 Fundamentos de Bases de Datos L. Gómez9 Evitar tuplas duplicadas Mostrar en que ciudades hay clientes Se repiten las ciudades Usar DISTINCT No se repiten

© 2007 Fundamentos de Bases de Datos L. Gómez10 Especificando una condición Obtener nombre de compañía y del contacto de los clientes que viven en London

© 2007 Fundamentos de Bases de Datos L. Gómez11 Especificando una condición con patrones Obtener nombre de compañía y del contacto de los clientes cuya ciudad comienza con B patrones % Ignora los valores de cero o más caracteres _ Ignora el valor de un caracter

© 2007 Fundamentos de Bases de Datos L. Gómez12 Especificando una condición con patrones Obtener nombre de compañía y del contacto de los clientes cuya ciudad tenga como penultima letra una e % cero o más caracteres _ 1 sólo caracter

© 2007 Fundamentos de Bases de Datos L. Gómez13 Especificando varias condiciones (OR) Obtener nombre de compañía y del contacto de los clientes cuya ciudad sea London o Buenos Aires

© 2007 Fundamentos de Bases de Datos L. Gómez14 Especificando varias condiciones (AND) Obtener nombre de compañía y del contacto de los clientes cuya ciudad sea London y que la persona contacto sea un Agente de ventas (Sales Agent)

© 2007 Fundamentos de Bases de Datos L. Gómez15 Uso de Conjuntos en una Condición (IN) Obtener nombre de compañía, nombre y titulo del contacto de los clientes cuya persona contacto sea un Agente de ventas (Sales Agent) o un representante de ventas (Sales Representative) o un asociado de ventas (Sales Associate)

© 2007 Fundamentos de Bases de Datos L. Gómez16 Conjuntos en una condición (NOT IN) Obtener nombre de compañía, nombre y titulo del contacto de los clientes cuya persona contacto NO sea un Agente de ventas (Sales Agent) o un representante de ventas (Sales Representative) o un asociado de ventas (Sales Associate)

© 2007 Fundamentos de Bases de Datos L. Gómez17 Verificando valores NULL Obtener Id del cliente, nombre de la compañía y la Region para aquellos clientes cuya Region sea NULL Null Valor que significa que al atributo no se le asignó un valor o se le asignó NULL

© 2007 Fundamentos de Bases de Datos L. Gómez18 Verificando valores NOT NULL Obtener Id del cliente, nombre de la compañía y la Region para aquellos clientes cuya Region tenga un valor asignado

© 2007 Fundamentos de Bases de Datos L. Gómez19 Ordenando los resultados (ascendente) Obtener el nombre del producto y su precio unitario ordenando del producto más barato al más caro El default es ordenar de menor a mayor

© 2007 Fundamentos de Bases de Datos L. Gómez20 Ordenando los resultados (descendente) Obtener el nombre del producto y su precio unitario ordenando del producto más caro al más barato Usar la clausula DESC

© 2007 Fundamentos de Bases de Datos L. Gómez21 Funciones en SQL Las siguientes funciones aplican a valores numéricos y no numéricos: COUNT Regresa cuantos valores (diferentes de NULL) existen en la columna especificada. COUNT(*) Regresa el número de registros en la tabla especificada MIN Regresa el mínimo de los contenidos de la columna especificada. Primero elimina NULLs MAX Regresa el máximo de los contenidos de la columna especificada. Primero elimina NULLs

© 2007 Fundamentos de Bases de Datos L. Gómez22 Funciones en SQL Las siguientes funciones aplican SOLO a valores numéricos : SUM Regresa la suma de los contenidos de la columna especificada. Primero elimina NULLs AVG Regresa el promedio de los contenidos de la columna especificada. Primero elimina NULLs NOTA: En algunos DBMSs, si existe un NULL puede marcar un error de ejecución

© 2007 Fundamentos de Bases de Datos L. Gómez23 Ejemplos del uso del count La tabla de Clientes tiene 91 registros Los primeros 2 ejemplos cuentan el número de registros que tienen un valor diferente de NULL en el atributo region. El Ejemplo 3, cuenta los registros que tienen valores NULL en region count(atributo) elimina atributos NULL, count(*) no elimina region con NULL

© 2007 Fundamentos de Bases de Datos L. Gómez24 COUNT eliminando valores duplicados Usar DISTINCT para eliminar regiones que se repiten. Comparar los resultados obtenidos con cada query

© 2007 Fundamentos de Bases de Datos L. Gómez25 Ejemplo de MIN y MAX Obtener el costo del producto mas barato Obtener el costo del producto más caro

© 2007 Fundamentos de Bases de Datos L. Gómez26 Ejemplo de AVG y SUM Obtener el precio promedio de todos los productos Obtener el número total de unidades en inventario de todos los productos

© 2007 Fundamentos de Bases de Datos L. Gómez27 Misceláneo: MIN, MAX, AVG Varias funciones en el estatuto Select

© 2007 Fundamentos de Bases de Datos L. Gómez28 Uso de Funciones IMPORTANTE Las funciones COUNT, MIN, MAX, SUM, AVG sólo pueden usarse en SELECT HAVING (se verá más adelante)

© 2007 Fundamentos de Bases de Datos L. Gómez29 GROUP BY En el reporte puede verse que tengo varios productos de la misma categoría. Si quisiera saber cuantos productos tengo de cada categoría como podría hacerle? Podría agrupar y contar todos los registros que tienen el mismo valor en CategoryID Por ejemplo, tengo 12 productos de categoría 1

© 2007 Fundamentos de Bases de Datos L. Gómez30 group by GROUP BY CategoryID Agrupa todos los registros que tienen el mismo valor en el atributo especificado (CategoryID) Se utiliza con otra función, por ejemplo COUNT para saber cuantos registros fueron agrupados SELECT CategoryID, count(CategoryID) FROM Products GROUP BY CategoryID ID 1 12 prod.

© 2007 Fundamentos de Bases de Datos L. Gómez31 Count y Group by Se obtiene el número de productos que existen de cada categoría

© 2007 Fundamentos de Bases de Datos L. Gómez32 ID o nombre? El tener un número de categoría no indica nada, es mejor poner el nombre de la categoría como en el resultado siguiente: Pero, como se escribe el query? Con un JOIN entre la llave foránea FK IDCategory y la llave Primaria Categories(IDCategory)

© 2007 Fundamentos de Bases de Datos L. Gómez33 Join El nombre de la categoría está en la tabla Categories y nuestra consulta utiliza la tabla de Productos Poner en el query las 2 tablas y especificar una condición donde la FK=PK

© 2007 Fundamentos de Bases de Datos L. Gómez34 Join entre 2 tablas Nombre del producto, Id de categoría y Nombre de la categoría FK PK

© 2007 Fundamentos de Bases de Datos L. Gómez35 Count y Group by número de productos existentes de cada categoría

© 2007 Fundamentos de Bases de Datos L. Gómez36 Count, Group by, Having número de productos existentes de cada categoría para los que el número de productos sea menor a 10

© 2007 Fundamentos de Bases de Datos L. Gómez37 Count, Group by, Having, alias número de productos existentes de cada categoría para los que el número de productos sea menor a 10 Se utilizan alias para las tablas

© 2007 Fundamentos de Bases de Datos L. Gómez38 SQL y Algebra Relacional SQL query tipico SELECT A 1, A 2, …, A n FROM r 1, r 2, …, r m WHERE P Es equivalente al siguiente estatuto de álgebra relacional: π A1, A2,…,A3 (σ P (r 1 x r 2 … x r m )).

© 2007 Fundamentos de Bases de Datos L. Gómez39 Operadores Union, Interseccion y Diferencia Operaciones con tablas

© 2007 Fundamentos de Bases de Datos L. Gómez40 SQL y Algebra Relacional El asterisco (*) se refiere a todos los atributos o columnas de la tabla. Algebra RelacionalSQL r U s(select * from r) union (select * from s) r – s(select * from r) except (select * from s) r x sSelect * from r,s σ P (r)Select * from r where P π A (r)Select A from r

© 2007 Fundamentos de Bases de Datos L. Gómez41 Union Obtener todos los países donde hay un cliente o un proveedor

© 2007 Fundamentos de Bases de Datos L. Gómez42 Interseccion Obtener todos los países donde hay proveedores y clientes

© 2007 Fundamentos de Bases de Datos L. Gómez43 Diferencia (Except) Obtener los países donde hay proveedores, pero no hay clientes Obtener los países donde sólo hay clientes y no hay provedores

© 2007 Fundamentos de Bases de Datos L. Gómez44 Ejemplos en SQL cse_majors U eee_majors: Select * from cse_majors union select * from eee_majors cse_majors – eee_majors: Select * from cse_majors minus select * from eee_majors cse_profs x cse_courses: Select * from cse_profs, cse_courses  CLASS=‘SR’ (cse_majors): Select * from cse_majors where class= ‘SR’ IdNameClass 1111Student1Fr 2222Student2So 3333Student3Jr 4444Student4Sr 5555Student5Gr IdNameClass 2222Student2So 4444Student4Sr 6666Student6Sr cse_majors eee_majors cse_courses CrsidCrstitle PR1Programacion 1 DB1Bases de Datos DB2Bases de Datos Avanzadas Cse_profs NameOffice Prof1Office1 Prof2Office2

© 2007 Fundamentos de Bases de Datos L. Gómez45 Ejemplos adicionales π ID, NAME (cse_majors): Select id, name from cse_majors cse_majors ∩ eee_majors: Select * from cse_majors intersect select * from eee_majors cse_profs teaches: Select * from cse_profs P, teaches T where P.name = T.name cse_profs cse_courses teaches: Select P.name, P.office, C.crsid, C.crstitle from cse_profs P, cse_courses C, teaches T where P.name = T.name and T.crsid = C.crsid IdNameClass 1111Student1Fr 2222Student2So 3333Student3Jr 4444Student4Sr 5555Student5Gr IdNameClass 2222Student2So 4444Student4Sr 6666Student6Sr cse_majors eee_majors cse_courses CrsidCrstitle PR1Programacion 1 DB1Bases de Datos DB2Bases de Datos Avanzadas teaches namecrsid Prof1PR1 Prof1DB1 Prof2DB2 Prof1DB2 Cse_profs NameOffice Prof1Office1 Prof2Office2

© 2007 Fundamentos de Bases de Datos L. Gómez46 Ejercicio 1 Obtenga el nombre de los empleados que tomaron el curso BD1 en Junio 25, 1990 emp(id, name) takes( id, crsid, date) course(crsid, name) SELECT name FROM emp E, takes T WHERE E.id = T.id AND T.date = ’25Jun90’ AND T.crsid = ‘BD1’

© 2007 Fundamentos de Bases de Datos L. Gómez47 Ejercicio SQL Quien es el Jefe del empleado ‘John Smith’ ? Obtenga el nombre y el departamento del jefe. Emp(id, nombre, dnum) Dept(dnum, nombre, idJefe) SELECT M.nombre, D.nombre FROM emp E, emp M, dept D WHERE E.nombre= ‘John Smith’ and E.dnum = D.dnum AND D.idJefe = M.id

© 2007 Fundamentos de Bases de Datos L. Gómez48 SQL Encuentre los empleados con los salarios mas altos emp(ID, NOMBRE, SALARIO, SUPERID, DNO) Select id, nombre, salario From emp Where salario = (select max(salario) from emp)

© 2007 Fundamentos de Bases de Datos L. Gómez49 Queries Anidados Encuentre los alumnos que tienen una especialidad (major) en computer science y en electrical engineering. select id, name from cse_majors where id in ( select id from eee_majors) Evaluacion: (1) query anidado (2) query externo utilizando los resultados del query interno

© 2007 Fundamentos de Bases de Datos L. Gómez50 Subqueries Encuentre los empleados que no han tomado algun curso SQL:select name from emp E where not exists (select * from takes T where T.id = E.id) Para cada tupla de empleado, el query anidado selecciona todas las tuplas de TAKES cuyo ID es igual al ID del empleado; Si el resultado del subquery está vacío, entonces significa que el empleado no ha tomado algun curso y entonces esa tupla se incluye en el resultado. EXISTS subquery: VERDADERO si el subquery SI regresa tuplas FALSO si el subquery no regresa tuplas NOT EXISTS subquery = NOT(EXISTS subquery) emp(id, name) takes( id, crsid, date) course(crsid, name)

© 2007 Fundamentos de Bases de Datos L. Gómez51 DB IdNameClass 1111Student1Fr 2222Student2So 3333Student3Jr 4444Student4Sr 5555Student5Gr IdNameClass 2222Student2So 4444Student4Sr 6666Student6Sr cse_majors ee_majors Cse_profs cse_courses Has_taught NameOffice Prof1Office1 Prof2Office2 CrsidCrstitle PR1Programacion 1 DB1Bases de Datos DB2Bases de Datos Avanzadas namecrsid Prof1PR1 Prof1DB1 Prof2DB2 Prof1DB2

© 2007 Fundamentos de Bases de Datos L. Gómez52 Definición de tablas en SQL(Create) Crear una relación o tabla CREATE TABLE ( [NOT NULL], …); ej. create table cse_majors (idchar(9)not null, namevarchar(24)not null, classchar(2)not null).

© 2007 Fundamentos de Bases de Datos L. Gómez53 Borrar, Modificar estructura Borrar una tabla DROP TABLE Agregar un atributo a una tabla ALTER TABLE ADD

© 2007 Fundamentos de Bases de Datos L. Gómez54 SQL- Modificar la estructura de la BD INSERT INTO VALUES (…) INSERT INTO DELETE FROM WHERE UPDATE SET Ej. update enrollment set grade = ‘E’ where grade = ‘I’ CREATE VIEW AS View – tabla virtual. CREATE SNAPSHOT AS Snapshot – Vista materializada