Unidad 3 Informe
Unidad 3 Informe
Unidad 3 Informe
2021-01
Prof. Edward Martinez
Felix E. Reyes
100470672
INDICE
Introducción............................................................................................................................................................3
Definición de SQL.................................................................................................................................................3
Definición de datos y tipos de datos de SQL........................................................................................4
Conceptos de esquema y catálogo en SQL........................................................................................4
El comando CREATE TABLE de SQL....................................................................................................4
Tipos de datos y dominios en SQL.................................................................................................................5
Especificación de restricciones en SQL.......................................................................................................6
Especificación de las restricciones de clave y de integridad referencial..................................7
Asignación de nombres a las restricciones............................................................................................7
Especificación de restricciones en las tuplas utilizando CHECK.................................................7
Sentencias de SQL para cambiar el esquema.............................................................................................8
Comando DROP.................................................................................................................................................8
Comando ALTER...............................................................................................................................................8
Consultas básicas en SQL..................................................................................................................................9
Estructura SELECT-FROM-WHERE de las consultas básicas de SQL..........................................9
Cláusula WHERE no especificada y uso del asterisco.....................................................................10
Ordenación del resultado de una consulta...........................................................................................10
Consultas SQL más complejas.......................................................................................................................11
Comparaciones con valores NULL y lógica de tres valores...........................................................11
Funciones agregadas en SQL.....................................................................................................................12
Agrupamiento: Las clausulas GROUP BY y HAVING.........................................................................12
Sentencias INSERT, DELETE y UPDATE de SQL....................................................................................13
Comando INSERT...........................................................................................................................................13
Comando DELETE..........................................................................................................................................14
Comando UPDATE..........................................................................................................................................14
Vistas (tablas virtuales) en SQL.....................................................................................................................15
Concepto de vista en SQL...........................................................................................................................15
Especificación de vistas en SQL...............................................................................................................15
Conclusión.............................................................................................................................................................. 16
Bibliografía............................................................................................................................................................. 17
2
Introducción
En el presente informe le estaré hablando sobre el Lenguaje SQL y lo que nos permite
hacer este lenguaje que lo hace tan importante en la actualidad.
El lenguaje SQL se puede considerar como una de las principales razones del éxito
comercial de las bases de datos relacionales. Como se convirtió en un estándar para
estas últimas, los usuarios perdieron el miedo a migrar sus aplicaciones de base de
datos desde otros tipos de sistemas de bases de datos (por ejemplo, sistemas de red o
jerárquicos) a los sistemas relacionales, porque aunque estuvieran satisfechos con el
producto DBMS relacional que estaban utilizando, no esperaban que la conversión a
otro producto DBMS relacional fuera caro y consumiera mucho tiempo, ya que ambos
sistemas seguían los mismos estándares en cuanto al lenguaje.
Definición de SQL
SQL es un lenguaje de bases de datos global: cuenta con sentencias para definir datos,
consultas y actualizaciones. Por tanto, se comporta como DDL y como DML. Además,
dispone de características para definir vistas en la base de datos, especificar temas de
seguridad y autorización, definir restricciones de integridad, y especificar controles de
transacciones. También tiene reglas para incrustar sentencias de SQL en un lenguaje
de programación de propósito general, como Java, COBOL o C/C++.
3
Definición de datos y tipos de datos de SQL
SQL utiliza los términos tabla, fila y columna para los términos relación, tupla y
atributo del modelo relacional formal, respectivamente. Utilizaremos todos estos
términos indistintamente. El principal comando de SQL para definir datos es la
sentencia CREATE, que se utiliza para crear esquemas, tablas (relaciones) y dominios
(así como otras estructuras, como vistas, aserciones y triggers).
El concepto de esquema SQL se incorporó por primera vez en SQL2 para agrupar las
tablas y otras estructuras pertenecientes a la misma aplicación de base de datos. Un
esquema SQL se identifica con un nombre de esquema e incluye un identificador de
autorización para indicar el usuario o la cuenta propietaria del esquema, así como unos
descriptores para cada elemento. Los elementos del esquema son las tablas, las
restricciones, las vistas, los dominios y otras estructuras (como la concesión de
autorización), que describen el esquema. El esquema se crea con la sentencia CREATE
SCHEMA, que puede incluir las definiciones de todos sus elementos.
Por ejemplo, la siguiente sentencia crea el esquema EMPRESA, propiedad del usuario
cuyo identificador de autorización es ‘Jperez’.
4
atributo, como NOT NULL. Las restricciones de clave, integridad de entidad e
integridad referencial, pueden especificarse con la sentencia CREATE TABLE después
de haber declarado los atributos, o pueden añadirse más tarde con el comando ALTER
TABLE.
Los tipos de datos básicos disponibles para los atributos son numéricos, cadena de
caracteres, cadena de bits, booleano, fecha y hora.
5
OBJECT o BLOB destinado a especificar las columnas que tienen valores
binarios más grandes, como las imágenes.
El tipo de datos DATE tiene diez posiciones y sus componentes son AÑO, MES
Y DIA según la forma AAAA-MM-DD.
El tipo de datos TIME tiene al menos ocho posiciones, con los componentes
HORAS, MINUTOS Y SEGUNDOS en la forma HH:MM:SS. La implementación de
SQL sólo debe permitir las fechas y las horas válidas. La comparación < (menor
que) se puede utilizar con fechas y horas (una fecha anterior se considera que
es más pequeña que una fecha posterior, y lo mismo pasa con las horas).
Como SQL permite NULL como valor de atributo, es posible especificar una restricción
NOT NULL si no se permite NULL para un atributo en particular. Esto siempre se
especifica implícitamente para los atributos que forman parte de la clave principal de
cada relación, pero puede especificarse para cualquier otro atributo para cuyo valor se
exige que no sea NULL.
Otro tipo de restricción puede ser restringir los valores de atributo o dominio con la
cláusula CHECK a continuación de la definición de un atributo o dominio. Por ejemplo,
suponga que los números de departamento están restringidos a número enteros entre
1 y 20; entonces, podemos cambiar la declaración de atributo de NumeroDpto en la
tabla DEPARTAMENTO a lo siguiente:
6
Especificación de las restricciones de clave y de integridad
referencial
Como las restricciones de clave e integridad referencial son muy importantes, hay
cláusulas especiales para la sentencia CREATE TABLE.
La cláusula PRIMARY KEY especifica uno o más atributos que constituyen la clave
principal de una relación. Si una clave principal sólo tiene un atributo, la cláusula
puede seguir al atributo directamente. Por ejemplo, la clave principal de
DEPARTAMENTO se puede especificar de la siguiente manera:
7
Sentencias de SQL para cambiar el esquema
Aquí veremos Comandos de evolución del esquema de SQL, que se pueden utilizar
para alterar un esquema añadiendo o eliminando tablas, atributos, restricciones y otros
elementos del esquema.
Comando DROP
El comando DROP se puede utilizar para eliminar los elementos con nombre del
esquema, como tablas, dominios o restricciones. También puede eliminar un esquema.
Por ejemplo, si ya no se necesita un esquema entero, se puede utilizar el comando
DROP SCHEMA.
Por ejemplo, para eliminar el esquema de la base de datos EMPRESA y todas sus
tablas, dominios y otros elementos, se utiliza la opción CASCADE de este modo:
El comando DROP TABLE no sólo elimina todos los registros de la tabla, sino también
la definición de la tabla del catálogo. Si se desea eliminar los registros, pero
manteniendo la definición de la tabla para un uso futuro, entonces hay que utilizar el
comando DELETE en lugar de DROP TABLE.
Comando ALTER.
La definición de una tabla base o de otros elementos con nombre del esquema se
puede cambiar con el comando ALTER. Para las tablas base, las posibles acciones de
alteración incluyen la adición o eliminación de una columna (atributo), el cambio de la
definición de una columna, y la adición o eliminación de restricciones.
8
Por ejemplo, para añadir a las relaciones base EMPLEADO del esquema EMPRESA un
atributo que sirva para hacer un seguimiento de los trabajos de los empleados,
podemos usar este comando:
SQL tiene una sentencia básica para recuperar información de una base de datos:
SELECT.
SQL permite que una tabla (relación) tenga dos o más tuplas idénticas en todos sus
valores de atributo. Por tanto, en general, una tabla SQL no es un conjunto de tuplas,
porque un conjunto no per- mite dos miembros idénticos; en su lugar, es un
multiconjunto (a veces conocido como bolsa) de tuplas. Algunas relaciones SQL están
restringidas a ser conjuntos porque se ha declarado una restricción de clave o porque
se ha utilizado la opción DISTINCT con la sentencia SELECT.
donde:
Ejemplo:
9
Cláusula WHERE no especificada y uso del asterisco
La ausencia de una cláusula WHERE indica que no hay una condición en la selección
de tuplas; por tanto, todas las tuplas de la relación especificada en la cláusula FROM
se califican y seleccionan para la consulta resultante.
Para recuperar todos los valores de atributo de las tuplas seleccionadas, no tenemos
que listar explícitamente los nombres de los atributos en SQL; podemos escribir un
asterisco (∗), que tiene el significado de todos los atributos. Por ejemplo:
SELECT * FROM EMPLEADO WHERE Dno=5;
SQL permite ordenar las tuplas del resultado de una consulta por los valores de uno o
más atributos, utilizando la cláusula ORDER BY.
Este ejemplo recupera una lista de empleados y de los proyectos en los que trabajan,
ordenada por el departamento.
10
Consultas SQL más complejas
SQL tiene varias reglas para tratar con los valores NULL. NULL se utiliza para
representar la ausencia de un valor, aunque normalmente tiene una de tres
interpretaciones diferentes: valor desconocido (existe, pero no se conoce), valor no
disponible (existe, pero no se especifica a propósito), o atributo no aplicable (no
definido para esta tupla). Considere los siguientes ejemplos para ilustrar cada uno de
los significados de NULL.
Atributo no aplicable. Un atributo Último Grado sería NULL para una persona
que no tiene una licenciatura, algo que no es aplicable para esa persona.
Resulta que cuando se especifica una condición de concatenación, las tuplas con
valores NULL en los atributos de concatenación no se incluyen en el resultado. La
Consulta IS ilustra esto y a continuación veremos un ejemplo:
11
SELECT Nombre, Apellido1
FROM EMPLEADO
WHERE SuperDni IS NULL;
Ejemplo. Visualizar la suma de los salarios de todos los empleados, el salario más alto,
el salario más bajo y el sueldo medio.
12
Nota: El asterisco (*) se refiere a las filas (tuplas), por lo que COUNT (*) devuelve el
número de filas del resultado de la consulta. También podemos utilizar la función
COUNT para contar los valores de una columna en lugar de las tuplas
A veces necesitamos recuperar los valores de esas funciones sólo para aquellos grupos
que satisfacen ciertas condiciones. Por ejemplo, suponga que realizar una consulta que
en el resultado sólo aparezcan los proyectos con más de dos empleados. SQL
proporciona una cláusula HAVING, que puede aparecer en combinación con una
cláusula GROUP BY, con este propósito.
Ejemplo. Por cada proyecto en el que trabajan más de dos empleados, recuperar el
número, el nombre y la cantidad de empleados que trabajan en él.
Comando INSERT
En su formato más sencillo, INSERT se utiliza para añadir una sola tupla a una
relación. Debemos especificar el nombre de la relación y una lista de valores para la
tupla. Los valores deben suministrarse en el mismo orden en el que se especificaron
los atributos correspondientes en el comando CREATE TABLE.
INSERT se utiliza para agregar los valores o datos a una tabla seleccionada. Ejemplo:
13
Comando DELETE
El comando DELETE elimina tuplas de una relación. Incluye una cláusula WHERE,
parecida a la que se utiliza en una consulta SQL, para seleccionar las tuplas que se van
a eliminar. Las tuplas se eliminan explícitamente sólo de una tabla a la vez. Sin
embargo, la eliminación se puede propagar a tuplas de otras relaciones si se han
especificado acciones de activación referencial en las restricciones de integridad
referencial del DDL.
Comando UPDATE
El comando UPDATE se utiliza para modificar los valores de atributo de una o más
tuplas seleccionadas. Como en el comando DELETE, una cláusula WHERE en el
comando UPDATE selecciona las tuplas de una relación que se van a modificar. No
obstante, la actualización del valor de una clave principal puede propagarse a los
valores de la foreign key de las tuplas de otras relaciones en caso de haberse
especificado una acción de activación referencial en las restricciones de integridad
referencial del DDL.
Una cláusula SET adicional en el comando UPDATE especifica los atributos que se
modificarán y sus nuevos valores.
UPDATE PROYECTO
SET UbicaciónProyecto = 'Valencia', NumDptoProyecto = 5
WHERE NumProyecto=10;
14
Vistas (tablas virtuales) en SQL
Una vista en terminología SQL es una tabla que deriva de otras tablas. Esas otras
tablas pueden ser tablas base o vistas definidas anteriormente. Una vista no existe
necesariamente en formato físico; está considerada como una tabla virtual, en
oposición a las tablas base, cuyas tuplas están realmente almacenadas en la base de
datos. Esto limita las posibles operaciones de actualización que pueden aplicarse a las
vistas, pero no ofrecen limitación alguna al consultar una vista.
En SQL se utiliza el comando CREATE VIEW para especificar una vista. A una vista se
le asigna un nombre de tabla (virtual), o nombre de vista, una lista de nombres de
atributos y una consulta que sirve para especificar el contenido de la vista.
Ejemplo:
15
Conclusión
En este informe hemos presentado el lenguaje de bases de datos SQL especificado en
el capítulo 8 del libro FUNDAMENTOS DE SISTEMAS DE BASES DE DATOS en su 5ta
Edición. SQL ha permitido la evolución sobre la manera en la que almacenamos,
gestionamos y organizamos los datos.
16
Bibliografía
1. Ramez Elmasri, Shamkant B. Navathe (2007). Fundamentos de Sistemas de
Bases de Datos. Editora Pearson, Madrid, 5ta. Edición.
17