Está en la página 1de 25

Tema 4

Curso de Bases de Datos SQL

SQL: introducción y
estructura básica
Índice
Esquema 3

Ideas clave 4
4.1. ¿Cómo estudiar este tema? 4
4.2. Introducción 4
4.3. La definición de datos 6
© Universidad Internacional de La Rioja (UNIR)

4.4. Estructura básica de las consultas SQL 10

Lo + recomendado 18

+ Información 21

Test 23
© Universidad Internacional de La Rioja (UNIR)

SQL: INTRODUCCIÓN Y ESTRUCTURA BÁSICA

Estructura básica de las


Introducción Definición de datos
consultas SQL

Orígenes del lenguaje: IBM Con el DDL de SQL podemos: SELECT: Operación proyección.
• Definir el esquema de una
FROM: Producto cartesiano.
Componentes: relación.
• Establecer el dominio de WHERE: Operación selección.
- DDL
cada atributo.
- DML • Definir restricciones de
- Integridad integridad.
- Definición de vistas • Definir y gestionar índices.
- Control de transacciones • Seguridad y autorización de
cada relación.
- SQL incorporado y SQL dinámico
• Definir la estructura de
- Autorización almacenamiento.

Tema 4. Esquema
Esquema

Curso de Bases de Datos SQL


3
Ideas clave

4.1. ¿Cómo estudiar este tema?

Para estudiar este tema deberás leer las páginas 61-70 de: Silberschatz, A., Korth, H. F. y
Sudarshan, S. (2006). Fundamentos de bases de datos (5a. ed.). Madrid: McGraw-Hill
España.
Disponible a través de la Biblioteca Virtual de UNIR.
Además se deberán leer las ideas clave expuestas a continuación.

E
n este tema comenzaremos a aprender el lenguaje declarativo SQL,
iniciando con una pequeña introducción. A continuación, conoceremos sus
diferentes tipos de datos y aprenderemos a transcribir algunas de las
operaciones del álgebra que hemos visto en el tema anterior.

A continuación, te presentamos un resumen del contenido del manual de estudio


citado de Silberschatz y Korth (2006).

4.2. Introducción

A
unque el álgebra relacional es un lenguaje potente que nos proporciona
la posibilidad de especificar las operaciones de forma precisa, es necesario
contar con un lenguaje más sencillo para el usuario. Este lenguaje será
© Universidad Internacional de La Rioja (UNIR)

SQL.

La empresa IBM desarrolló la versión original de SQL, conocido inicialmente como


Sequel, en el marco del proyecto System R a principios de los años setenta. Sequel

Curso de Bases de Datos SQL


4
Tema 4. Ideas clave
evolucionó y pasó a llamarse SQL (Structured Query Language): lenguaje
estructurado de consultas.

En la actualidad, un elevado número de productos son compatibles con el lenguaje


SQL, por lo que este lenguaje ha pasado a ser el estándar para las bases de datos
relacionales. De hecho, ANSI (American National Standards Institute, Instituto
Nacional Americano de Normalización) e ISO (International Standards Organization,
Organización Internacional de Normalización) han publicado diversas normas
relativas a SQL:

 En 1986 se publicó SQL-86.


 En 1989 una evolución de la norma anterior y que se denominó SQL-89.
 En 1992 apareció SQL-92, seguida de SQL: 1999.
 La versión más reciente SQL: 2003.

Los componentes de SQL son los siguientes:

(Data Definition Language, DDL por sus siglas en inglés), para la definición de
Lenguaje de definición de
esquemas de relación, borrado de relaciones y modificación de los esquemas de
datos
relación.

(Data Manipulation Language, DML por sus siglas en inglés). El DML de SQL
Lenguaje interactivo de
incluye un lenguaje de consultas basado en el álgebra relacional y el cálculo
manipulación de datos
relacional, que permite insertar, borrar y modificar tuplas.

El DDL de SQL presenta una serie de comandos para especificar las limitaciones
Integridad de integridad. Las actualizaciones que violan las restricciones de integridad se
rechazan.

Definición de vistas El DDL de SQL permite crear vistas sobre sus relaciones.

Control de transacciones SQL incluye comandos para especificar el comienzo y el final de las transacciones.

Incluye comandos para poder incluir instrucciones SQL en lenguajes de


SQL incorporado y el SQL
programación de propósito general como C, C ++, Java, PL/I, Cobol, Pascal y
© Universidad Internacional de La Rioja (UNIR)

dinámico
Fortran.

El DDL de SQL tiene una serie de comandos para definir los derechos de acceso a
Autorización
las relaciones y a las vistas

Figura 1. Componentes de SQL.

Curso de Bases de Datos SQL


5
Tema 4. Ideas clave
El ejemplo que seguiremos a lo largo de toda la asignatura, que ya hemos comentado
en temas anteriores, será el de la entidad bancaria. Su transcripción a tablas, para
trabajar con SQL, tiene el siguiente esquema:

sucursal (nombre_sucursal, ciudad_sucursal, activos)


cliente (nombre_cliente, calle_cliente, ciudad_cliente)
prestamo (numero_prestamo , nombre_sucursal, importe)
prestatario (nombre_cliente, numero_prestamo)
cuenta (numero_cuenta, nombre_sucursal, saldo)
impositor (nombre_cliente, numero_cuenta)

4.3. La definición de datos

E
l DDL de SQL permite especificar las relaciones de la BD, así como
información relativa a las mismas, incluyendo:

 El esquema de cada relación.


 El dominio de los valores para cada atributo.
 Las restricciones de integridad.
 El grupo de índices que se mantiene para cada relación.
 Información de seguridad y de autorización de cada relación.
 La estructura de almacenamiento físico de cada relación.

Tipos básicos de dominios


© Universidad Internacional de La Rioja (UNIR)

La norma SQL soporta gran variedad de tipos de dominio predefinidos, entre ellos:

char(n). Determina una cadena de caracteres de longitud fija, de tamaño n,


especificado por el usuario. También se puede utilizar la palabra character.

Curso de Bases de Datos SQL


6
Tema 4. Ideas clave
varchar(n). Determina una cadena de caracteres de longitud máxima n, especificada

por el usuario. También se puede utilizar la palabra character varying.

int. Representa un entero, cuyo conjunto de valores concreto depende de la


máquina. También se puede utilizar la palabra integer.

smallint. Representa un entero pequeño, cuyo conjunto concreto de valores


depende de la máquina.

numeric (p, d). Representa un número de coma fija, cuya precisión está especificada

por el usuario. Tendríamos un número de p dígitos, donde d son decimales.

real, double precision: Representan números de coma flotante y números de coma

flotante de doble precisión, cuya precisión depende de la máquina.

float(n). Presenta una precisión de, al menos, n dígitos.

Definición básica de esquemas en SQL

Para crear relaciones, se utiliza el comando CREATE TABLE:

CREATE TABLE r ((𝐴1 𝐷1 , 𝐴2 𝐷2 , … , 𝐴𝑛 𝐷𝑛 ,


(𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖ó𝑛 − 𝑖𝑛𝑡𝑒𝑔𝑟𝑖𝑑𝑎𝑑1 ),
…,
(𝑟𝑒𝑠𝑡𝑟𝑖𝑐𝑐𝑖ó𝑛 − 𝑖𝑛𝑡𝑒𝑔𝑟𝑖𝑑𝑎𝑑𝑘 ));

Donde r hace referencia al nombre de la relación, cada Ai es el nombre de un atributo


© Universidad Internacional de La Rioja (UNIR)

del esquema de la relación r y Di es el tipo de dominio de los valores del dominio del
atributo Ai.

A continuación, vamos a estudiar la restricción de integridad clave primaria, que


especificaremos con la cláusula PRIMARY KEY. Los atributos de la clave primaria son

Curso de Bases de Datos SQL


7
Tema 4. Ideas clave
no nulos y únicos, por lo que ningún par de tuplas puede tener los mismos valores en
los atributos de su clave primaria. La especificación de clave primaria es opcional,
aunque lo habitual es utilizarla.

La creación de las relaciones de la BD de nuestro sistema bancario, sería de la


siguiente manera:

CREATE TABLE cliente


(nombre_cliente char(20),
calle_cliente char(30),
ciudad_cliente char(30),
PRIMARY KEY (nombre_cliente));

CREATE TABLE sucursal


(nombre_sucursal char(15),
ciudad_sucursal char(30),
activos numeric(16,2),
PRIMARY KEY (nombre_sucursal));

CREATE TABLE cuenta


(numero_cuenta char (10),
nombre_sucursal char(15),
saldo numeric(12,2),
PRIMARY KEY (numero_cuenta));

CREATE TABLE impositor


(nombre_cliente char(20),
numero_cuenta char(10),
PRIMARY KEY (nombre_cliente, numero_cuenta));

Nótese que para este sencillo ejemplo mantenemos el nombre del cliente como clave
© Universidad Internacional de La Rioja (UNIR)

primaria. Sin embargo, en un sistema real no sería válido ya que, en general, el


nombre de un cliente no tiene un valor único que permita distinguir cada tupla
unívocamente.

Curso de Bases de Datos SQL


8
Tema 4. Ideas clave
Añadir datos

Cuando se crean las relaciones, inicialmente están vacías. Para poder añadir datos a
la relación se utiliza el comando INSERT, dando los valores de cada atributo en el
mismo orden en el que están definidos en el esquema. Por ejemplo, si se desea añadir
una cuenta C-0001 en la sucursal del centro con un saldo de 1300 euros, hay que
escribir:

INSERT into cuenta values (’C-0001’, ’Centro’, 1300);

Borrar

Para borrar tuplas se utiliza el comando DELETE. Si lo aplicamos sobre una relación,
borrará todas las tuplas de dicha relación. Para borrar un subconjunto de tuplas,
tendremos que especificar una condición, tal como veremos más adelante. Por
ejemplo, la siguiente sentencia borraría todas las tuplas de la tabla cuenta:

DELETE FROM cuenta;

El hecho de borrar todas las tuplas no implica que la relación desaparezca, sino que
queda vacía. Para borrar una tabla de la BD, se utiliza el comando DROP TABLE. Cuando
aplicamos esta sentencia eliminamos tanto las tuplas como la propia tabla. Por
ejemplo, esta sentencia eliminaría las tuplas que contuviera la relación r y también la
tabla r:

DROP TABLE r;
© Universidad Internacional de La Rioja (UNIR)

Modificar

También podemos modificar la estructura inicial de una tabla, utilizando el comando


ALTER TABLE. Con este comando podemos añadir atributos a una relación que ya

Curso de Bases de Datos SQL


9
Tema 4. Ideas clave
existe, dando valores nulos a las tuplas que ya contenía la tabla hasta el momento de
hacer la modificación. La forma general de este comando sería la siguiente:

ALTER TABLE r add A D;

Donde r representa una relación que ya existe, A es el nombre del campo que se va
a añadir y D representa al dominio del atributo añadido.

Eliminar atributos

También podemos eliminar atributos de una relación. La forma general del comando
para hacer esta operación sería la siguiente:

ALTER TABLE r drop A;

Donde r representa el nombre de una relación y A representa el nombre del atributo


de la relación que queremos eliminar.

4.4. Estructura básica de las consultas SQL

L
as BD relacionales están formadas por un conjunto de relaciones que tienen
un nombre único. El lenguaje SQL permite el uso de valores nulos para
representar valores desconocidos o inexistentes, pero también deja al
usuario definir que los atributos no permitan valores nulos. La estructura básica de
una expresión SQL comprende tres cláusulas que son SELECT, FROM y WHERE.
© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


10
Tema 4. Ideas clave
SELECT FROM WHERE

La cláusula select La cláusula from se La cláusula where se


se corresponde con corresponde con la corresponde con la
la operación operación producto operación selección
proyección del cartesiano del del álgebra relacional,
álgebra relacional. álgebra relacional. que permite
Se utiliza para En esta parte establecer
determinar los especificaremos las condiciones sobre los
atributos que se relaciones que atributos indicados en
quieren recuperar toman parte en la la cláusula select.
en la consulta operación que se va
a realizar.

Figura 2. Cláusulas SELECT, FROM y WHERE en SQL.

Las consultas SQL normalmente presentan la forma:

SELECT 𝐴1 , 𝐴2 , … , 𝐴𝑛
FROM 𝑟1 , 𝑟2 , … , 𝑟𝑚
WHERE P;

Donde 𝐴𝑖 representa un atributo y cada 𝑟𝑖 , una relación. P es un predicado. Su


consulta equivalente en álgebra relacional sería:

∏𝐴1 ,𝐴2 ,…,𝐴𝑛 (𝜎𝑃 (𝑟1 × 𝑟2 × … × 𝑟𝑚 ))

Si se omite el WHERE, se incluyen todas las tuplas en la relación, ya que se


interpreta que el resultado de P es verdadero.

En teoría, SQL realiza el producto cartesiano de todas las relaciones que se indican en
el FROM, hace la selección utilizando el predicado indicado en el WHERE y proyecta el
© Universidad Internacional de La Rioja (UNIR)

resultado sobre los atributos indicados en la cláusula SELECT. Sin embargo, el DBMS
tiene un módulo optimizador de consultas que permite transformaciones en
expresiones equivales que se pueden ejecutar de forma más eficiente.

Curso de Bases de Datos SQL


11
Tema 4. Ideas clave
La cláusula SELECT

El resultado de una consulta SQL es una relación. Esta cláusula es la que nos permite
consultar los diferentes datos que se encuentran almacenados en una tabla de la base
de datos. Consideremos la siguiente consulta para nuestro ejemplo bancario:
«obtener los nombres de las sucursales de la relación prestamo»:

SELECT nombre_sucursal
FROM prestamo;

Nos devuelve una relación con un único atributo que contiene los valores de la tabla
prestamo en su atributo nombre_sucursal. Presumiblemente, cada sucursal tendrá
varios préstamos asociados, por lo que su nombre aparecerá una vez por cada uno
de esos préstamos. Si no queremos que los valores aparezcan duplicados, utilizamos
la palabra distinct justo después de SELECT.

SELECT distinct nombre_sucursal


FROM prestamo;

Para definir de una manera explícita que no se eliminen los duplicados utilizamos la
palabra all.

SELECT all nombre_sucursal


FROM prestamo;

Para denotar «todos los atributos» se utiliza el símbolo llamado asterisco «*». Por
ejemplo, para seleccionar todos los atributos de la relación prestamo, en la cláusula
SELECT indicaremos SELECT *. Entonces, si realizamos esta operación recuperaremos

una relación con el mismo esquema y los mismos valores que tiene la relación
© Universidad Internacional de La Rioja (UNIR)

prestamo, es decir, obtendremos la tabla completa:

SELECT *
FROM prestamo;

Curso de Bases de Datos SQL


12
Tema 4. Ideas clave
En la cláusula SELECT se puede incluir también expresiones aritméticas: +, -, * y /, que
operen sobre constantes o atributos de las tuplas. Por ejemplo, las siguientes
sentencias devuelven una relación igual a la relación prestamo, donde el valor de
importe aparecerá multiplicado por 100:

SELECT numero_prestamo, nombre_sucursal, importe *100


FROM prestamo;

La cláusula WHERE

La cláusula WHERE permite establecer condiciones sobre las tuplas, de tal forma que
solo se devolverán las tuplas que, una vez realizado el producto cartesiano indicado
en el FROM, cumplan las condiciones establecidas. Si no se emplea esta cláusula, la
consulta devolverá todas las filas generadas.

Por ejemplo, para «obtener todos los préstamos concedidos en la sucursal del centro
cuyo importe supere los 2000 euros», escribiríamos la siguiente consulta:

SELECT numero_prestamo
FROM prestamo
WHERE nombre_sucursal = ’Centro’ and importe > 2000;

En la cláusula WHERE se pueden utilizar las conectivas and, or y not, así como los
operadores de comparación <, < =, >, > =, = y <>. Además, existe un comparador
between, cuya función es simplificar las condiciones que se establezcan en función de

rangos. Por ejemplo, si queremos seleccionar «los préstamos con importe entre 80
000 € y 90 000 €», podríamos escribir:

SELECT numero_prestamo
FROM prestamo
© Universidad Internacional de La Rioja (UNIR)

WHERE importe between 80000 and 90000;

En vez de:

SELECT numero_prestamo
FROM prestamo
WHERE importe>=80000 and importe<=90000

Curso de Bases de Datos SQL


13
Tema 4. Ideas clave
También se puede usar el operador de comparación not between para especificar
condiciones fuera de un rango.

La cláusula FROM

La cláusula FROM define una operación de producto cartesiano entre las tablas que se
listan a continuación. En general, se listarán las tablas que son necesarias para
obtener los atributos especificados en el SELECT.

Como la reunión natural se define en términos de producto cartesiano, selección y


proyección, su transcripción a SQL debe hacerse en esos términos. Por ejemplo, la
consulta «obtener el nombre, el número de préstamo y el importe de los clientes que
tienen algún préstamo», se escribiría de la siguiente manera en álgebra relacional:

∏𝑛𝑜𝑚𝑏𝑟𝑒_𝑐𝑙𝑖𝑒𝑛𝑡𝑒,𝑛𝑢𝑚𝑒𝑟𝑜_𝑝𝑟𝑒𝑠𝑡𝑎𝑚𝑜,𝑖𝑚𝑝𝑜𝑟𝑡𝑒 (𝑝𝑟𝑒𝑠𝑡𝑎𝑡𝑎𝑟𝑖𝑜 ⋈ 𝑝𝑟𝑒𝑠𝑡𝑎𝑚𝑜)

Y se transcribiría a SQL como:

SELECT nombre_cliente, prestatario.numero_prestamo, importe


FROM prestatario, prestamo
WHERE prestatario.numero_prestamo =prestamo.numero_prestamo;

Nótese que cuando el nombre de un atributo aparece en más de una tabla


especificada en FROM, es necesario indicar a cuál de ellos nos referimos.

La operación renombramiento
© Universidad Internacional de La Rioja (UNIR)

Se pueden renombrar las relaciones y los atributos utilizando la cláusula as, de la


siguiente forma:

nombre_antiguo as nombre_nuevo

Curso de Bases de Datos SQL


14
Tema 4. Ideas clave
Esta cláusula puede aparecer tanto en el SELECT como en el FROM.

Entonces, si consideramos de nuevo la consulta anterior, nos daremos cuenta de que


el resultado obtenido ofrece los mismos nombres de columna que tenía la tabla en la
BD. Sin embargo, usando el renombramiento, podemos mostrar otros valores más
amigables en los nombres de las columnas. Por ejemplo:

SELECT nombre_cliente as Cliente, numero_prestamo as idPrestamo,


importe
FROM prestatario, prestamo
WHERE numero_prestamo = numero_prestamo;

Esta consulta devolverá una tabla cuyas columnas son Cliente, idPrestamo e importe,
frente al resultado anterior, que sería nombre_cliente, numero_prestamo e importe.

Variables tupla

La cláusula as también permite definir el concepto de variable tupla. Las variables de


tupla en SQL se deben asociar con una relación concreta y se definen en el FROM
mediante la cláusula as.

Para ilustrar las variables tupla podemos realizar la siguiente consulta: «mostrar los
clientes que tienen un préstamo, el número del préstamo y su importe». La consulta
sería:

SELECT nombre_cliente, A.numero_prestamo, B.importe


FROM prestatario as A, prestamo as B
WHERE A.numero_prestamo=B.numero_prestamo;

Las variables tupla son especialmente útiles para comparar tuplas de la misma
© Universidad Internacional de La Rioja (UNIR)

relación. Por ejemplo, para «determinar todas las sucursales que tienen activos
superiores que, al menos, una sucursal del centro», escribiríamos lo siguiente:

SELECT distinct S.nombre_sucursal


FROM sucursal as S, sucursal as T
WHERE S.activos>T.activos and S.ciudad_sucursal = ‘Centro’;

Curso de Bases de Datos SQL


15
Tema 4. Ideas clave
Operaciones con cadenas de caracteres

Para especificar las cadenas de caracteres en SQL se emplean las comillas simples,
como en ‘Centro’. La operación que más se utiliza sobre las cadenas de caracteres es
la comparación de patrones, por medio del operador like. Para la descripción de los
patrones se utilizan dos caracteres especiales:

 El tanto por ciento (%), para representar cualquier subcadena de caracteres.


 El subrayado (_), para representar cualquier carácter.

Algunos ejemplos que ilustran el funcionamiento de las operaciones con cadenas de


caracteres serían:

 ‘Cen%’ hace referencia a cualquier cadena de caracteres que empiece con «Cen».
 ‘%cer%’ coincide con las cadenas de caracteres que tengan «cer» como
subcadena, como ‘Navacerrada’, ’Cáceres’ y ‘Becerril’.
 ‘_ _ _ _’ serían cadenas que tengan exactamente cuatro caracteres.
 ‘_ _ _ _ %’ serían cadenas que tengan, al menos, cuatro caracteres.

El operador de comparación like se utiliza para expresar los patrones en SQL. Así, la
consulta «conseguir el nombre de todos los clientes cuya ciudad tenga la subcadena
de caracteres ‘%San%’» se expresaría de la siguiente manera:

SELECT nombre_cliente
FROM cliente
WHERE ciudad_cliente like ‘%San%’;

Para que los patrones puedan incluir los caracteres «%» y «_», se utiliza un carácter
© Universidad Internacional de La Rioja (UNIR)

de escape que se define con la cláusula escape colocada justo delante del carácter
que se usará. Así, en el siguiente ejemplo se muestran patrones que utilizan la barra
invertida como carácter de escape:

 like ‘ab\%cd% ‘ escape ‘\’ Serían las cadenas que empiezan por «ab%cd».

Curso de Bases de Datos SQL


16
Tema 4. Ideas clave
 like ‘ab\\cd%‘ escape ‘\’ Serían todas las cadenas que empiezan por «ab\cd».

También está permitido el uso de not like.

SQL permite otras funciones que operan sobre cadenas de caracteres, como la
concatenación (||), la extracción de cadenas de caracteres, el cálculo de longitud y la
conversión a mayúsculas (upper()).

Orden en la presentación de las tuplas

La cláusula order by permite determinar el orden en el que se van a mostrar las tuplas
resultado de una consulta. Por ejemplo, para obtener la relación de todos los clientes
que tienen un préstamo en la sucursal centro, por orden alfabético de cliente,
escribiríamos:

SELECT distinct nombre_cliente


FROM prestatario, prestamo
WHERE prestatario.numero_prestamo=prestamo.numero_prestamo and
B.nombre_sucursal=’Centro’
order by nombre_cliente;

El orden por defecto es ascendente, asc, aunque se puede especificar también orden
descendente utilizando la cláusula desc.

La ordenación se puede hacer por más de un atributo dentro de la misma tabla


resultante:

SELECT *
FROM prestamo
order by importe desc, numero_prestamo asc;
© Universidad Internacional de La Rioja (UNIR)

Ordenar los atributos de las tuplas puede ocasionar un gran coste computacional por
lo que se debe de ordenar solo cuando es necesario.

Curso de Bases de Datos SQL


17
Tema 4. Ideas clave
Lo + recomendado

Lecciones magistrales

Definición de esquemas en SQL (Oracle + SqlDeveloper)

Continuando con nuestro ejemplo de entidad educativa, vamos a proceder a la


implementación utilizando SQL. Esta lección magistral es la primera de un bloque de
cuatro en el que vamos a revisar los diferentes conceptos que manejaremos en la
asignatura. En concreto, esta primera sesión está dedicada a la creación del esquema.
Para ello, partimos del usuario system, revisamos cómo crear un usuario nuevo con
los permisos necesarios para poder trabajar y realizamos la implementación con este
nuevo usuario. Además, vamos a aprender cómo crear las tablas, indicar las
restricciones más importantes y hacer las inserciones de datos, prestando atención a
los errores más comunes para familiarizarnos con los mensajes que nos devuelve el
DBMS en cada caso. (Ejemplo adaptado de Pons, O., Marín, N., Medina, J. M., Vila, A.
Introducción a las bases de datos. El modelo relacional. Ed. Thomson. 2005).

Accede a la lección magistral a través del aula virtual


© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


18
Tema 4. Lo + recomendado
No dejes de ver

SQL Server
Aunque en esta asignatura vamos a trabajar con Oracle, muchas empresas manejan
SQL Server. Por eso, pensamos que tener recursos disponibles para familiarizarte con
este DBMS puede serte de utilidad. En concreto, en este vídeo puedes encontrar
cómo instalar SQL Server y Microsoft SQL Server Management Studio.

Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=yasfZuou3zI
© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


19
Tema 4. Lo + recomendado
Cláusulas y operadores

Este vídeo revisa las cláusulas que podemos utilizar en SQL y explica los operadores
lógicos y de comparación.

Accede al vídeo a través del aula virtual o desde la siguiente dirección web:
https://www.youtube.com/watch?v=np6PH_vs-GI
© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


20
Tema 4. Lo + recomendado
+ Información

Webgrafía

Tutorial de SQL

La página desarrolloweb.com tiene mucha información relacionada con diferentes


lenguajes de programación. En este caso, os sugerimos el tutorial de SQL, que está
estructurado en capítulos y resulta muy fácil de seguir. Además, si tienes dudas
concretas, podrás acceder directamente al tema que necesitas.

Accede a la página web a través del aula virtual o desde la siguiente dirección web:
https://desarrolloweb.com/manuales/tutorial-sql.html
© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


21
Tema 4. + Información
Comandos DDL

En el enlace que te proponemos se explican diferentes sentencias DDL de Oracle. Nos


parece interesante que lo revises para ampliar tus conocimientos de la parte de
definición de relaciones y modificación de las mismas. Verás que se incluyen ejemplos
y nociones más avanzadas que las comentadas en las «Ideas Clave».

Accede a la página web a través del aula virtual o desde la siguiente dirección web:
http://www.oracle-dba-online.com/sql/oracle_data_definition_language.htm

Tutorial de SQL: w3schools

La web de w3schools reúne conocimientos de diferentes lenguajes de programación.


Incluye tutoriales y manuales, así como la opción de ejecutar tus propios ejemplos.
Es una buena opción para incorporarla como página de referencia.

Accede a la página web a través del aula virtual o desde la siguiente dirección web:
https://www.w3schools.com/sql/
© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


22
Tema 4. + Información
Test
1. La clave primaria de una relación:
A. Especifica el atributo que permite seleccionar una tupla.
B. Es un conjunto de atributos que identifica una tupla de forma unívoca.
C. Es un conjunto de valores que identifica una tupla de forma unívoca.
D. Es un conjunto de valores que permite ordenar las tuplas en función de su
orden de inserción, desde la primera.

2. El comando ALTER TABLE se utiliza para:


A. Añadir una relación a la BD.
B. Añadir atributos a una relación de la BD.
C. Añadir atributos a las relaciones y relaciones a la BD.
D. Reorganizar las tuplas que contiene la tabla.

3. ¿Para qué sirve la palabra distinct?


A. Para considerar cada valor solo una vez.
B. Para incluir una marca que permita distinguir las tuplas que tienen valores
repetidos.
C. Para eliminar de la tabla los valores repetidos.
D. Todas las anteriores son correctas.

4. ¿Para qué sirve el operador between?


A. Para especificar comparaciones fuera de un rango.
B. Para especificar comparaciones dentro de un rango.
C. Para especificar las tablas en las que hay que hacer una reunión natural.
© Universidad Internacional de La Rioja (UNIR)

D. Para sustituir la cláusula WHERE en la consulta.

Curso de Bases de Datos SQL


23
Tema 4. Test
5. ¿Qué son las variables tupla?
A. Son variables que representan una tupla de la relación donde se definen.
B. Permiten comparar tuplas de la misma relación.
C. A y B son correctas.
D. Ninguna de las anteriores.

6. ¿Qué consulta debe realizarse para encontrar los títulos de los cursos en el
departamento con nombre Comp. Sci que tienen 3 créditos?
A. La relación department no tiene el atributo name
B. select title from course where dept_name = ’Comp. Sci.’ and credits = 3;
C. select title from department where dept_name = ’Comp. Sci.’ and credits =3;
D. select title from course where AND(dept_name =’Comp. Sci.’ credits= 3);

7. Considerando que la cardinalidad de la relación instructor es 12 y la cardinalidad


de la relación student es 13 , ¿cuál es el resultado al ejecutar el comando
siguiente?
select count(*) from instructor, student;
A. Se produce un error por sintaxis errónea de la función de agregación count
B. 55
C. 144
D. Ninguna de las anteriores

8. ¿Qué consulta debe realizarse para encontrar a todos los instructores que ganan
el salario más alto?
A. select ID, name from instructor where salary = (select max(salary) from
instructor);
B. select max(salary) from instructor;
© Universidad Internacional de La Rioja (UNIR)

C. select * from instructor where salary = (select max(salary) from instructor);


D. select ID, name from instructor where salary > max(salary);

Curso de Bases de Datos SQL


24
Tema 4. Test
9. ¿Qué consulta debe realizar para obtener los nombres de los estudiantes que
comienzan con la letra A o la letra a o que terminan con la letra s?
A. select name from student where lower(name) like 'a%' or name like '%s';
B. select name from student where name like ‘a%s’;
C. select name from student where lower(name) like ‘a%’ or lower(name) like ‘%s’;
*D. Las opciones A y C son correctas

10. Marque la consulta correcta para obtener las tuplas (instructor.name,


student.name) que indiquen los estudiantes que son asesorados (advised) por
cada instructor
A. select instructor.name, student.name from instructor inner join advisor on
instructor.ID = advisor.i_ID inner join student on advisor.s_ID = student.ID;
B. select instructor.name, student.name from instructor, advisor, student
where advisor.s_ID = student.ID AND instructor.ID = advisor.i_ID;
C. select instructor.name, student.name from instructor join advisor on
instructor.ID = advisor.i_ID join student on advisor.s_ID = student.ID;
*D. Todas las opciones son correctas.
© Universidad Internacional de La Rioja (UNIR)

Curso de Bases de Datos SQL


25
Tema 4. Test

También podría gustarte