Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fargo
LENGUAJE DE CONSULTA ESTRUCTURADO, en informática, un sub
lenguaje utilizado en bases de datos para consultar, actualizar y manejar
bases de datos relacionales. Se deriva de un proyecto de investigación de
IBM, que creó el "lenguaje estructurado de consulta en inglés" (SEQUEL) en
la década de los setenta. El SQL es un estándar aceptado en productos de
bases de datos. A pesar de que no se trata de un lenguaje de programación
como puedan serlo C o Pascal, puede utilizarse en el diseño de consultas
interactivas y puede incluirse en una aplicación como un conjunto de
instrucciones de manejo de datos. El SQL estándar cuenta también con
elementos destinados a la definición, modificación, control y protección de
los datos. Tanto los usuarios técnicos como los que no lo son pueden utilizar
este lenguaje.
SQL: Siglas del ingles de Lenguage Query System= Sistema de Lenguaje de
Preguntas utilizado generalmente en sistemas administradores de bases de
datos, tanto en Main Frame, como en computadores personales.
SQL es un lenguaje universal dedicado a las bases de datos. Es un lenguaje
de sintaxis simple y muy potente. Mediante él se puede recorrer, modificar o
borrar registros de las tablas de datos.
SQL (Structured Query Language) es un potente lenguaje informático que
cumple las funciones de DDL y DML en los SGBD relacionales. Su origen
está en el lenguaje SEQUEL (Structured English QUEry Language)
desarrollado en IBM en los años 1974-75. Oracle fue el primer fabricante de
sistemas de bases de datos en comercializar una implementación de SQL en
1979. IBM lanzó el producto SQL/DS en 1981 y dos años más tarde el
conocido DB2. Se trata de un lenguaje fuertemente basado en el inglés, que
puede ser utilizado en modo conversacional mediante un intérprete o bien
formando parte de un programa desarrollado en un lenguaje de
programación anfitrión como C, Cobol, etc. (SQL embebido). La
característica relacional más importante de SQL es que permite acceder a
los datos sin necesidad de especificar cómo se ha de realizar dicho acceso
permitiendo así la "navegación automática" por los datos
DML
Fargo
DML (Lenguaje de Manipulación de Datos). Permite la manipulación de las
operaciones de Inserción, Eliminación y Modificación
Comando Permite generar consultas para ordenar, filtrar y
DML extraer datos de la base de datos.
Utilizado para consultar registros de la base de datos que
SELECT
satisfagan un criterio determinado.
Utilizado para cargar lotes de datos en la base de datos en una
INSERT
única operación.
Utilizado para modificar los valores de los campos y registros
UPDATE
especificados.
Utilizado para eliminar registros de una tabla de una base de
DELETE
datos.
DML son las siglas de Data Manipulation Language y se refiere a los
comandos que permiten a un usuario manipular los datos en un repositorio,
es decir, añadir, consultar, borrar o actualizar.En SQL los comandos SELECT,
INSERT, UPDATE y DELETE son comandos DML
DISTINCT : Permite evitar que se repitan valores iguales de las columnas especificadas tras la cláusula. Si
en lugar de una se especifica una lista de columnas separadas por comas, se hace referencia a filas en
las que el conjunto de datos de las columnas especificadas sea distinto.
Select distinct Zona from Clientes; -- Saca el campo Zona, pero sin duplicar, un
único valor de cada uno
AND
Select Apellido, Nombre -- Sacará los datos que tengan como Nombre
Miguel y como Apellido Alcaraz
from Clientes
where Nombre = 'Miguel'
And Apellido = 'Alcaraz';
OR
Select Apellido, Nombre -- Sacará los datos que tengan como Nombre
Miguel o Francisco
from Clientes
where Nombre = 'Miguel'
Or Nombre = 'Francisco';
IN y NOT IN: Permite buscar entre uno o un conjunto de valores. En este último caso los valores deben
estar separado por comas y encerrados entre parentesis.
Select Apellido, Nombre, Zona -- Mostrará aquellos datos cuya zona sea 2, 4
u8
from Clientes
where Zona In (2, 4, 8);
Select Apellido, Nombre, Zona -- En este caso, mostrará aquellos datos que
no sean 2, 4 u 8
from Clientes
where Zona Not In (2, 4, 8);
BETWEEN
Select Apellido, Nombre, Sueldo -- Muestra los clientes cuyo salario esté
comprendido entre esos valores, ambos incluidos
from Clientes
where Sueldo Between 1800 and 2300;
EXISTS
Select Apellido, Nombre, Zona -- En esta consulta, sacaremos los datos,
únicamente si existe algún dato en la
from Clientes cl -- Select que tenemos en el Where primero.
where exists (select 1 from ForPago fp
where fp.CodForPag = cl.CodForpag
and fp.Tipo = 'GIRO');
IS NULL y IS NOT NULL -- Sacará los datos si el campo Sexo está Null (es
decir, no hay datos)
Select Apellido, Nombre
from Clientes
where Sexo Is Null;
LIKE
Select Apellido, Nombre -- Muestra datos en los que el apellido
empiece por Al y el nombre empiece por M
from Clientes
where Apellido like 'Al%'
and Nombre like 'M%';
ORDER BY: Permite sacar los resultados de forma ordenada. Por defecto, la ordenación será ascendente,
salvo que se emplee el modificador DESC, para especificar una ordenación descendente
Select Apellido, Nombre -- Saca los datos y los ordena por el campo
Apellido
from Clientes
where zona = 5
order by Apellido;
Select Apellido || ' , '|| Nombre as 'Nombre de Empleado' -- En este caso, ordena por Nombre
from Clientes
where zona = 5
order by Nombre;
Select Apellido, Nombre, Salario, CP -- Aquí se ordena por CP descendente,
Apellido Ascendente y por Nombre
from Clientes
where zona in (4, 5, 6)
order by CP desc, Apellido asc, Nombre;
Select distinct 'Zona ' || Zona -- Ordena por una constante más el campo
Zona
from Clientes
order by 'Zona' || Zona;
Select Apellido, Nombre, salario, CP -- En este caso, se ordena por Apellido, CP y
Salario (1, 4, 3)
from Clientes
where zona in (3, 4, 6)
order by 1, 4, 3;
DDL
Fargo
Comandos DLL
Los comandos DDL son las siglas de Data Definition Language, y se
corresponde con el conunto de órdenes que permiten definir las estructuras
que van a contener los datos en un repositorio. Como concepto, es ajeno a
un tipo de repositorio concreto, ya sea una base de datos relacional, un
OLAP o XML. Un subconjunto de SQL son comandos DDL. Es el formado por
las ódenes CREATE, DROP y ALTER
Comando Descripción
Existe una variación, que sería la de crear una tabla a partir de una SELECT
Ejemplo
Esto, lo que realiza, es una Select y el resultado de la misma se inserta como una tabla nueva.
Create View: Una vista es simplemente una instrucción archivada de SQL, por lo cual no contiene
datos. Se puede formar a partir de tablas, pero también de otras vistas. Se representa en forma de
tabla, pudiéndose insertar, modificar o borrar información de ellas. Sirve para mostrar ciertos datos a
usuarios, no mostrando otros que por la razón que sean, no queremos que sean accesibles.
Ejemplo:
Con esto, se generaría la vista, pero no se ejecuta, sino que se guarda con ese nombre
(Consulta_Saldo_vw). Para ejecutar una vista, sería similar al Select de una tabla
SELECT *
FROM nombre Vista;
Ejemplo
SELECT *
FROM Consulta_Saldo_vw;
Create Index: Se utilizan para que las búsquedas por ciertos campos sean más ágiles. No es
recomendable cuando los datos que se muestren sean superiores al 5% del total. El índice puede ser
unívoco (cuando no se admiten campos duplicados en dicho índice) o no unívoco.
CREATE [UNIQUE] INDEX Nombre Indice
ON Nombre de tabla (Nombre del Campo) [ASC/DESC];
Ejemplo
Alter Table: Esta instrucción DDL se suele utilizar para cambiar características de las tablas, como
pueden ser insertar campos, modificar campos, añadir restricciones (CHECK, Claves, etc.). Al ser una
función tan diversas, vamos a intentar analizarlas todas:
ADD: Se emplea para añadir un nuevo archivo de control a la base de datos
DROP: Permite borrar un archivo de control
RENAME: Permite renombrar un archivo de control
Añadir Restricción de Clave Primaria: Si no se añade la clave primaria a la hora de crear la tabla, se
puede anexar después.
Ejemplo
Añadir Restricción de Clave Secundaria: Se utiliza para definir la relación entre dos tablas. Es
necesario que en la tabla referenciada esté definida la Primary Key, porque la relación se crea entre la
Primary Key de la tabla referenciada y las columnas que indicamos en la cláusula Foreign Key.
Añadir Campo Nuevo a Tabla: Sirve para añadir un nuevo campo (una nueva columna) a una tabla
ya creada. Debe de tenerse en cuenta que sólo se puede añadir una columna por sentencia.
La restricción NOT NULL sólo puede aplicarse si la tabla está vacía, es decir, aún no tiene ninguna fila.
Para crear una nueva columna con la restricción NOT NULL. Si la tabla ya tiene filas (datos), primero
deberá añadirse la columna sin la restricción, rellenar la columna, y modificarla después para que tenga
la restricción NOT NULL.
Ejemplo
Modificar Campo de una Tabla: Podemos cambiar alguna de las características de un campo, también
con este comando
No se pueden borrar ni modificar nombres de columnas ya existentes. Sólo se pueden modificar las
variables de tipo carácter a otras variables de tipo carácter si toda la columna está compuesta de NULL,
pero sí está permitido aumentar el tamaño de las variables carácter. Si puede cambiarse el tamaño de
las variables numéricas. Las modificaciones mediante DEFAULT de una columan afectarán sólo a los
datos que se introduzcan después de la modificación, no a laos anteriores.
Ejemplo
En este caso, lo que hemos hecho es cambiar de un tamaño 10 que había en el momento de crear el
campo a uno de tamaño 30, añadiendole también que no se admiten campos nulos en dicho campo.
Otro caso sería poner un campo por defecto, en este cao, quremos que el número de vacantes por
defecto para cualquier curso sea de 20
ALTER TABLE Curso
MODIFY (Vacantes default 20);
Reglas de Validación (Restricción Check): Las reglas de validación son muy importantes porque
permiten establecer una condición a los valores que debe aceptar una columna.
Ejemplo:
Alter Constraint : En muchos casos debemos garantizar que los valores de una columna o conjunto de
columnas de una tabla acepten sólo valores únicos
Ejemplo
Drop: Este comando se utiliza para eliminar objetos de nuestra base de datos. Se suele utilizar la
palabra Drop, a continuación el nombre del objeto que se desea eliminar (por ejemplo, Table) y por
último, el nombre de dicho objeto (Clientes). Veamos algunos ejemplos:
Si se borra una tabla, se borran, a su vez, los índices a ella asociados, vistas, vistas creadas a partir de
dichas vistas, etc.
Si se borra una tabla a la que otras hacen referencia en claves externas habrá que incluir la cláusula
CASCADE CONSTRAINT
Ejemplos: