Universidad Católica Argentina Facultad de Cs. Fisicomatemáticas e Ingeniería

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Universidad Católica Argentina Facultad de Cs. Fisicomatemáticas e Ingeniería"

Transcripción

1 Introducción El lenguaje de consulta estructurado (SQL Structured Query Language) es un lenguaje de base de datos normalizado, utilizado por los diferentes motores de bases de datos para realizar operaciones sobre los datos o sobre la estructura de los mismos. Pero como sucede con cualquier sistema de normalización hay excepciones para casi todo; de hecho, cada motor de bases de datos tiene sus particularidades y lo hace diferente de otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI) no nos servirá para resolver todos los problemas, aunque si se puede asegurar que cualquier sentencia escrita en ANSI será interpretable por cualquier motor de datos. La historia de SQL empieza en 1974 con la definición, por parte de Donald Chamberlin y de otras personas que trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la especificación de las características de las bases de datos que adoptaban el modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y Las experimentaciones con este prototipo condujeron, entre 1976 y 1977, a una revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba todavía comercializado, también otras compañías empezaron a desarrollar sus productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar sus productos relacionales y en 1983 empezó a vender DB2. En el transcurso de los años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, por nombrar algunos) comercializaron productos basados en SQL, que se convierte en el estándar en lo que respecta a las bases de datos relacionales. En 1986, el ANSI adoptó SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los lenguajes relacionales y en 1987 se transformó en estándar ISO. Esta versión del estándar va con el nombre de SQL/86. En los años siguientes, éste ha sufrido diversas revisiones que han derivado primero a la versión SQL/89 y, posteriormente, a la actual SQL/92. El hecho de tener un estándar definido por un lenguaje para bases de datos relacionales abre potencialmente el camino a la compatibilidad entre todos los productos que se basan en él. Desafortunadamente, desde el punto de vista práctico las cosas fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry level o al máximo el Intermediate level), extendiéndolo de manera individual según la propia visión que cada cual tenga del mundo de las bases de datos. Actualmente, está en marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO, que debería terminar en la definición de lo que en este momento se conoce como SQL3. Las características principales de esta nueva encarnación de SQL deberían ser su transformación en un lenguaje stand-alone (mientras ahora se usa como lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de datos más complejos que permitan, por ejemplo, el tratamiento de datos multimedia.

2 Componentes del SQL El lenguaje SQL está compuesto por comandos, operadores y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases de datos. Comandos: Existen dos tipos de comandos SQL: Aquellos que permiten crear y definir nuevas bases de datos, campos e índices y aquellos que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos. Por ahora, nos concentraremos en estos últimos. Operadores: Operador Negación Menor que Mayor que Distinto de Menor o igual que Mayor o igual que Igual que Implica Equivale Ejemplo NOT a a < b a > b a <> b a <= b a >= b a = b a IMP b a EQV b Más adelante se analizará el funcionamiento de cada uno. Funciones de Agregación: Las funciones de agregado se usan dentro de una cláusula SELECT en grupos de registros para devolver un único valor que se aplica a un grupo de registros. Función AVG COUNT SUM MAX MIN Descripción Calcula el promedio de los valores de un campo determinado Devuelve el número de registros solicitados Devuelve la suma de todos los valores solicitados Devuelve el valor más alto de todos los solicitados Devuelve el valor más bajo de todos los solicitados Conceptos básicos El lenguaje SQL no es case-sensitive. En los ejemplos aparecerán tanto letras mayúsculas como minúsculas con el objeto de facilitar la legibilidad. Sin embargo, tanto los nombres de columnas (campos) como los nombres de tablas pueden ser case-sensitive dependiendo del motor de base de datos. Dada una sentencia SQL de selección que incluye todas las posibles cláusulas, el orden de ejecución de las mismas es el siguiente: 1.- Cláusula FROM 2.- Cláusula WHERE 3.- Cláusula GROUP BY 4.- Cláusula HAVING 5.- Cláusula SELECT 6.- Cláusula ORDER BY

3 Operadores lógicos La verdadera funcionalidad en las consultas está dada principalmente por la clásula WHERE. Ahí es donde se expresan las condiciones que se pretenden que los datos de salida cumplan. Esta funcionalidad adquiere valor cuando se utilizan los operadores lógicos. El comportamiento de estos operadores está dado por las siguientes tablas de verdad. Valor Expresión 1 Operador Valor Expresión 2 Resultado VERDADERO AND FALSO FALSO VERDADERO AND VERDADERO VERDADERO FALSO AND VERDADERO FALSO FALSO AND FALSO FALSO Valor Expresión 1 Operador Valor Expresión 2 Resultado VERDADERO OR FALSO VERDADERO VERDADERO OR VERDADERO VERDADERO FALSO OR VERDADERO VERDADERO FALSO OR FALSO FALSO Valor Expresión 1 Operador Valor Expresión 2 Resultado VERDADERO XOR FALSO VERDADERO VERDADERO XOR VERDADERO FALSO FALSO XOR VERDADERO VERDADERO FALSO XOR FALSO FALSO Valor Expresión 1 Operador Valor Expresión 2 Resultado VERDADERO IMP FALSO FALSO VERDADERO IMP VERDADERO VERDADERO FALSO IMP VERDADERO VERDADERO FALSO IMP FALSO VERDADERO Valor Expresión 1 Operador Valor Expresión 2 Resultado VERDADERO EQV FALSO FALSO VERDADERO EQV VERDADERO VERDADERO FALSO EQV VERDADERO FALSO FALSO EQV FALSO VERDADERO Cabe aclarar que existen las constantes TRUE y FALSE en SQL que valen VERDADERO y FALSO respectivamente. Desde el punto de vista matemático, la constante FALSE tiene un valor igual a 0 (cero) y la constante TRUE un valor distinto de 0 (varía según el motor de base de datos). Consultas La palabra SELECT prefija todas las operaciones de consulta y es, por así decirlo, la palabra estrella del lenguaje SQL. En una consulta se indica al motor de base de datos que devuelva cierta información. Esta información es devuelta en forma de conjunto de registros, más precisamente en tablas. Los corchetes ([ ]) indican elementos opcionales y que por tanto no tienen por qué aparecer.

4 Consultas básicas La sintaxis básica de una consulta de selección es la siguiente: SELECT campos FROM Tabla En donde campos es la lista de campos que se desean obtener y Tabla es el origen de los mismos. SELECT * ; Si quisiéramos obtener todos los registros de la tabla Clientes. SELECT NombreCompania, Ciudad, Pais ; Esta sentencia devuelve una tabla de resultados con los campos NombreCompañía, Ciudad y País de la tabla Clientes. Hasta aquí, las consultas de los ejemplos devuelven la totalidad de los datos. Para filtrar aquellos registros que nos interesan y desechar los que no necesitamos, se utiliza la cláusula WHERE. SELECT NombreCompania, Ciudad, Pais WHERE País = Argentina ; El resultado será idéntico al ejemplo 2 con la salvedad de que los únicos registros que se obtendrán serán aquellos correspondientes a clientes de Argentina. SELECT NombreCompania, Ciudad, Pais WHERE NombreCompania < B ; Esta curiosa cláusula WHERE se encargará de que el nombre de la compañía de la tabla Clientes preceda alfabéticamente a la palabra B. Resultados ordenados Adicionalmente se puede especificar el orden en que se desean recuperar los registros de las tablas mediante la cláusula ORDER BY campo [, campo2[..., campon]] Así, la tabla resultado presentará los registros ordenados por campo. Opcionalmente, se pueden agregar más campos separados por coma para afinar el criterio.

5 SELECT CodPostal, NombreCompania, Telefono, Pais WHERE País = Argentina OR País = Brasil ORDER BY País, Ciudad; Esta consulta devuelve los campos CódPostal, NombreCompañía, Teléfono y País de la tabla Clientes correspondientes a Argentina y Brasil ordenados por el campo País y luego por Ciudad. Nótese que los campos que aparecen en la cláusula ORDER BY no necesariamente deben aparecer en la cláusula SELECT. Adicionalmente se puede especificar el orden de los registros: ascendente mediante la cláusula ASC (valor por defecto) ó descendente (DESC). SELECT CodPostal, NombreCompania, Telefono, Pais WHERE País = Argentina OR País = Brasil ORDER BY CódPostal DESC; Predicados El predicado se incluye entre SELECT y el primer nombre del campo a recuperar, los posibles predicados son: Predicado Descripción * Devuelve todos los campos de la tabla. TOP n [PERCENT] Devuelve n registros de la tabla DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente AS Asigna un alias una columna en la tabla resultado Predicado TOP SELECT TOP 25 NombreProducto, PrecioUnidad FROM Productos ORDER BY PrecioUnidad DESC; Esta consulta devolverá un listado con los 25 productos más caros. Cabe aclarar que sin la cláusula ORDER BY, la consulta devolverá los primeros 25 registros que encuentre en la tabla cuyo orden es completamente azaroso. Por otro lado, si el precio unitario del producto número 25 y del producto número 26 son iguales, la tabla devolverá 26 registros. Predicado TOP n PERCENT SELECT TOP 15 PERCENT NombreProducto, PrecioUnidad FROM Productos ORDER BY PrecioUnidad DESC; Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de registros que caen al principio o al final de un rango especificado por la cláusula ORDER BY. Esta consulta nos dará la lista del 15% de los productos más caros.

6 Predicado DISTINCT SELECT DISTINCT Ciudad, Pais ORDER BY Pais, Ciudad; Se obtendrán las diferentes ciudades de cada país en las que hay clientes ordenados, primero por país y, luego, por ciudad. Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos indicados en la cláusula SELECT posean un contenido diferente. El resultado de una consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes realizados por otros usuarios. Predicado AS SELECT NombreCompania AS Empresa, Pais, Ciudad ORDER BY Pais, Ciudad; El resultado será una tabla ordenada por país y por ciudad, de los clientes. Para mejorar la presentación, al campo se lo renombró como Empresa. Es importante destacar que en Access el predicado AS no funcionará adecuadamente si en las propiedades generales de la tabla (Vista Diseño General) se asignó un valor a la propiedad Título. También es posible asignar alias a las tablas dentro de la cláusula FROM, según se puede ver en el siguiente ejemplo. SELECT PrecioUnidad FROM Detalles_de_pedidos AS Pedidos; El resultado no presentará ninguna particularidad. Más adelante se discutirá la utilidad de aplicar un alias en la cláusula FROM. Intervalos de valores Para indicar que deseamos recuperar los registros según el intervalo de valores de un campo emplearemos el operador BETWEEN cuya sintaxis es: SELECT * FROM Tabla WHERE campo [NOT] BETWEEN valor1 AND valor2 En este caso la consulta devolvería los registros que contengan en "campo" un valor incluido entre valor1 y valor2 (ambos inclusive). Si anteponemos el operador NOT devolverá aquellos valores no incluidos en el intervalo. SELECT * FROM Pedidos WHERE CodPostalDestinatario BETWEEN "05021" AND "05033"; Se obtendrán así todos los campos de los pedidos cuyo código postal del destinatario está entre los valores y Nótese la utilización de comillas para especificar los valores del intervalo debido a que el campo CódPostalDestinatario es de tipo texto.

7 El operador LIKE Se utiliza para comparar una expresión de tipo texto con un modelo o formato dado. Su sintaxis es: SELECT * FROM Tabla WHERE expresión [NOT] LIKE modelo; Se puede utilizar el operador LIKE para encontrar valores en los campos que coincidan con el modelo específico. Por modelo puede especificar un valor constante (ej. López ) o se puede utilizar una cadena de caracteres con comodines como los reconocidos por el sistema operativo para encontrar un rango de valores (ej. Lóp% ). Al igual que BETWEEN, LIKE es combinable con el operador NOT. Ejemplos de modelos: LIKE 'P%' Coincide con todos los datos que comiencen con la letra P. LIKE 'A_' Coincide con todos los datos que comiencen con A y tengan 1 carácter después. Sin embargo, en buena parte de los motores de búsqueda, la sintaxis es levemente diferente: Expresión Significado Sintaxis alternativa LIKE 'A%' Todo lo que comienza con A LIKE A* LIKE '_NG' Comienza por 1 carácter cualquiera y le sigue NG LIKE?NG LIKE '[AF]%' Todo lo que comienza con A o bien con F LIKE '[AF]* LIKE '[A-F]%' Lo que comienza con cualquier letra desde A hasta F LIKE [A-F]* LIKE '[A^B]%' Comienza con A y la segunda letra no es una B LIKE A[!B]* El operador IN Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de los valores del conjunto dado. Su sintaxis es: expresión [NOT] IN (valor1, valor2,...) SELECT * WHERE Pais IN ( Argentina, Brasil, Alemania ); Se obtendrán así los clientes correspondientes a Argentina, Brasil y Alemania. Agrupamiento de registros La cláusula GROUP BY combina los registros con valores idénticos, en la lista de campos especificados, en un único registro. Para cada registro se crea un valor sumario si se incluye una función de agregación, como por ejemplo SUM o COUNT en la cláusula SELECT. Su sintaxis es: SELECT campo1, campo2 [...,campon] FROM Tabla WHERE criterio GROUP BY campo1;

8 Los valores sumarios se omiten si no existe una función de agregación en la instrucción SELECT. Los valores NULL en los campos GROUP BY se agrupan y no se omiten. No obstante, los valores NULL no se evalúan en ninguna de las funciones de agregación. Del mismo modo que WHERE cumple su función en la estructura SELECT FROM, la cláusula HAVING cumple ese papel para la tabla agrupada. A menos que contenga un dato tipo MEMO u OBJETO OLE, un campo de la lista de campos de GROUP BY puede referirse a cualquier campo de las tablas que aparecen en la cláusula FROM, incluso si el campo no esta incluido en la instrucción SELECT, siempre y cuando la instrucción SELECT incluya al menos una función de agregación. Todos los campos de la lista de campos de SELECT deben o bien incluirse en la cláusula GROUP BY o como argumentos de una función de agregación. SELECT IdCategoria, SUM(UnidadesEnExistencia) AS Stock FROM Productos GROUP BY IdCategoria; Esto devolverá una tabla con las diferentes categorías y el stock disponible para cada una. Una vez que GROUP BY ha combinado los registros, la cláusula HAVING muestra cualquier registro agrupado por la cláusula GROUP BY que satisfaga las condiciones incluidas en la dicha cláusula. HAVING es similar a WHERE y determina qué registros se seleccionan. Una vez que los registros se han agrupado utilizando GROUP BY, HAVING determina cuales de ellos se van a mostrar. SELECT IdCategoria, Sum(UnidadesEnExistencia) AS Stock FROM Productos WHERE NombreProducto LIKE 'Queso%' GROUP BY IdCategoria HAVING Sum(UnidadesEnExistencia) > 100;

9 Funciones de Agregación y otras funciones útiles AVG calcula el promedio de un conjunto de valores contenidos en un campo especificado de una consulta. SELECT Avg(Cargo) AS Promedio FROM Pedidos WHERE Cargo > 100; El promedio calculado por AVG es la media aritmética (la suma de los valores dividido por el número de valores). La función AVG no incluye ningún registro NULL en el cálculo. COUNT calcula el número de registros devueltos por una consulta. SELECT Count(expr) AS Cantidad FROM Tabla; En donde expr contiene el nombre del campo que se desea contar. El parámetro expr puede incluir el nombre de un campo de una tabla, una constante o una función (la cual puede ser intrínseca o definida por el usuario pero no otras de las funciones de agregación de SQL). Puede contar cualquier tipo de datos incluso texto. COUNT simplemente cuenta el número de registros sin tener en cuenta qué valores se almacenan en los registros. La función COUNT no cuenta los registros que tienen valor NULL a menos que expr sea el carácter comodín asterisco (*). Si utiliza un asterisco, COUNT calcula el número total de registros, incluyendo aquellos que contienen campos NULL. COUNT(*) es considerablemente más rápida que COUNT(campo). SELECT PaisDestinatario, Count(PaisDestinatario) FROM Pedidos GROUP BY PaisDestinatario; Devolverá la lista de países destinatarios de pedidos y la cantidad de pedidos que fueron enviados a cada uno. MAX y MIN Devuelven el mínimo o el máximo de un conjunto de valores contenidos en un campo especifico de una consulta. Ejemplos: SELECT Min(Cargo) AS Mínimo FROM Pedidos WHERE PaisDestinatario = 'España'; SELECT Max(Cargo) AS Máximo FROM Pedidos WHERE Pais = 'Argentina'; Estas consultas devolverán el mínimo cargo de un pedido enviado a España y el máximo de un pedido enviado a Argentina, respectivamente.

10 SUM devuelve la suma del conjunto de valores contenido en un campo especifico de una consulta. SELECT Sum(PrecioUnidad * UnidadesEnExistencia) AS Capital_Inmobilizado FROM Productos; STDEVP y STDEV devuelven estimaciones de la desviación estándar para la población (el total de los registros de la tabla) o una muestra de la población representada (muestra aleatoria). Si la consulta contiene menos de dos registros (o ningún registro para STDEVP), estas funciones devuelven un valor NULL el cual indica que el desvío estándar no puede calcularse. Ejemplos: SELECT StDev(Cargo) AS Desvío FROM Pedidos WHERE País = 'Brasil'; SELECT StDevP(Cargo) AS Desvío FROM Pedidos WHERE Pais = 'Alemania'; YEAR, MONTH y DAY son funciones que aplicadas sobre registros que contienen fechas, devolverán el año, el mes y el día del registro actual.

11 SELECT Month(FechaPedido), Count(*) as Cantidad FROM Pedidos WHERE Year(FechaPedido) = 1997 GROUP BY Month(FechaPedido); El resultado será una lista de la cantidad de pedidos hechos durante cada mes del año Inserción de datos Agregar un registro en una tabla. Se la conoce como una consulta de datos añadidos. Esta consulta puede ser de dos tipo: Insertar un único registro ó Insertar en una tabla los registros contenidos en otra tabla. Para insertar un único registro, la sintaxis es la siguiente: INSERT INTO Tabla (campo1, campo2,..., campon) VALUES (valor1, valor2,..., valorn) Por ejemplo: INSERT INTO Empleados (Nombre, Apellido, Cargo) VALUES ('Luis', 'Sánchez', 'Programador') Esta consulta graba en el campo1 el valor1, en el campo2 y valor2 y así sucesivamente. Para seleccionar registros e insertarlos en una tabla nueva, la sintaxis es la siguiente: SELECT campo1, campo2,..., campon INTO nuevatabla FROM tablaorigen [WHERE criterios] Se pueden utilizar las consultas de creación de tabla para archivar registros, hacer copias de seguridad de las tablas o hacer copias para exportar a otra base de datos o utilizar en informes que muestren los datos de un periodo de tiempo concreto. Por ejemplo, se podría crear un informe de Ventas mensuales por región ejecutando la misma consulta de creación de tabla cada mes. También se puede utilizar INSERT INTO para agregar un conjunto de registros pertenecientes a otra tabla o consulta utilizando la cláusula SELECT... FROM como se mostró anteriormente en la sintaxis de la consulta de adición de múltiples registros. En este caso la cláusula SELECT especifica los campos que se van a agregar en la tabla destino especificada. Por ejemplo: SELECT Empleados.* INTO Programadores FROM Empleados WHERE Categoria = 'Programador' Actualización de datos Una consulta de actualización cambia los valores de los campos de una tabla especificada basándose en un criterio específico. Su sintaxis es: UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, CampoN=ValorN WHERE Criterio UPDATE es especialmente útil cuando se desea cambiar un gran número de registros o cuando éstos se encuentran en múltiples tablas. Puede cambiar varios campos a la vez.

12 El ejemplo siguiente incrementa los valores Pedidos en un 10 por ciento y los valores Transporte en un 3 por ciento para aquellos que se hayan enviado a Uruguay: UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03 WHERE PaisEnvio = 'Uruguay' UPDATE no genera ningún resultado. Para saber qué registros se van a cambiar, hay que examinar primero el resultado de una consulta de selección que utilice el mismo criterio y después ejecutar la consulta de actualización. Intente determinar qué sucede con los siguientes ejemplos: UPDATE Empleados SET Grado = 5 WHERE Grado = 2 Aquí se actualizarían los registros de la tabla empleados cuyo Grado sea 2 a Grado 5. UPDATE Productos SET Precio = Precio * 1.1 WHERE Proveedor = 8 AND Ciudad = Buenos Aires 10%. En este último caso, los Precios de los proveedores de Buenos Aires se aumentarán un Si en una consulta de actualización suprimimos la cláusula WHERE todos los registros de la tabla señalada serán actualizados. Por ejemplo: UPDATE Empleados SET Salario = Salario * 1.1

13 Consultas sobre combinación de tablas Hasta ahora, las consultas realizadas fueron hechas sobre una única tabla. Sin embargo, las bases de datos relacionales se basan, justamente, en relaciones y es natural que se necesite efectuar una consulta que trascienda esas relaciones. Para eso se deberá establecer la relación (vínculo) entre las tablas consultadas dentro de la consulta. Junta Interna (INNER JOIN) Las vinculaciones entre tablas se realizan mediante la cláusula INNER JOIN que combina registros de dos tablas siempre que haya concordancia de valores en un campo común. SELECT campos FROM Tabla_1 INNER JOIN Tabla_2 ON Tabla_1.campoA <operador> Tabla_2.campoB; en donde campoa y campob son los nombres de los campos de una y otra tabla que se vinculan. Si no son numéricos, los campos deben ser del mismo tipo de datos pero no necesariamente tienen que tener el mismo nombre. El operador es cualquier operador lógico de comparación vistos en la unidad anterior: =, <,<>, <=, => ó >. Es posible utilizar una operación INNER JOIN en cualquier cláusula FROM. Esto crea una combinación por equivalencia, conocida también como junta interna. Las combinaciones equivalentes son las más comunes; éstas combinan los registros de dos tablas siempre que haya concordancia de valores en un campo común a ambas tablas. SELECT Empleados.Apellidos, Empleados.Nombre, Pedidos.PaisDestinatario FROM Empleados INNER JOIN Pedidos ON Empleados.IdEmpleado = Pedidos.IdEmpleado WHERE Pedidos.PaisDestinatario IN ("España","Argentina") ORDER BY PaisDestinatario; En esta consulta, utilizando INNER JOIN con las tablas Empleados y Pedidos se han listado todos los empleados que han enviado pedidos a España y Argentina. Pero qué ocurriría si hubiera pedidos que no fueran asignados a ningún empleado o empleados que no se hubieran encargado de ningún pedido? Junta externa (OUTER JOIN) En contraposición al operador de junta interna, existen también las operaciones de outer join. Estas preservan, en el resultado, las filas de una tabla que no tienen su correspondiente fila en la otra tabla, dependiendo del tipo particular de operación. A saber: a. LEFT OUTER JOIN Dadas las tablas Tabla_A campop campoq campox campoy p1 q1 Tabla_B q1 y1 p2 q2 q3 y2 SELECT * FROM Tabla_A LEFT OUTER JOIN Tabla_B ON Tabla_A.campoQ = Tabla_B.campoX;

14 Se obtendrá: Resultado campop campoq campox campoy p1 q1 q1 y1 p2 q2 NULL NULL b. RIGHT OUTER JOIN Dadas Tabla_A y Tabla_B del ejemplo anterior y ejecutando SELECT * FROM Tabla_A RIGHT OUTER JOIN Tabla_B ON Tabla_A.campoQ = Tabla_B.campoX; Se obtendrá: Resultado campop campoq campox CampoY p1 q1 q1 y1 NULL NULL q3 y2 c. FULL OUTER JOIN Dadas Tabla_A y Tabla_B del ejemplo anterior y ejecutando SELECT * FROM Tabla_A FULL OUTER JOIN Tabla_B ON Tabla_A.campoQ = Tabla_B.campoX; Se obtendrá: Resultado campop campoq campox campoy p1 q1 q1 y1 p2 q2 NULL NULL NULL NULL q3 y2 Es preciso aclarar que la sintaxis de INNER JOIN no es aceptada por todos los motores de bases de datos. Generalidades de las juntas Hasta aquí se han visto ejemplos de cómo vincular dos tablas mediante un campo que las relaciona. No obstante, es posible vincular dos tablas por más de un campo así como también vincular más de una tabla con el operador de junta. SELECT campos FROM Tabla1 INNER JOIN Tabla2 ON (Tabla1.campo1 = Tabla2.campo1 AND Tabla1.campo2 = Tabla2.campo2); En esta consulta se obtendrán los campos seleccionados de la junta de Tabla1 y Tabla2 que coincidan tanto en el campo1 como en el campo2 de ambas tablas.

15 SELECT campos FROM Tabla1 INNER JOIN ( Tabla2 INNER JOIN ( Tabla3 INNER JOIN TablaX ON Tabla3.campo3 = TablaX.campoX) ON Tabla2.campo2 = Tabla3.campo3) ON Tabla1.campo1 = Tabla2.campo2; Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER JOIN, pero un INNER JOIN no puede anidarse dentro de un LEFT JOIN o un RIGHT JOIN. Como alternativa al operador de junta, es factible vincular las tablas en la cláusula WHERE. SELECT campos FROM Tabla1 AS T, Tabla2 AS U WHERE T.campo1 = U.campo2; En este caso, la cláusula FROM obtendrá el producto cartesiano de las tablas, es decir, por cada fila de Tabla1 la tabla resultado contendrá todas las filas de Tabla2. Suponiendo que Tabla1 contuviera 10 filas y Tabla2 contuviera 23, el producto cartesiano daría una tabla de 10 x 23 = 230 filas. Luego, la cláusula WHERE filtraría aquellas en las que campo1 de Tabla1 coincida con campo2 de Tabla2 y sólo estas filas serían parte de la tabla resultado. Consultas con autovinculación Como caso particular, es factible vincular una tabla consigo misma. SELECT alias1.campo1, alias2.campo2 FROM Tabla1 AS alias1, Tabla1 AS alias2 WHERE alias1.campo2 = alias2.campo3; Nótese el uso de alias en la cláusula FROM lo cual se hace imprescindible para diferenciar cuándo hago referencia a cada una de las instancias de Tabla1. SELECT E1.Apellidos AS Empleado, E2.Apellidos AS Jefe FROM Empleados AS E1, Empleados AS E2 WHERE E1.Jefe = E2.IdEmpleado ORDER BY E2.Apellidos; Así obtendría la lista de empleados y el jefe de cada uno de ellos.

16 Extensión de consultas Unión El operador de unión permite combinar dos relaciones o tablas cuyas columnas tienen tipos de datos comparables. SELECT campo1 [..., campon] FROM Tabla1 UNION [ALL] SELECT campo2 [..., campon] FROM Tabla2; La cláusula opcional ALL hará que en el resultado aparezcan aquellos registros aún cuando estén repetidos. Por defecto, los registros iguales no forman parte del resultado. Cabe destacar que todas las selecciones deberán tener la misma cantidad de campos. Si se usara un alias para renombrar las columnas de la tabla resultado, estos deberán estar en la primera cláusula SELECT. SELECT idcompaniaenvios FROM [Companias de envios] UNION ALL SELECT idempleado FROM Empleados; Se obtendrá una lista con los ID de las compañías de envíos seguida de la lista de ID de empleados. Consultas anidadas Una alternativa las operaciones de junta es la utilización de consultas anidadas. Esto es una consulta dentro de otra la cual aplica sus condiciones sobre la primera. SELECT campos FROM Tabla_A WHERE expresión [NOT] <IN / EXISTS> ( SELECT campo_x FROM Tabla_B WHERE condición); Con este ejemplo se presentan 2 alternativas sobre las cuales una consulta actúa sobre la otra: IN y EXISTS. La operación IN actúa buscando expresión sobre el conjunto resultante del SELECT anidado (el interno). Si expresión se encuentra en algún registro, éste será parte del resultado final de toda la consulta. Por otro lado EXISTS será cierto exactamente cuando el resultado del SELECT anidado no de una tabla vacía. Ambas condiciones pueden ser negadas mediante la palabra reservada NOT.

17 SELECT NombreCompañía, País WHERE Pais IN ( SELECT NombreCompania FROM Proveedores) ORDER BY País; Esta consulta devolverá todas los clientes que tengan un proveedor en su país. SELECT NombreCompania, País FROM Proveedores WHERE NOT EXISTS ( SELECT * WHERE Clientes.Pais = Proveedores.Pais) Análogamente, esta consulta devuelve los proveedores en cuyo país no hay clientes. Nótese la utilización de la nomenclatura Tabla.campo para la consulta anidada. Esto se debe a que la tabla de la consulta externa no figura en la cláusula FROM de la consulta anidada. Así se hace necesario indicarle a la consulta interna a qué tabla se hace referencia. Esto presenta un inconveniente: Qué ocurriría si tanto la consulta interna como la externa hicieran referencia a una misma tabla? La respuesta es la utilización de alias para tablas. Si no los hubiera, se tomará como tabla la perteneciente a la consulta corriente, es decir, la interna. SELECT P1.NombreCompania, P1.Pais FROM Proveedores AS P1 WHERE P1.Ciudad IN ( SELECT DISTINCT Clientes.Ciudad, Proveedores AS P2 WHERE Clientes.Pais = P2.País); La consulta interna devolvería aquellas ciudades de los clientes que residen en el mismo país que algún proveedor. Luego, la consulta externa buscará proveedores en esas ciudades obteniendo, en último término, los proveedores que comparten la misma ciudad que algún cliente.

Los DLL que permiten crear y definir nuevas bases de datos, campos e índices.

Los DLL que permiten crear y definir nuevas bases de datos, campos e índices. Componentes del SQL El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones agregadas. Estos elementos se combinan en las instrucciones para crear, actualizar y manipular las bases

Más detalles

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL)

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL) Qué es una base de datos? Una base de datos (cuya abreviatura es BD) es una entidad en la cual se pueden almacenar datos de manera estructurada, con la menor redundancia posible. Diferentes programas y

Más detalles

SELECT listadecampos FROM nombredetablas WHERE condicionesdebúsqueda;

SELECT listadecampos FROM nombredetablas WHERE condicionesdebúsqueda; SQL El Lenguaje de Consulta Estructurado (SQL) se usa para consultar, actualizar y administrar bases de datos relacionales, tales como las de Microsoft Access. Al crear una consulta en la ventana Consulta,

Más detalles

SQL. Comandos DDL. Comandos DML

SQL. Comandos DDL. Comandos DML UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA PARACENTRAL DEPARTAMENTO DE INFORMÁTICA INGENIERÍA DE SISTEMAS INFORMÁTICOS TÉCNICAS DE PROGRAMACIÓN PARA INTERNET CICLO II/2010 SQL 1.- INTRODUCCIÓN

Más detalles

Create Database ClaseAutos. Use ClaseAutos

Create Database ClaseAutos. Use ClaseAutos Vamos a Crear el siguiente modelo, en una base de Datos llamada ClaseAutos. Comando para Crear la Base de Datos Create Database ClaseAutos Comando para utilizar la Base de Datos Use ClaseAutos vehiculo

Más detalles

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL.

Un proyecto de IBM llamado Sistem/R construye un prototipo simple llamado SQUARE que después se transformó en SQL. CONTENIDO: 1. Lenguaje SQL 1. Componentes 2. Comandos 3. Clausulas 4. Operadores lógicos 5. Operadores de comparación 6. Funciones de agregado 2. MYSQL 1. Como entrar a MySQL 2. Comandos generales 3. Sintaxis

Más detalles

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab'

RESUMEN SQL. Tipo de coincidencia Modelo Planteado Coincide No coincide. Varios caracteres 'ab*' 'abcdefg', 'abc' 'cab', 'aab' RESUMEN SQL Agustina Botas May COMO SE ESCRIBE UNA CONSULTA SELECT : campos WHERE : criterios que se aplican directamente a los datos (aplica a TODOS los registros) GROUP BY: agrupación de los datos seleccionados

Más detalles

1. DML. Las consultas de resumen

1. DML. Las consultas de resumen 1.1 Introducción 1. DML. Las consultas de resumen Una de las funcionalidades de la sentencia SELECT es el permitir obtener resúmenes de los datos contenidos en las columnas de las tablas. Para poder llevarlo

Más detalles

Modulo I: Introducción Gestores de Bases De Datos

Modulo I: Introducción Gestores de Bases De Datos Modulo I: Introducción Gestores de Bases De Datos El SQL El SQL (Lenguaje de Consulta Estructurado Structure Query Language), es un lenguaje de consulta estructurado establecido claramente como el lenguaje

Más detalles

TEMA 4.. CONSULTA DE DATOS I.

TEMA 4.. CONSULTA DE DATOS I. TEMA 4.. CONSULTA DE DATOS I. 4.1 El lenguaje DML (Lenguaje de manipulación de datos) Las sentencias DML(Data Manipulation Language) del lenguaje SQL (Structured Query Language o Lenguaje de peticiones

Más detalles

El SQL es un lenguaje estándar de programación para el acceso a bases de datos.

El SQL es un lenguaje estándar de programación para el acceso a bases de datos. El SQL es un lenguaje estándar de programación para el acceso a bases de datos. El lenguaje SQL se utiliza para acceder y manipular datos en cualquier base de datos del mercado, como por ejemplo, para

Más detalles

SUBCONSULTAS SQL. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal.

SUBCONSULTAS SQL. Cuando se ejecuta una consulta que contiene una subconsulta, la subconsulta se ejecuta por cada fila de la consulta principal. SUBCONSULTAS SQL DEFINICION. Una subconsulta es una sentencia SELECT que aparece dentro de otra sentencia SELECT que llamaremos consulta principal. Se puede encontrar en la lista de selección, en la cláusula

Más detalles

SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server.

SQL SERVER SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server. SQL SERVER 2005 Operaciones con Conjuntos SQL Server 2005 permite tres tipos de operaciones con conjuntos: UNION, disponible en todas las versiones de SQL Server. EXCEPT, nuevo en SQL Server 2005. INTERSECT,

Más detalles

Manual de Sentencias Básicas en SQL

Manual de Sentencias Básicas en SQL Manual de Sentencias Básicas en SQL Pues hoy que he estado enredando un rato con MySQl, y me he acordado de aquellos comienzos en los que tenía que volver a mis antiguos apuntes para lograr entender las

Más detalles

SQL SERVER Curso Teórico-Práctico

SQL SERVER Curso Teórico-Práctico SQL SERVER 2008-2012 Curso Teórico-Práctico IMPLEMENTACION DE LA BASE DE DATOS Nomenclatura Todas las tablas tendrán: - Un identificador de tipo entero auto numérico. Ésta será la clave primaria. La denominamos

Más detalles

Lenguaje de manipulación de datos

Lenguaje de manipulación de datos 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 de la BD. El más popular es SQL. Tablas de ejemplo

Más detalles

Operadores. Además se pueden emplear en sentencias SET.

Operadores. Además se pueden emplear en sentencias SET. Operadores MySQL dispone de multitud de operadores diferentes para cada uno de los tipos de columna. Esos operadores se utilizan para construir expresiones que se usan en cláusulas ORDER BY y HAVING de

Más detalles

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos

Base de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE ING. INDUSTRIAL Base de Datos Resultados Internet Requerimientos BASE DATOS Docente: Ing. Francisco Rodríguez Base de Datos Tema 6: El Lenguaje Estándar SQL

Más detalles

Insertar Datos en Tablas

Insertar Datos en Tablas Insertar Datos en Tablas La instrucción básica para insertar valores a los atributos (columnas) de una tabla es la instrucción INSERT INTO Insertar una sola tupla Para insertar una tupla en la tabla, se

Más detalles

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas

Anexo 3 COMPONENTES DE SQL SERVER. Los DDL (Data Definition Languaje) que permiten crear y definir nuevas Anexo 3 COMPONENTES DE SQL SERVER COMANDOS Existen tres tipos de comandos SQL [5]: Los DDL (Data Definition Languaje) que permiten crear y definir nuevas bases de datos, campos e índices. En la tabla se

Más detalles

MANUAL BÁSICO DEL LENGUAJE SQL

MANUAL BÁSICO DEL LENGUAJE SQL MANUAL BÁSICO DEL LENGUAJE SQL INTRODUCCIÓN A continuación se presentan lo que son comandos DLL y DML, las clausulas, lo operadores (lógicos y de comparación), funciones de agregado, consultas, tipos de

Más detalles

Bases de Datos 1. Teórico: Structured Query Language

Bases de Datos 1. Teórico: Structured Query Language Bases de Datos 1 Teórico: Structured Query Language Historia Los orígenes del SQL están ligados a los orígenes de las bases de datos relacionales Estandarizado por ANSI en 1986 (SQL-86) Hubieron varias

Más detalles

FUNDAMENTOS ORACLE 12C

FUNDAMENTOS ORACLE 12C FUNDAMENTOS ORACLE 12C Introducción a Oracle Fundamentos 12c Aprende a programar en SQL con la base de datos más poderosa del mercado. Diseña y modela bases de datos corporativas utilizando las herramientas

Más detalles

Pero es que además, en ocasiones no hay otra forma de conseguir el resultado deseado que crear la consulta directamente en SQL.

Pero es que además, en ocasiones no hay otra forma de conseguir el resultado deseado que crear la consulta directamente en SQL. 1. INTRODUCCIÓN A unque ya hemos visto cómo realizar consultas para obtener resultados de una base de datos Access a través de la vista Diseño, debes conocer el lenguaje en el que realmente se realizan

Más detalles

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1

ÍNDICE. Introducción... Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 ÍNDICE Introducción... XI Capítulo 1. Características, instalación, inicio y entorno de trabajo... 1 Características y novedades de Access 2010... 1 Comienzo rápido del trabajo y seguimiento de la información...

Más detalles

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez INFORMÁTICA MÉDICA Profesor: MsC. Liz Armenteros Chávez Tema No.2: Gestión de la Información Biomédica Conferencia No.4 SQL: Structured Query Language. Consultas Simples. Marzo, 2014 Introducir las consultas

Más detalles

Tema 4. TEMA 4. El lenguaje de consulta SQL

Tema 4. TEMA 4. El lenguaje de consulta SQL Tema 4 TEMA 4. El lenguaje de consulta SQL Juan M Camarillo. Dpto. de Geografía Física y AGR Juan A. Ortega. Dpto. de Lenguajes y Sistemas Informáticos Jesús Torres. Dpto. de Lenguajes y Sistemas Informáticos

Más detalles

Tema 7. Elaboración de consultas básicas de selección. Lenguajes de bases de datos. SQL básico 15/12/2011

Tema 7. Elaboración de consultas básicas de selección. Lenguajes de bases de datos. SQL básico 15/12/2011 Lenguajes de bases de datos Tema 7 Elaboración de consultas básicas de selección En esta unidad se abordan cuestiones que, aunque están definidas por el estándar ANSI/ISO SQL, no están asumidas al 100%

Más detalles

CONSULTAS BASICAS EN SQL SERVER

CONSULTAS BASICAS EN SQL SERVER CONSULTAS BASICAS EN SQL SERVER CONSULTAS DE SELECCION Las consultas de selección se utilizan para indicar al motor de datos que devuelva información de las bases de datos, esta información es devuelta

Más detalles

Capítulo 4. Realización de consultas

Capítulo 4. Realización de consultas Capítulo 4 Realización de consultas ÍNDICE CAPÍTULO 4 Introducción sentencia SELECT Base de datos de ejemplo Consultas básicas Cláusula ORDER BY Cláusula DISTINCT Cláusula LIMIT Expresiones Funciones propias

Más detalles

Oracle Database 12c SQL and PLSQL Fundamentals

Oracle Database 12c SQL and PLSQL Fundamentals Oracle Database 12c SQL and PLSQL Fundamentals DESCRIPCION MODULOS DE CAPACITACION Introducción Información general sobre 12c de base de datos Oracle y productos afines Descripción de los conceptos y la

Más detalles

Bases de Datos Geográficos

Bases de Datos Geográficos Bases de Datos Geográficos SQL - Lenguaje de Bases de Datos Relacionales Instituto de Agrimensura - Facultad de Ingeniería Universidad de la República Introducción El nombre SQL (Structured Query Language)

Más detalles

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S.

SQL, Consultas. Son Importantes las Consultas? Cuál es el Resultado de SELECT? Andrés Moreno S. SQL, Consultas Andrés Moreno S. 1 Son Importantes las Consultas? Una cosa es guardar la información en forma estructurada y ordenada. Pero el utilizar la información y entender su relevancia son la clave

Más detalles

Consultas SQL II. Diego Egüez. Universidad San Francisco de Quito (USFQ)

Consultas SQL II. Diego Egüez. Universidad San Francisco de Quito (USFQ) Consultas SQL II Diego Egüez Universidad San Francisco de Quito (USFQ) Abstract En este trabajo se exploran las consultas o queries en SQL. Se hace enfoque en consultas complejas y subconsultas. Los comandos

Más detalles

Oracle Fundamentos. Programa de Estudio.

Oracle Fundamentos. Programa de Estudio. Oracle Fundamentos Programa de Estudio Oracle Fundamentos Aprende a programar en SQL con la base de datos más poderosa del mercado. Diseña y modela bases de datos corporativas utilizando las herramientas

Más detalles

Oracle Fundamentos. Programa de Estudio.

Oracle Fundamentos. Programa de Estudio. Oracle Fundamentos Programa de Estudio Oracle Fundamentos Aprende a programar en SQL con la base de datos más poderosa del mercado. Diseña y modela bases de datos corporativas utilizando las herramientas

Más detalles

Comandos DLL. Comandos DML

Comandos DLL. Comandos DML Introducción a SQL SERVER El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos

Más detalles

UNIVERSIDAD DE PAMPLONA DISEÑO Y FUNDAMENTOS DE BASE DE DATOS MENTOR: Esp. ALEXIS OLVANY TORRES CH.

UNIVERSIDAD DE PAMPLONA DISEÑO Y FUNDAMENTOS DE BASE DE DATOS MENTOR: Esp. ALEXIS OLVANY TORRES CH. Las consultas de acción son aquellas que no devuelven ningún registro, son las encargadas de acciones como añadir y borrar y modificar registros. Tanto las sentencias de actualización como las de borrado

Más detalles

SQL. Amparo López Gaona. México, D.F. Noviembre 2003

SQL. Amparo López Gaona. México, D.F. Noviembre 2003 Amparo López Gaona México, D.F. Noviembre 2003 Introducción El lenguaje SQL (Structured Query Language) es el lenguaje estándar para trabajo con bases de datos relacionales. Permite la definición, acceso

Más detalles

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT

Introducción 1 Recuperación de Datos mediante la Sentencia SQL SELECT Introducción Objetivos I-2 Objetivos del Curso I-3 Oracle11g - 12cI-5 Oracle Database 11g - 12cI-6 Oracle Application Server 11g - 12cI-7 Oracle Enterprise Manager 11g - 12cGrid Control I-8 Sistema de

Más detalles

SQL. Lenguaje de Consulta Estructurado. Curso básico de SQL (Leire Urcola Carrera)

SQL. Lenguaje de Consulta Estructurado. Curso básico de SQL (Leire Urcola Carrera) SQL Lenguaje de Consulta Estructurado Curso básico de SQL (Leire Urcola Carrera) Indice de contenidos Introducción Consultas de Selección Criterios de Selección Agrupamiento de Registros y funciones agregadas

Más detalles

Consultas. Comparación Filtros vs Consultas Tipos de Consultas Crear, reutilizar y Ejecutar Consultas. Consultas Diapositiva 1.

Consultas. Comparación Filtros vs Consultas Tipos de Consultas Crear, reutilizar y Ejecutar Consultas. Consultas Diapositiva 1. Consultas Comparación Filtros vs Consultas Tipos de Consultas Crear, reutilizar y Ejecutar Consultas Consultas Diapositiva 1 Qué son? Una consulta es un objeto de base de datos que permite extraer campos

Más detalles

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón

1. Lenguaje de Definición de Datos. 2. Lenguaje de Manipulación de. Datos. M. C. Gustavo Alfonso Gutiérrez Carreón 1. Lenguaje de Definición de Datos 2. Lenguaje de Manipulación de Datos M. C. Gustavo Alfonso Gutiérrez Carreón Los 'sistemas de gestión de bases de datos (en inglés database management system, abreviado

Más detalles

SQL Básico. José Muñoz Jimeno Febrero 2015

SQL Básico. José Muñoz Jimeno Febrero 2015 SQL Básico José Muñoz Jimeno Febrero 2015 Control de cambios Version Fecha Comentarios 1.0 13/02/2015 Primera versión para el curso Introducción a las bases de datos con MySQL en el COITCV La última versión

Más detalles

Laboratorios de BASES DE DATOS. (I.T. Informática)

Laboratorios de BASES DE DATOS. (I.T. Informática) Laboratorios de BASES DE DATOS. (I.T. Informática) Gestor de bases de datos ORACLE M. Martínez, C. Hernández, C. Cuesta Dpto. de Informática (U. Valladolid) Base de datos de ejemplo EMPLEADOS (NOMBRE,

Más detalles

Consultas. Consultas Diapositiva 1

Consultas. Consultas Diapositiva 1 Consultas Comparación Filtros vs Consultas Tipos de Consultas Criterios, Parámetros, Campos Calculados, Funciones de agregado Crear, reutilizar y ejecutar consultas Consultas Diapositiva 1 Consultas Cuando

Más detalles

SQL El lenguaje de consulta estructurado MsC (c) Esp. Alexis Ovany Torres Ch. Orientador Fundamentos y Diseño de Base de Datos

SQL El lenguaje de consulta estructurado MsC (c) Esp. Alexis Ovany Torres Ch. Orientador Fundamentos y Diseño de Base de Datos SQL El lenguaje de consulta estructurado MsC (c) Esp. Alexis Ovany Torres Ch. damian7914@hotmail.com Orientador Fundamentos y Diseño de Base de Datos SQL El lenguaje de consulta estructurado o SQL (por

Más detalles

Uso de sentencias para el envió y extracción de datos

Uso de sentencias para el envió y extracción de datos Base de datos I Uso de sentencias para el envió y extracción de datos Objetivos: Identificar la sintaxis de las consultas de datos Elaborar sentencias de manejo de datos. INTRODUCCION: Las sentencias más

Más detalles

MATERIAL INTRODUCTORIO ORACLE 11G

MATERIAL INTRODUCTORIO ORACLE 11G MATERIAL INTRODUCTORIO ORACLE 11G Esp. JONATHAN GUERRERO ASTAIZA Capacidades de una sentencia SELECT La sentencia SELECT recibe información a partir de una base de datos. Con la sentencia SELECT usted

Más detalles

Bases de datos: Lenguaje de consultas SQL

Bases de datos: Lenguaje de consultas SQL Bases de datos: Lenguaje de consultas SQL EMPEZAR LA CASA POR EL TEJADO Del código máquina a los lenguajes de alto nivel. Img 0. Del código máquina al lenguaje de alto nivel. Creación propia. De los sistemas

Más detalles

Serie de consulta LONGO Sql - 1 -

Serie de consulta LONGO Sql - 1 - Serie de consulta LONGO Sql - 1 - La sentencia SELECT En esta lección aprenderá como: Seleccionar todas las columnas en una consulta Seleccionar un subconjunto de columnas en una consulta Renombrar las

Más detalles

Tema 4: Dinámica del Modelo Relacional. El lenguaje SQL

Tema 4: Dinámica del Modelo Relacional. El lenguaje SQL Tema 4: Dinámica del Modelo Relacional. El lenguaje SQL Departamento de Ciencias de la Computación e Inteligencia Artificial UNIVERSIDAD DE SEVILLA Bases de Datos Curso 2009--10 1 El Lenguaje SQL El Lenguaje

Más detalles

Taller de Herramientas de Software : ST 213 Secc: V y W

Taller de Herramientas de Software : ST 213 Secc: V y W Universidad Nacional De Ingeniería Facultad Ingeniería Industrial y de Sistemas Taller de Herramientas de Software : ST 213 Secc: V y W SESION Nro. 9 CONSULTAS MULTITABLAS FUNCIONES RESUMEN Docente: Ing.

Más detalles

SQL Avanzado. José Muñoz Jimeno Febrero 2015

SQL Avanzado. José Muñoz Jimeno Febrero 2015 SQL Avanzado José Muñoz Jimeno Febrero 2015 Control de cambios Versión Fecha Comentarios 1.0 13/02/2015 Primera versión para el curso Introducción a las bases de datos con MySQL en el COITCV La última

Más detalles

Modelamiento y Gestión de Base de Datos

Modelamiento y Gestión de Base de Datos Modelamiento y Gestión de Base de Datos Uso de sentencias para el envió y extracción de datos Objetivos: Identificar la sintaxis de las consultas de datos Elaborar sentencias de manejo de datos. INTRODUCCION:

Más detalles

1. DML. Las consultas multitabla

1. DML. Las consultas multitabla 1.1 Introducción 1. DML. Las consultas multitabla Hasta ahora hemos visto consultas que obtienen los datos de una sola tabla, en este tema veremos cómo obtener datos de diferentes tablas en una sola instrucción

Más detalles

Guía práctica SQL. (c) Francisco Charte Ojeda

Guía práctica SQL. (c) Francisco Charte Ojeda Guía práctica SQL Introducción Qué es SQL? Aplicaciones de SQL Intérpretes de SQL Tipos de RDBMS (c) Francisco Charte Ojeda Cómo usar este libro Convenciones tipográficas 1. El modelo relacional 1.1. Introducción

Más detalles

SQL DML Select. Ges$ón y Modelación de Datos. María Constanza Pabón

SQL DML Select. Ges$ón y Modelación de Datos. María Constanza Pabón SQL DML Select Ges$ón y Modelación de Datos María Constanza Pabón mcpabon@javerianacali.edu.co SQL - DML Sentencias: INSERT UPDATE DELETE SELECT SQL - DML Query (consulta): proceso de recuperar datos de

Más detalles

Consultas SQL INNER JOIN

Consultas SQL INNER JOIN Consultas SQL INNER JOIN Inner join sólo produce los registros que coinciden en las dos tablas A y B. 2. INNER JOIN TablaB Full outer join produce el conjunto de todos los registros en las tablas A y B,

Más detalles

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1

ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1 ADMINISTRACION DE ORACLE 9i Guía de estudio (OCA) TEMA 1 TEMA 1. CONSULTAS BÁSICAS Fundamentos de SQL Tipos de datos, operadores y literales Sentencia SELECT Limitación de filas y operadores Ordenación

Más detalles

Tema 4. TEMA 4. El lenguaje de consulta SQL

Tema 4. TEMA 4. El lenguaje de consulta SQL Tema 4 TEMA 4. El lenguaje de consulta SQL Juan M Camarillo. Dpto. de Geografía Física y AGR Juan A. Ortega. Dpto. de Lenguajes y Sistemas Informáticos Jesús Torres. Dpto. de Lenguajes y Sistemas Informáticos

Más detalles

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

GUÍA DE TRABAJO N 5 GRADO 11 Programación y Diseño de Articulación SENA Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 Página 1 de 6 GUIA N 5 LINEA DE COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE

Más detalles

Ejercicio2: Crear tablas y modificarlas. Crear las siguientes tablas en la base de datos que habeis creado en el punto anterior.

Ejercicio2: Crear tablas y modificarlas. Crear las siguientes tablas en la base de datos que habeis creado en el punto anterior. Ejercicio 1: Crear una base de datos. Arrancar el programa Microsoft Access y crear una base de datos en blanco. Dar un nombre y ubicación a vuestro gusto (p.ej: Nombre=gestión, Ubicación=C:/Mis documentos).

Más detalles

Data source name: Nombre por el que se conocerá la conexión ODBC y que será usado en los distintos clientes del driver ODBC.

Data source name: Nombre por el que se conocerá la conexión ODBC y que será usado en los distintos clientes del driver ODBC. Página 1 de 16 Odbc Driver V7 Se trata del driver de acceso a datos Velneo. Satisface los siguientes estándares ODBC: - Driver ODBC Version: 3.00 - ODBC Version: 3.52 - ODBC API Conformance Level 1 - ODBC

Más detalles

CC BASES DE DATOS OTOÑO 2018

CC BASES DE DATOS OTOÑO 2018 CC3201-1 BASES DE DATOS OTOÑO 2018 Clase 6: SQL (II) Aidan Hogan aidhog@gmail.com Forma básica de una consulta de SQL Los planetas EL TEMA DE HOY MÁS SQL! Capítulo 5.4-5.6 Ramakrishnan / Gehrke El Álgebra

Más detalles

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA

GUÍA DE TRABAJO N 7 GRADO 11. Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6 GUIA N 7 COMANDOS MYSQL II. CREAR UNA TABLA Página 1 de 6 GUIA N 7 COMANDOS MYSQL I. CREAR, SELECCIONAR, VISUALIZAR 1. CREAR BASE DE DATOS CREATE DATABASE Nombre_Base_Datos; 2. VER LISTADO DE BASES DE DATOS SHOW DATABASES; 3. USAR UNA BASE DE DATOS

Más detalles

1. Introducción Componentes del SQL

1. Introducción Componentes del SQL 1. Introducción El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet. SQL se utiliza para crear objetos QueryDef,

Más detalles

Trabajo avanzado con consultas

Trabajo avanzado con consultas 1. ESTABLECER CRITERIOS H emos estado trabajando con consultas, incluso aplicando criterios más o menos complejos, pero sin pararnos mucho en cómo se construyen las expresiones que nos permiten recuperar

Más detalles

Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Click here if your download doesn"t start automatically

Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Click here if your download doesnt start automatically Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Click here if your download doesn"t start automatically Manual Aprendiendo Practicando Oracle SQL (Spanish Edition) Manual Aprendiendo Practicando

Más detalles

Uso de sentencias avanzadas

Uso de sentencias avanzadas Base de datos I Uso de sentencias avanzadas Objetivos: Elaborar sentencias de manejo de datos. Introducción: Después de trabajar con las sentencias de agregar, modificar, editar y visualizar datos, debemos

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO 3-2016 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN GUÍA DE LABORATORIO Nº 8 Nombre de la práctica: Consultas a múltiples tablas. Uso de JOIN y SUBCONSULTAS. Lugar

Más detalles

CC BASES DE DATOS OTOÑO Clase 5: SQL (II) Aidan Hogan

CC BASES DE DATOS OTOÑO Clase 5: SQL (II) Aidan Hogan CC3201-1 BASES DE DATOS OTOÑO 2017 Clase 5: SQL (II) Aidan Hogan aidhog@gmail.com El Cálculo Relacional (de tuplas) Fórmulas atómicas: Una fórmula puede ser Una fórmula atómica o Sean (recursivamente)

Más detalles

Uso de SQL. "WHERE id = " + cuentas[i].getid() o bien ResulSet r =s.executequery("select nombre FROM alumno" + "WHERE id = " + cuentas[i].

Uso de SQL. WHERE id =  + cuentas[i].getid() o bien ResulSet r =s.executequery(select nombre FROM alumno + WHERE id =  + cuentas[i]. Introducción El lenguaje (Structured Query Language) es el lenguaje estándar para trabajo con bases de datos relacionales. Permite la definición, acceso y control de datos en una base de datos relacional.

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2014 Docentes: UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº 6 Nombre de la practica: Uso de consultas utilizando la instrucción SELECT

Más detalles

Modelamiento y Diseño de Base de Datos

Modelamiento y Diseño de Base de Datos Modelamiento y Diseño de Base de Datos Combinación de tablas Objetivos: Utiliza sentencias para unir los datos de diferentes tablas. Introducción Una vez se tienen creada la base de datos y hemos creado

Más detalles

Tema 4. DML (Parte I)

Tema 4. DML (Parte I) Tema 4 DML (Parte I) IES Francisco Romero Vargas Departamento de Informática Tema 4. DML (I). Página 1 de 9 1. Introducción Un Lenguaje de Manipulación de Datos (Data Manipulation Language, DML) es un

Más detalles

SQL JULIO CESAR CANO R

SQL JULIO CESAR CANO R SQL JULIO CESAR CANO R Introducción a SQL Qué significa SQL? Qué es el SQL? Significado de SQL Ingles Structured Query Language Español Lenguaje Estructurado de Consultas Qué es SQL? Es un lenguaje de

Más detalles

La forma básica de la instrucción SELECT consta de tres cláusulas SELECT, FROM y WHERE (donde)

La forma básica de la instrucción SELECT consta de tres cláusulas SELECT, FROM y WHERE (donde) La sintaxis básica de una consulta de selección es la siguiente: SELECT Campos FROM nombre_tabla; La forma básica de la instrucción SELECT consta de tres cláusulas SELECT, FROM y WHERE (donde) SELECT

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION CICLO 01-2012 GUIA DE LABORATORIO Nº 7 Nombre de la practica: Agrupación y sumarización en SQL Server 2008 Lugar de ejecución:

Más detalles

Modificar estructura Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc.

Modificar estructura Se pueden agregar/quitar campos a una tabla, modificar el tipo de un campo, agregar/quitar índices a una tabla, etc. EL lenguaje SQL(Structured Query Language) El Lenguaje de Consulta Estructurado (Structured Query Language) es unlenguaje de acceso a bases de datos relacionales que permite especificar diversos tipos

Más detalles

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez

INFORMÁTICA MÉDICA. Profesor: MsC. Liz Armenteros Chávez INFORMÁTICA MÉDICA Profesor: MsC. Liz Armenteros Chávez Tema No.2: Gestión de la Información Biomédica Conferencia No.3 DDL (Data Definition Language) Lenguaje de definición de datos Marzo, 2014 Definir

Más detalles

SQL. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Abril 2012 / 14

SQL. Dra. Amparo López Gaona () Posgrado en Ciencia e Ingeniería de la Compu. Abril 2012 / 14 Dra. Amparo López Gaona tación, UNAM Abril 2012 Introducción El lenguaje (Structured Query Language) es el lenguaje estándar para trabajo con bases de datos relacionales. Permite la definición, acceso

Más detalles

Práctica 2: CONSULTAS

Práctica 2: CONSULTAS Departamento de Lenguajes y Sistemas Informáticos E.T.S. Ingeniería Informática. Universidad de Sevilla Avda Reina Mercedes s/n. 41012 Sevilla Tlf/Fax 954 557 139 E-mail lsi@lsi.us.es Web www.lsi.us.es

Más detalles

ÍNDICE INTRODUCCIÓN...17

ÍNDICE INTRODUCCIÓN...17 ÍNDICE INTRODUCCIÓN...17 CAPÍTULO 1. ORACLE 11g Y EL GRID COMPUTING...19 1.1 CONCEPTO DE GRID COMPUTING...19 1.2 ORACLE GRID COMPUTING...20 1.2.1 Almacenamiento eficiente de la información...21 1.2.2 Utilización

Más detalles

LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS

LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS PREVIO 5 LENGUAJE DE MANIPULACIÓN DE DATOS (DML) CONSULTA DE DATOS INTRODUCCIÓN SQL permite realizar consultas con condiciones de búsqueda, de tal forma que los resultados son precisamente aquellos que

Más detalles

SQL. Carlos A. Olarte BDI

SQL. Carlos A. Olarte BDI Carlos A. Olarte (carlosolarte@puj.edu.co) BDI Outline 1 Introducción 2 Select... from... where 3 Renombramiento 4 Ordenamiento 5 Reuniones 6 Operaciones sobre conjuntos 7 Funciones de Agregación 8 Subconsultas

Más detalles

Sistemes de Supervisió Industrial - SCADAS

Sistemes de Supervisió Industrial - SCADAS Girona, Octubre 24 de 2002 Assignatura de Lliure Elecció 2002/ 2003 Profesores: Juan José Mora Flórez David Alejandro Llanos SQL Structured Query Language Introducción El lenguaje de consulta estructurado

Más detalles

Laboratorio de Bases de Datos (EBB)

Laboratorio de Bases de Datos (EBB) Laboratorio de Bases de Datos (EBB) Unidad III Consultas Departamento de Electricidad, Electrónica y Computación Facultad de Ciencias Exactas y Tecnología Universidad Nacional de Tucumán Primer Cuatrimestre

Más detalles

INGENIERÍA TELEINFORMÁTICA

INGENIERÍA TELEINFORMÁTICA INGENIERÍA TELEINFORMÁTICA Programas Utilitarios Sesión 31 Diseño de Consultas Docente: Ing. María Nícida Malca Quispe 1 AGENDA Diseño de consultas Tipos de consultas. Crear consultas. Vistas de una consulta.

Más detalles

Clase 4: SQL DDL DML Consultas Simples y Multitablas. BASE DE DATOS FAC.DE INGENIERIA - UNJu

Clase 4: SQL DDL DML Consultas Simples y Multitablas. BASE DE DATOS FAC.DE INGENIERIA - UNJu Clase 4: SQL DDL DML Consultas Simples y Multitablas BASE DE DATOS FAC.DE INGENIERIA - UNJu SQL (Structured query language) Es un lenguaje de consulta estructurado, surgido de un proyecto de investigación

Más detalles

Velneo ODBC Driver V7

Velneo ODBC Driver V7 Velneo ODBC Driver V7 Odbc Driver V7...3 Configuración...3 Referencia de comandos SQL...4 Sentencia SELECT...4 Sintaxis...4 Entradas...4 Salidas...4 Sentencia SELECT simple...5 Sentencia Select conteniendo

Más detalles

Agrupamiento de registros. Elaboración de claúsulas avanzadas de selección. 31/12/2011. Unidad 9

Agrupamiento de registros. Elaboración de claúsulas avanzadas de selección. 31/12/2011. Unidad 9 Agrupamiento de registros Unidad 9 Elaboración de claúsulas avanzadas de selección. Un agrupamiento es el tratamiento único de varios registros que poseen un mismo valor de campo. Al realizar un agrupamiento,

Más detalles

Tutorial MySql - 1 -

Tutorial MySql - 1 - Tutorial MySql - 1 - Índice 1 - Introducción...4 2 - show databases...5 3 - Creación de una tabla y mostrar sus campos (create table - show tables - describe - drop table)...6 4 - Carga de registros a

Más detalles

Índice de contenido. Velneo ODBC Driver 20. Telf. (+34) velneo.es

Índice de contenido. Velneo ODBC Driver 20. Telf. (+34) velneo.es Índice de contenido Odbc Driver...3 Configuración...3 Referencia de comandos SQL...5 Sentencia SELECT...5 Sintaxis...5 Entradas...5 Salidas...6 Sentencia SELECT simple...6 Sentencia Select conteniendo

Más detalles

Manual Práctico de SQL. ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García

Manual Práctico de SQL. ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García ORIENTADO A SQL 7.0 Preparado por: Alvaro E. García alvaroegarcia@ubbi.com ÍNDICE INTRODUCCIÓN 3 PASOS PARA IMPLEMENTAR UNA BD 5 CREAR UNA BD 6 SENTENCIA CREATE 8 LIGADURAS 9 ELIMINACIÓN DE TABLAS 14 SENTENCIA

Más detalles

SELECT SELECT WHERE WHERE GROUP BY

SELECT SELECT WHERE WHERE GROUP BY [,,...] * FROM [alias_tabla_1][, [alias_tabla_2],... [alias_tabla_n]] [] [GROUP BY [HAVING]]

Más detalles