jueves, 23 de julio de 2015

SQL Sentencias de manipulación - Consultas a una base de datos relacional - Funciones de agregración

El SQL nos ofrece las siguientes funciones de agregación para efectuar varias operaciones sobre los datos de una base de datos:
En general, las funciones de agregación se aplican a una columna, excepto la función de agregación COUNT, que normalmente se aplica a todas las columnas de la tabla o tablas seleccionadas. Por lo tanto, COUNT (*) contará todas las filas de la tabla o las tablas que cumplan las condiciones. Si se utilizase COUNT(distinct columna), sólo contaría los valores que no fuesen nulos ni repetidos, y si se utilizase COUNT (columna), sólo contaría los valores que no fuesen nulos.

miércoles, 22 de julio de 2015

martes, 21 de julio de 2015

SQL Sentencias de manipulación - Consultas a una base de datos relacional - Consultas a BDUOC seleccionando filas (I)

Si queremos que en una consulta nos aparezcan las filas resultantes sin repeticiones, es preciso poner la palabra clave DISTINCT inmediatamente después de SELECT. También podríamos explicitar que lo queremos todo, incluso con repeticiones, poniendo ALL (opción por defecto) en lugar de DISTINCT. El formato de DISTINCT es:

lunes, 20 de julio de 2015

SQL Sentencias de manipulación - Consultas a una base de datos relacional - Consultas a BDUOC seleccionando filas (I)

Veamos un ejemplo en el que pedimos “los códigos de los empleados que trabajan en el proyecto número 4”:

domingo, 19 de julio de 2015

SQL Sentencias de manipulación - Consultas a una base de datos relacional - Consultas a BDUOC (II)

Si hubiésemos querido ver sólo el código, el nombre, la dirección y la ciudad, habríamos hecho:

sábado, 18 de julio de 2015

SQL Sentencias de manipulación - Consultas a una base de datos relacional - Consultas a BDUOC (I)

A continuación presentamos un ejemplo de consulta a la base de datos BDUOC para conocer todos los datos que aparece en la tabla clientes:

viernes, 17 de julio de 2015

SQL Sentencias de manipulación - Consultas a una base de datos relacional

Para hacer consultas sobre una tabla con el SQL es preciso utilizar la sentencia SELECT FROM, que tiene el siguiente formato:
La opción AS nos permite renombrar las columnas que queremos seleccionar o las tablas que queremos consultar que en este caso, es sólo una. Dicho de otro modo, nos permite la definición de alias. Fijémonos en que la palabra clave AS es opcional, y es bastante habitual poner sólo un espacio en blanco en lugar de toda la palabra

jueves, 16 de julio de 2015

SQL Sentencias de manipulación - Introducción de filas en la base de datos relacional BDUOC

Antes de empezar a hacer consultas a la base de datos BDUOC, habremos introducido unas cuantas filas en sus tablas con la sentencia INSERT INTO. De esta forma, podremos ver reflejado el resultado de las consultas que iremos haciendo, a partir de este momento, sobre cada extensión; esto lo podemos observar en las tablas correspondientes a cada extensión, que presentamos a continuación:


miércoles, 15 de julio de 2015

SQL Sentencias de manipulación - Modificación de los valores de algunas filas en BDUOC

Supongamos que queremos incrementar el sueldo de todos los empleados del proyecto 2 en 1.000 euros. La modificación a ejecutar sería:

martes, 14 de julio de 2015

SQL Sentencias de manipulación - Modificación de filas de una tabla

Si quisiéramos modificar los valores de algunas filas de una tabla, tendríamos que utilizar la sentencia UPDATE SET WHERE. A continuación presentamos su formato:

lunes, 13 de julio de 2015

SQL Sentencias de manipulación - Borrado de filas de una tabla - Borrar todas las filas de una tabla en BDUOC

Podemos dejar la tabla proyectos sin ninguna fila:
DELETE FROM proyectos;
En nuestra base de datos, borrar los proyectos del cliente 2 se haría de la forma que mostramos a continuación:

domingo, 12 de julio de 2015

SQL Sentencias de manipulación - Borrado de filas de una tabla

Para borrar valores de algunas filas de una tabla podemos utilizar la sentencia DELETE FROM WHERE. Su formato es el siguiente:
En cambio, si lo que quisiéramos conseguir es borrar todas las filas de una tabla, entonces sólo tendríamos que poner la sentencia DELETE FROM, sin WHERE.

sábado, 11 de julio de 2015

SQL Sentencias de manipulación - Inserción de una fila en BDUOC

La forma de insertar a un cliente en la tabla clientes de la base de datos de BDUOC es:

viernes, 10 de julio de 2015

SQL Sentencias de manipulación - Inserción de filas en una tabla

Antes de poder consultar los datos de una base de datos, es preciso introducirlos con la sentencia INSER TINTO VALUES, que tiene el formato:
Los valores v1, v2, ..., vn se deben corresponder exactamente con las columnas que hemos dicho que tendríamos con el CREATE TABLE y deben estar en el mismo orden, a menos que las volvamos a poner a continuación del nombre de la tabla. En este último caso, los valores se deben disponer de forma coherente con el nuevo orden que hemos impuesto. Podría darse el caso de que quisiéramos que algunos valores para insertar fuesen valores por omisión, definidos previamente con la opción DEFAULT. Entonces pondríamos la palabra reservada DEFAULT. Si se trata de introducir valores nulos, también podemos utilizar la palabra reservada NULL.

jueves, 9 de julio de 2015

SQL Sentencias de manipulación

Una vez creada la base de datos con sus tablas, debemos poder insertar, modificar y borrar los valores de las filas de las tablas. Para poder hacer esto, el SQL92 nos ofrece las siguientes sentencias: INSERT para insertar, UPDATE para modificar y DELETE para borrar. Una vez hemos insertado valores en nuestras tablas, tenemos que poder consultarlos. La sentencia para hacer consultas a una base de datos con el SQL92 es SELECT FROM. Veamos a continuación estas sentencias.

miércoles, 8 de julio de 2015

SQL Definición de la base de datos relacional BDUOC (II)

Al crear una tabla vemos que muchas restricciones se pueden imponer de dos formas: como restricciones de columna o como restricciones de tabla. Por ejemplo, cuando queremos decir cuál es la clave primaria de una tabla, tenemos las dos posibilidades. Esto se debe a la flexibilidad del SQL:
• En el caso de que la restricción haga referencia a un solo atributo, podemos elegir la posibilidad que más nos guste.
• En el caso de la tabla departamentos, tenemos que elegir por fuerza la opción de restricciones de tabla, porque la clave primaria está compuesta por más de un atributo.
En general, lo pondremos todo como restricciones de tabla, excepto NOT NULL CHECK cuando haga referencia a una sola columna.

martes, 7 de julio de 2015

SQL Definición de la base de datos relacional BDUOC (I)

Veamos cómo se crearía la base de datos BDUOC, utilizando, por ejemplo, un SGBD relacional que disponga de la sentencia CREATE DATABASE:

lunes, 6 de julio de 2015

SQL Creación y borrado de vistas Borrar una vista en BDUOC

Para borrar la vista clientes_Barcelona_Girona, haríamos lo siguiente:

DROP VIEW clientes_Barcelona_Girona RESTRICT;

domingo, 5 de julio de 2015

SQL Creación y borrado de vistas Actualización de vistas en BDUOC (IV)

Para borrar una vista es preciso utilizar la sentencia DROP VIEW, que presenta el formato:
DROP VIEW nombre_vista (RESTRICT|CASCADE);
Si utilizamos la opción RESTRICT, la vista no se borrará si está referenciada, por ejemplo, por otra vista. En cambio, si ponemos la opción CASCADE, todo lo que referencie a la vista se borrará con ésta.

sábado, 4 de julio de 2015

SQL Creación y borrado de vistas Actualización de vistas en BDUOC (III)

Si queremos asegurarnos de que se cumpla la condición de la cláusula WHERE, debemos poner la opción WHITH CHECK OPTION. Si no lo hiciésemos, podría ocurrir que alguien incluyese en la vista clientes_Barcelona_Girona a un cliente nuevo con el código 70, de nombre JMB, con el NIF 36.788.224-C, la dirección en NULL, la ciudad Lleida y el teléfono NULL.
Si consultásemos la extensión de la vista clientes_Barcelona_Girona, veríamos:

viernes, 3 de julio de 2015

SQL Creación y borrado de vistas Actualización de vistas en BDUOC (II)

El SGBD no puede actualizar la tabla básica clientes si sólo sabe la clave primaria, y todavía menos la tabla básica proyectos sin la clave primaria; por lo tanto, esta vista no sería actualizable.
En cambio, si definimos una vista para saber los clientes que tenemos en Barcelona o en Girona, haríamos:

jueves, 2 de julio de 2015

SQL Creación y borrado de vistas Actualización de vistas en BDUOC (I)

Si alguien insertase en la vista proyectos_por_cliente, los valores para un nuevo cliente 60 con tres proyectos encargados, encontraríamos que estos tres proyectos tendrían que figurar realmente en la tabla proyectos y, por lo tanto, el SGBD los debería insertar con la información que tenemos, que es prácticamente inexistente. Veamos gráficamente cómo quedarían las tablas después de esta hipotética actualización, que no llegaremos a hacer nunca, ya que iría en contra de la teoría del modelo relacional:

miércoles, 1 de julio de 2015

SQL Creación y borrado de vistas Creación de una vista en BDUOC

Creamos una vista sobre la base de datos BDUOC que nos dé para cada cliente el número de proyectos que tiene encargados el cliente en cuestión.