Base de Datos El lenguaje SQL.

Slides:



Advertisements
Presentaciones similares
SQL.
Advertisements

Consultas en Visual FoxPro
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
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA
Fernando Velasco
Teórico: Structured Query Language
SQL G r u p o
Consultas anidadas.
EL LENGUAJE ESTÁNDAR SQL
Unidad 3 Lenguaje SQL Contenidos Que es SQL ? Estructura de SQL
Lenguaje Estructurado de Consultas (Structured Query Language – SQL)
MySQL M.C. Pedro Bello López.
SQL Lenguaje de consulta estructurado
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
Integrantes: Peter velazques Andres heredia Juan Mendez
Componentes sintácticos
Dr. Mario Rossainz López Aplicaciones WEB Primavera 2015.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 11 Creando Vistas.
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 (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.
Mayo de 2009Dos Ideas - La visión de Sistemas desde el Desarrollo Manipulación de Datos Conceptos básicos.
Programación en Visual Basic Lección #8: SQL Por Antonio F. Huertas.
CONSULTAS SENCILLAS A LA BASE DE DATOS
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.
1 Módulo 4 Sentencias SQL. 2 Objetivos Generales Implementar una base de datos Definir los campos, registros, tablas que se encuentran relacionadas en.
LENGUAJE SQL.
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 14 Uso de Operadores de Conjuntos.
Ingeniería de Sistemas y Modelamiento.
LENGUAJE ESTRUCTURADO DE CONSULTAS
SQL Sigla del nombre “Structured Query Language”.
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:
Para crear una vista debemos utilizar la sentencia CREATE VIEW, debiendo proporcionar un nombre a la vista y una sentencia SQL SELECT válida. CREATE.
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.
Diseña y administra base de datos avanzadas
 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.
1 Base de Datos El lenguaje SQL. 2 Fundamentos de lenguajes de consulta El lenguaje SQL DDL Creación de objetos Modificación Destrucción DML Consultas.
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.
Qué es SQL? Sentencias básicas
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 El lenguaje de consulta estructurado o SQL (por sus siglas en inglés structured query language) es un lenguaje declarativo de acceso a bases de datos.
(Lenguaje de consulta estructurado)
Usuarios y privilegios
SQL es un estándar internacional para trabajar con bases de datos, que consta de dos partes: una parte para manipular datos y una parte para definir tipos.
FUNDAMENTOS INFORMÁTICOS
SQL Lenguaje Estructurado de Consultas. Structured Query Lenguaje (SQL). Lenguaje de acceso a bases de datos. Proyecto de Investigación de IBM. La mayoria.
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.
SQL STRUCTURED QUERY LANGUAGE
AA Gerardo Morgade Donato AA Isnel Leyva Herbella.
Unidad 6. Tema 4. Lenguaje de consultas SQL
INTEGRACION DE LAS TECNOLOGIAS DE LA INFORMACION Y COMUNICACION Implementación de base de datos (Lenguaje de manipulación de datos) Ing. Linda Masias Morales.
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.
6 Triggers ORACLE - III Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega Bases de datos II I-2014 Universidad del Cauca Ing. Wilson Ortega.
Selección Condicionada de Filas Uso de la cláusula WHERE La cláusula WHERE restringe las columnas que retorna una consulta según la condición que se imponga.
SQL Lenguaje de Consulta estructurado (structured query language) Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar.
COMANDOS SQL. ¿QUÉ ES SQL? El lenguaje de consulta estructurado es un lenguaje declarativo que permite la creación, acceso e interacción de bases de datos.
Transcripción de la presentación:

Base de Datos El lenguaje SQL

Contenido del Capitulo Fundamentos de lenguajes de consulta El lenguaje SQL DDL Creación de objetos Modificación Destrucción DML Consultas Altas Modificaciones Borrados

Comandos SQL DDL CREATE DROP ALTER DML SELECT INSERT UPDATE DELETE

DML – SELECT SELECT Sentencia única de consulta en bases de datos relacionales Implementación de operaciones vistas en Algebra Relacional (selección , proyección, join, etc.) Permite obtener datos de varias tablas simultáneamente. Los resultados siempre serán conjuntos de tuplas : No necesariamente se devuelven en orden. La ejecución de esta sentencia NO MODIFICA dato alguno ni genera cambios en la base. Puede afectar el rendimiento general del DBMS si se hace descuidadamente

Formato de la sentencia : DML – SELECT Formato de la sentencia : SELECT [ALL|DISTINCT] columnas deseadas FROM tablas [WHERE condición] [GROUP BY lista-nombre-columna o lista-posición] [HAVING condición de grupo] [ORDER BY nombre-columna o posición] El Select es la proyección El from son las relaciones de donde obtener los datos El Where es la condición de selección ALL todos los valores DISTINCT unicidad de los resultados. 7

DML – SELECT Seleccionando todas las columnas Ejemplo: SELECT * FROM SECCIONES IdSec NomSec IdSecSup 1 Directorio 2 Tecnologia 5 Marketing 4 Ventas 3 Finanzas No existe condición, trae TODAS las tuplas, diferencias con el algebra relacional: acá no son conjuntos, ergo podemos tener repedidos!! Hasta 256 tablas en el from OJO EL COSTO! 7

DML – SELECT Seleccionando columnas específicas (proyección) Ejemplo: SELECT NomEmp, Direccion FROM EMPLEADOS NomEmp Direccion Juan Perez Sarando 619 apto. 101 Roberto Martínez Tiburcio Gomez 1420 Sandra Perez Of. 17 m. S/N Mariana de Leon Ruta 8 Km. 28 Paraje El Grillo Andres Gomez Cno. Del Andaluz Km. 8 ½ No existe condición, trae TODAS las tuplas, diferencias con el algebra relacional: acá no son conjuntos, ergo podemos tener repedidos!! Hasta 256 tablas en el from OJO EL COSTO! 7

DML – SELECT Seleccionando valores únicos: Ejemplo: SELECT cuenta FROM Movimientos CUENTA 10002 10004 10003 SELECT DISTINCT cuenta FROM Movimientos CUENTA 10002 10004 10003 El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – SELECT : WHERE La cláusula WHERE: Especifica un criterio de selección de registros a ver (selección) SELECT lista_de_columnas FROM nombre_de_tablas WHERE condición SELECT cliente, cuenta, producto FROM cuentas WHERE producto = 1 CLIENTE CUENTA PRODUCTO 10002 100 1 10002 125 1 10004 789 1 SELECT cliente, cuenta, producto FROM cuentas WHERE producto <> 1 CLIENTE CUENTA PRODUCTO 10015 110 6 10003 351 5 10004 454 2 El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – SELECT : WHERE Delimitadores En Strings o Fechas suelen ser comillas dobles o apóstrofes Se usan para delimitar los literales usados en el SELECT y evitar la confusión entre el nombre de una columna y su contenido: Ej: FecNacimiento = ’01/01/2001’ apellido = ‘PEREZ’ CI >= “1000000-0” SELECT cliente, nombre FROM clientes WHERE apellido = ‘PEREZ’ CLIENTE APELLIDO 10007 PEREZ 10008 PEREZ 10001 PEREZ El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Operadores Relacionales Significado Simbolo Ejemplo Igual = Cuenta = 12003 No igual <> , != Cuenta <> 12003 Mayor que > FecNac > ’01/01/2001’ Menor que < FecNac < ’01/01/2001’ Mayor o igual >= Saldo >= 12000 Menor o igual <= Saldo <= 12000 Pertenece a una lista IN Apellido IN (‘PEREZ’,’MARTINEZ’) En un rango de valores BETWEEN Sueldo BETWEEN 12000 and 24000 Contiene un string LIKE Nombre LIKE ‘%JUAN%’ El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Uso del NULL SELECT persona, direccion FROM personas WHERE direccion IS NULL PERSONA DIRECCIÓN 10045 10063 10036 SELECT persona, direccion FROM personas WHERE direccion IS NOT NULL PERSONA DIRECCIÓN 10015 18 DE JULIO 2323 10034 18 DE JULIO 2325 10030 18 DE JULIO 2324 El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. Dependiendo del programa de consulta puede mostrar NADA o la palabra NULL 7

DML – Operadores Lógicos Significado AND Devuelve TRUE (verdadero) cuando ambas condiciones son verdaderas OR Devuelve TRUE (verdadero) cuando al menos UNA de las 2 condiciones es verdadera NOT Devuelve la negación de la condición IMPORTANTE : Los operadores poseen prioridad de asociación. El AND posee la más alta prioridad. Si necesitamos condiciones complejas con AND y OR debemos utilizar PARÉNTESIS. El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Operadores Lógicos 1) Listar las personas que viven en “La Paloma” (en el departamento de Rocha). SELECT persona, nombre FROM personas WHERE ciudad = “La Paloma” AND departamento = “Rocha” 2) Listar las personas que viven en Rocha o Durazno. SELECT persona,nombre FROM personas WHERE departamento = “Rocha” OR departamento = “Durazno” El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Operadores Lógicos 3) Ejemplo combinado de AND y OR ¿Cuales son los títulos de las películas del estudio “MGM” que fueron filmadas luego de 1970 ó cuya duración es menor a 90 minutos? Incorrecto : SELECT NomPelicula FROM Peliculas WHERE anio > 1970 OR duracion < 90 AND NomEstudio = ‘MGM’ Error : el AND tiene mayor precedencia , el compilador entiende anio > 1970 OR (duracion < 90 AND NomEstudio = ‘MGM’) Correcto : WHERE (anio > 1970 OR duracion < 90) AND NomEstudio = ‘MGM’ El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Más búsquedas Buscando en un rango de valores (BETWEEN) 2 Ejemplos equivalentes: SELECT fecha,cuenta,importe FROM movimientos WHERE sucursal = 1 AND (importe >= 10000 AND importe <= 20000) WHERE sucursal = 1 AND importe BETWEEN 10000 AND 20000 El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Más búsquedas Buscando en un conjunto de valores (IN) 2 Ejemplos equivalentes: SELECT cliente,nombre FROM clientes WHERE cliente = 10052 OR cliente = 10035 OR cliente = 10028 OR cliente = 10068 WHERE cliente IN (10052,10035,10028,10068) El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Más búsquedas : LIKE (1) Uso del operador LIKE : busquedas por caracteres o patrones Mascara Significado % (En Access es *) Equivale a cero o más caracteres cualesquiera. _ (guión inferior) Representa a UN caracter cualquiera. [v1-v2] Intervalo de valores posibles, una ocurrencia ^[v1-v2] Excluye el intervalo de valores, una ocurrencia El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Uso de LIKE (2) Búsquedas en Strings (char, varchar, char varying, etc.) Ej: Nombres que finalizan en Pérez SELECT cliente, nombre FROM clientes WHERE nombre LIKE “%Perez” CLIENTE NOMBRE 10002 Juan Perez 10013 Pedro Perez 10016 Alberto Perez 10012 Francisco Perez El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Uso de LIKE (3) SELECT cliente,nombre FROM clientes Búsquedas en Strings (char, varchar, char varying, etc.) Nombres que terminan en Pere y el último carácter es cualquiera: SELECT cliente,nombre FROM clientes WHERE nombre LIKE “%Pere_” CLIENTE NOMBRE 10002 Juan Perez 10013 Pedro Perez 10016 Alberto Perez 10012 Francisco Perez 10022 Luiz Peres El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Uso de LIKE (4) Otros ejemplos SELECT cliente,nombre FROM clientes WHERE Nombre LIKE “[a-zA-Z]%Pere_” CLIENTE NOMBRE 10002 Juan Perez 10013 Pedro Perez 10016 Alberto Perez 10012 Francisco Perez 10044 Frank Peret 10022 Luiz Peres SELECT cliente,nombre FROM clientes WHERE Nombre LIKE “^[A-J]%Pere_” CLIENTE NOMBRE 10013 Pedro Perez 10022 Luiz Peres El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – La cláusula ORDER BY SELECT no devuelve los registros en algun orden preestablecido ORDER BY indica en que orden quiero que muestre el resultado Pueden ser varias columnas, en ese caso se respeta el orden de izquierda a derecha. ASC o DESC indican Ascendente o Descendente, ASC es el default Sintaxis SELECT campos FROM tablas [WHERE condición] ... ORDER BY nombre-columnas o posiciones [ASC | DESC] El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – La cláusula ORDER BY Un ejemplo SELECT cliente, nombre FROM clientes WHERE nombre LIKE “%Perez” ORDER BY nombre ASC CLIENTE NOMBRE 10016 Alberto Perez 10034 Francisco Perez 10012 Francisco Perez 10002 Juan Perez 10022 Luiz Peres 10013 Pedro Perez El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Operadores Aritméticos Permiten formar expresiones complejas Utilidad : Devolver valores calculados (no incluidos en campos) Expresar condiciones (en WHERE o HAVING) Nuevos campos en Vistas Operadores: + suma - resta * multiplicaciòn / división % módulo (resto) El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Operadores Aritméticos Ejemplo 1 “Necesitaria ver la cotizacion de las monedas y cuanto sería si subieran todas un 5%” SELECT moneda, cotización, cotización * 1.05 FROM cotizaciones ORDER BY cotizacion DESC MONEDA COTIZACION (expression) 1 15,70 16.485 4 2,70 2.835 3 2,20 2.31 5 0,89 0.9345 El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Operadores Aritméticos Ejemplo 2 “Quiero todas los articulos cuyo precio de compra sea menor al 80% del precio de venta” Select * From ARTICULOS Where precio_compra < (precio_venta * 0.8) El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Etiquetas Los campos calculados devueltos en SELECT no poseen nombre : se les puede inventar un nombre “on-the-fly” select moneda, cotización, ‘nueva_cotizacion’ = cotización * 1.05 from cotizaciones where moneda <> moneda_val ORDER BY nueva_cotizacion DESC Tambien pueden utilizarse para presentar otro nombre para el campo : select “Codigo Articulo” = IdArt, “Nombre Articulo” = NomArt from ARTICULOS where …. El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Joins Permite recuperar información de varias tablas vinculadas lógicamente entre si. Implementa la operación Join del Algebra Relacional. Ej: “Quiero saber todos los datos de los Clientes más sus Nº de cuenta” Tengo las tablas : CLIENTES (nro_cliente, nom_cliente, direccion) CUENTAS (nro_cliente,nro_cuenta, cod_moneda) Consulta con Join : SELECT Clientes.*, Cuentas.nro_cuenta FROM Clientes , Cuentas WHERE Clientes.nro_cliente = Cuentas.nro_cliente Listamos todos los datos de Clientes + Nº de Cuenta Incluimos 2 tablas en el FROM El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. Obligatorio : condición de Join 7

DML – Joins : ¿ Que son ? Es la implementación del Producto Cartesiano (T1 x T2) + Selección Si no se especifica una condición el conjunto resultante no posee sentido práctico. Cuentas Clientes Nro_cliente Nom_cliente Dirección 1000 Ana Dir1 1100 Pedro Dir2 1200 Maria Dir3 1300 Roberto Dir4 Nro_cliente Nro_cuenta Cod_moneda 1000 3521 1 1200 3687 Nro_cliente Nom_cliente Dirección Nro_cuenta Cod_moneda 1000 Ana Dir1 3521 1 1200 3687 1100 Pedro Dir2 Maria Dir3 1300 Roberto Dir4 Select * From Clientes, Cuentas El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. Solo tienen sentido los que coinciden en nro_cliente 7

DML – Joins : ¿ Que son ? Aplicando la condición de Join : Select * From Clientes, Cuentas Where Clientes.nro_cliente = Cuentas.nro_cliente Nro_cliente Nom_cliente Dirección Nro_cuenta Cod_moneda 1000 Ana Dir1 3521 1 1200 Maria Dir3 3687 El campo Nro_cliente aparece 2 veces : uno por cada tabla donde aparece Solucion : Exponer en el SELECT solo los campos que queremos ver Utilizar ALIAS (opcional) El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Joins : Alias Son un modo de “renombrar” las tablas para mayor comodidad Permite hacer más legible joins de varias tablas. Ej: “Listado de todos los Clientes con su Nº de cuenta y moneda” SELECT CLI.nom_cliente, CU.nro_cuenta, M.nom_moneda FROM Clientes CLI, Cuentas CU, Monedas M WHERE CLI.nro_cliente = CU.nro_cliente AND CU.cod_moneda = M.cod_moneda El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7

DML – Sintaxis ANSI del Join SELECT Cuentas.*, Clientes.nro_cliente, Clientes.nom_cliente FROM Clientes, Cuentas WHERE Cuentas.nro_cliente = Clientes.nro_cliente and Clientes.nom_cliente like ‘%PEREZ%’; El segundo ejemplo muestra cuentas que tuvieron Movimientos… El primero muestra las cuentas de TODOS los movimientos………. 7