Lenguaje de Interrogación SQL

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 8

Lenguaje de interrogación SQL.

Contenidos: Lenguaje
de definición de datos. Lenguaje de manipulación de
datos. Lenguaje de control de datos.

El lenguaje SQL (Structured Query Language)


Los lenguajes formales descritos en el epígrafe anterior
proporcionan una notación concisa para la representación de las
consultas. Sin embargo, los sistemas de BD comerciales necesitan
un lenguaje de consulta cómodo para el usuario. SQL es una
combinación de álgebra relacional y construcciones de cálculo
relacional.

Aunque el lenguaje SQL se considere un lenguaje de consultas,


contiene muchas otras capacidades además de la consulta en BD.
Incluye características para definir la estructura de los datos, para
la modificación de los datos en la BD y para especificación de
restricciones de integridad.

El lenguaje SQL es un lenguaje de alto nivel para dialogar con los


SGBD-R. Como todo lenguaje de un SGBD, está formado por tres
componentes claramente diferenciados, según muestra la figura:
Destacamos algunas de las características principales del lenguaje
SQL:

Utilizado por todo tipo de usuarios:

 Administradores de BDR.
 Programadores.
 Usuarios Finales.
 Lenguaje no procedimental: Se especifica QUÉ se quiere obtener, sin decir
CÓMO.
 Permite especificar cualquier consulta.
Lenguaje de Definición de Datos (DDL)
Tipos básicos de datos
 Datos Alfanuméricos o Cadenas de Caracteres:
 CHAR(longitud), donde: longitud = número máximo de caracteres del
campo
 VARCHAR(longitud)
 Datos Numéricos:
 SMALLINT, INTEGER
 DECIMAL ó DECIMAL(precisión, decimal), donde: precisión =
número de dígitos del número y decimal = número de dígitos decimales
del nº decimal
 REAL
 FLOAT
 Datos tipo fecha y tiempo:
 DATE: Se puede elegir entre varios formatos
 TIME: También tiene diferentes formatos
 TIMESTAMP: Su valor es: fecha + tiempo + nanosegundos
Creación y borrado de bases de datos
 Creación de una BD: CREATE DATABASE nombre_base_datos;
 Borrado de la BD: DROP DATABASE nombre_base_datos;
Creación, modificación y borrado de tablas
Creación
CREATE TABLE nombre_tabla (

<definición_atributo_1> [NOT NULL][CHECK Condicion],

<definición_atributo_2> [NOT NULL][CHECK Condicion],

···················································

<definición_atributo_n> [NOT NULL][CHECK Condicion],


[PRIMARY KEY (ListadeAtributos)]

);

Donde:

 definición_atributo = nombre_atributo tipo_dato (tamaño)


 NOT NULL: no se permiten valores nulos en la columna
 ListadeAtributos: uno o más atributos separados por comas
Modificación
 Añadir un nuevo atributo:
ALTER TABLE <nombre_tabla> ADD <def_atributo>|<def_integridad>;

 Modificar un atributo ya existente:


ALTER TABLE <nombre_tabla> ALTER <atributo> TYPE <nuevo_tipo>;

 Borrar un atributo ya existente:


ALTER TABLE <nombre_tabla> DROP <atributo>;

Eliminación
DROP TABLE <nombre_tabla>;

Definición de vistas
Una vista es una estructura tabular no física (tabla virtual), que
permite consultar y/o modificar datos de la tabla real.

Las principales características de las vistas son:

 Se utilizan como si fuesen tablas reales.


 No contienen datos propios.
 No tienen asociada estructura física.
Las ventajas del uso de vistas son:

 Meno complejidad en consultas: Permiten obtener igual información de


forma más simple.
 Aumento de confidencialidad: Permiten acceder sólo aciertos datos de las
tablas reales.
Las vistas se pueden crear y borrar con las siguientes sentencias:

 Creación de vistas:
CREATE VIEW <nombre_vista> [<lista_atributos>)] AS (<cláusula SELECT>);
Las filas de la vista serán aquellas que resulten de ejecutar la
consulta cobre la que está definida.

 Eliminación de vistas:
DROP VIEW <nombre_vista>;

Creación y borrado de índices


Es el sistema el encargado de utilizar los índices, para optimizar el
acceso a los datos, el usuario sólo puede crear o eliminar índices,
pero no indicar su utilización.

 Creación de índices:
CREATE [UNIQUE] INDEX <nombre_índice> ON <nombre_tabla> (<lista_atributos>);

 Eliminación de índices:
DROP INDEX <nombre_índice>;

Definición de claves referenciales


Justo debajo de PRIMARY KEY cuando estamos creando una tabla:

[FOREIGN KEY (lista_de_columnas) REFERENCES


nombre_de_tabla(lista_de_columnas)

ON UPDATE [NO ACTION | SET DEFAULT | SET NULL | CASCADE] 

ON DELETE [NO ACTION | SET DEFAULT | SET NULL | CASCADE]

Lenguaje de Manipulación de Datos (DML)


Inserción, actualización y borrado de filas
Inserción
 Inserción de una fila:
INSERT INTO <nombre_tabla> [(<lista_atributos>)] VALUES (<valor1>, ..., <valorn>);

 Inserción de varias filas:


INSERT INTO <nombre_tabla> [(<lista_atributos>)] (<cláusula SELECT>);

La cláusula “SELECT” especifica una consulta cuyo resultado (filas)


se insertará en la tabla especificada.

Modificación
UPDATE <nombre_tabla>
SET <atributo_1> = <valor_1>,

<atributo_2> = <valor_2>,

............

<atributo_n> = <valor_n>

[WHERE <condición>];

La modificación afectará a todas las filas que cumplan la condición,


si se especifica ésta. Si no se especifica condición, la modificación
afectará a todas las filas de la tabla.

Eliminación
DELETE

FROM <nombre_tabla>

[WHERE <condición>];

No se pueden eliminar partes de una fila. Si no aparece la cláusula


“WHERE” se eliminarán todas las filas de la tabla, no eliminándose
la definición de ésta en el esquema.

Operaciones de consulta
 Sintaxis de la sentencia:
SELECT [DISTINCT] <expresión>

FROM <lista_de_tablas>

[WHERE <condicion>]

[GROUP BY <lista_de_atributos>

   [HAVING <condición_de_grupo> ]

[ORDER BY <lista_de_atributos> [ASC/DESC]];


 SELECT: especifica la información que se desea obtener.
 DISTINCT: elimina los valores repetidos.
 FROM: indica las tablas o vistas en las que se encuentran los atributos
implicados en la consulta.
 WHERE: especifica la condición de búsqueda.
 GROUP BY: permite agrupar el resultado.
 HAVING: especifica una condición de grupo.
 ORDER BY: permite ordenar el resultado.
 Operadores: Los operadores que se pueden utilizar para expresar
condiciones de fila (cláusula WHERE) o de grupo (cláusula HAVING)
son:
 De comparación: <, <=, >, >=, <>, =
 Lógicos: AND, OR, NOT
 BETWEEN … AND …: establece una comparación dentro de un
intervalo cerrado. También se puede utilizar NOT BETWEEN.
 LIKE: establece una comparación entre cadenas de caracteres, también
se puede utilizar NOT LIKE, emplea los siguientes comodines:
 %: sustituye a una cadena de caracteres cualquiera.
 _: sustituye a un único carácter cualquiera.
 IN: comprueba la pertenencia de un valor a un conjunto dado.
 IS NULL: comprueba si un valor determinado es nulo (NULL).
También se puede utilizar IS NOT NULL.
 Cuantificadores: ANY (alguno), ALL (todos).
 Existencial: EXISTS, indica la existencia o no de un conjunto. También
se puede utilizar NOT EXISTS.
 Reglas de Evaluación de Operadores: El Orden de Evaluación es el
siguiente:
 Operadores de Relación: BETWEEN, IN, LIKE, IS, NULL y después
NOT, AND, OR.
 Se pueden utilizar paréntesis para establecer el orden de evaluación
deseado por el usuario.
 Consultas con UNION, DIFERENCIA e INTERSECCIÓN:
 Unión de conjuntos: operador UNION.
 Diferencia de conjuntos: operador MINUS.
 Intersección de conjuntos: operador INTERSECT.
 Expresiones en la cláusula SELECT: No sólo se pueden seleccionar
atributos, sino expresiones en las que aparezcan atributos y/o constantes y
operadores aritméticos.
 Funciones agregadas: Devuelven un valor único, numérico. No se pueden
combinar, con columnas que devuelvan más de un valor, a menos que la
consulta contenga una cláusula GROUP BY.
 COUNT (*): contador de tuplas (totalizador)
 COUNT (DISTINCT Atributo): contador de tuplas (parcial), no tiene en
cuenta valores nulos ni duplicados.
 AVG(Atributo): media aritmética de un atributo numérico.
 SUM(Atributo): suma de atributos o expresiones numéricas.
 MAX(Atributo): valor máximo de un atributo o expresión numérica.
 MIN(Atributo): valor mínimo de un atributo o expresión numérica.
 Cláusula GROUP BY: GROUP BY <lista_de_atributos>
 Agrupa el resultado, devolviendo una única fila por grupo.
 El agrupamiento no se realiza ordenado.
 Los atributos que aparezcan en GROUP BY, deben aparecer en la
cláusula SELECT.
 Cláusula HAVING: HAVING <condición_de_grupo>
 Siempre va acompañada de la cláusula GROUP BY.
 Especifica una condición de grupo.
 Cláusula ORDER BY: ORDER BY <lista_de_atributos> [ASC | DESC]
 El resultado de la consulta se ordena en base a los atributos que se
indiquen en la lista.
 Los atributos de ordenación deben aparecer en SELECT.
Lenguaje de Control de Datos (DCL)
Este lenguaje se preocupa principalmente del control de acceso a
los datos (seguridad) y del control de la integridad de los datos.

Control de acceso a los datos


 Niveles de acceso soportados por los SGBDR: Se establecen privilegios de
acceso por los niveles siguientes:
 Base de Datos
 Tabla
 Atributo
 Tupla
 Concesión de Privilegios: Permite dar a los usuarios el acceso completo o
restringido a la BD:
GRANT <privilegio_de_acceso>

[ON <lista_de_objetos>]

TO <lista_de_usuarios>

[WITH GRANT OPTION]


 <privilegio_de_acceso>: CONNECT, RESOURCE, DBA, ALL
PRIVILEGES, SELECT, UPDATE, INSERT, DELETE
 WITH GRANT OPTION concede permiso para que el usuario a su vez,
conceda esos permisos a otros usuarios.
 Nivel de Base de Datos: El SGBDR chequea los privilegios del usuario al
iniciar la sesión. Los posibles privilegios o permisos son:
 CONNECT: Conectarse a la BDR.
 RESOURCE: Crear objetos.
 DBA: Ejecución de comandos restrictivos. Acceso a cualquier objeto.
Privilegio RESOURCE implícito.
 Nivel de Tabla: Las tablas son propiedad del usuario que las creó. Los
posibles privilegios o permisos son:
 DELETE: Autoriza el borrado de tuplas.
 INSERT: Autoriza la inserción de nuevas tuplas.
 SELECT: Permite la realización de consultas.
 UPDATE: Permite la actualización de tuplas.
 ALL PRIVILEGES: Concede todos los privilegios.
 Niveles Atributo y Tupla: Se implantan a través de la definición de vistas.
 Nivel de Atributo: Se crea una vista sin condiciones. Se establecen los
permisos sobre la vista.
 Nivel de Tupla. Se crea una vista con sólo las tuplas permitidas. Se
establecen los permisos sobre la vista.
 Revocación de privilegios: Se utiliza para anular privilegios ya concedidos
a los usuarios:
REVOKE <privilegio_de_acceso>

[ON <lista_de_objetos>]

TO <lista_de_usuarios>;

Control de integridad
Este control está asociado al concepto de Transacción. Existen dos
sentencias principales:

 COMMIT: Los cambios que se puedan estar realizando sobre la BD se


hacen fijos únicamente al completar la transacción (COMMIT automático)
o al hacer un COMMIT explícito.
 ROLLBACK: Elimina todos los cambios que se hayan podido producir en
la BD desde la ejecución de la última instrucción COMMIT. Si se produce
un error de programa o un fallo hardware el sistema realiza un
ROLLBACK automáticamente.

También podría gustarte