El SQL (Structured query language).

El SQL (Structured query language), lenguaje de consulta estructurado, es un lenguaje surgido de un proyecto de investigación de IBM para el acceso a bases de datos relacionales. Actualmente se ha convertido en un estándar  de lenguaje de bases de datos, y la mayoría de los sistemas de bases de datos lo soportan, desde sistemas para ordenadores personales, hasta grandes ordenadores. Por supuesto, a partir del estándar cada sistema ha desarrollado su propio SQL que puede variar de un sistema a otro, pero con cambios que no suponen ninguna complicación para alguien que conozca un SQL concreto, como el que vamos a ver aquí corespondiente al Access2000. Como su nombre indica, el SQL nos permite realizar consultas a la base de datos. Pero el nombre se queda corto ya que SQL además realiza funciones de definición, control y gestión de la base de datos. Las sentencias SQL se clasifican según su finalidad dando origen a tres ‘lenguajes’ o mejor dicho sublenguajes:  SQL (Structured Query Language ó Lenguaje Estructurado de Consulta), es un lenguaje bastante sencillo, principalmente orientado a bases de datos y, sobre todo, al manejo de consultas. Visual Basic incorpora esta extensión junto a nuestras bases de datos, obteniendo potentes resultados. De hecho, las consultas que se realizan en Access, están desarrolladas o basadas en este lenguaje, por lo que su implementación en Visual Basic no es complicada. El objetivo principal de SQL es la realización de consultas y cálculos con los datos de una o varias tablas. 

Comandos DLL

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.



Comando
Descripción
CREATE
Utilizado para crear nuevas tablas, stored procedures e índices
DROP
Empleado para eliminar tablas, stored procedures e índices
ALTER
Utilizado para modificar las tablas agregando campos o cambiando la definición de los campos

CREATE


La sintaxis SQL para CREATE TABLE es


CREATE TABLE "nombre_tabla"
("columna 1" "tipo_de_datos_para_columna_1",
"columna 2" "tipo_de_datos_para_columna_2",
... )



EJEMPLO:

SQL> create table almacen
  2  (idalm number (5) primary key,
  3  nombre varchar2 (20) not null,
  4  descripcion varchar2 (20) not null);

Tabla creada.

DROP TABLE


La sintaxis para DROP TABLE es

DROP TABLE "nombre_tabla"


EJEMPLO:

SQL> drop almacen;

Tabla eliminada.

ALTER TABLE


La sintaxis SQL para ALTER TABLE es


ALTER TABLE "nombre_tabla"
[modificar especificación]


EJEMPLO:

SQL> alter table producto
  2  add(idalm number (5));

Tabla modificada.

Comandos DML


Comandos DML: 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.

Comando
Descripción
SELECT
Utilizado para consultar registros de la base de datos que satisfagan un criterio determinado.
INSERT
Utilizado para cargar lotes de datos en la base de datos en una única operación.
DELETE
Utilizado para modificar los valores de los campos y registros especificados.
UPDATE
Utilizado para eliminar registros de una tabla de una base de datos.

SELECT


La sintaxis de SELECT es:

SELECT "nombre_columna" FROM "nombre_tabla"

EJEMPLO:

Select * from  Store_Information;

store_name
Sales
Date
Los Angeles
1500 €
05-Jan-1999
San Diego
250 €
07-Jan-1999
Los Angeles
300 €
08-Jan-1999
Boston
700 €
08-Jan-1999

INSERT

La sintaxis para INSERTAR datos en una tabla mediante una fila por vez es la siguiente:


INSERT INTO "nombre_tabla" ("columna1", "columna2", ...)
VALUES ("valor1", "valor2", ...)


EJEMPLO:

SQL>  insert into almacen
  2 values (001,'carol','atizapan');

1 fila creada.

DELETE

Comando DELETE FROM. Su sintaxis es:
DELETE FROM “nombre_tabla”
WHERE (condicion);

EJEMPLO:

DELETE FROM Store_Information
WHERE store_name = "Los Angeles"

store_name
Sales
Date
1500 €
05-Jan-1999
San Diego
250 €
07-Jan-1999
Los Angeles
300 €
08-Jan-1999
Boston
700 €
08-Jan-1999








Ahora el contenido de la tabla se vería,



store_name
Sales
Date
San Diego
250 €
07-Jan-1999
Boston
700 €
08-Jan-1999



UPDATE

La sintaxis para UPDATE es,


UPDATE "nombre_tabla"
SET "columna_1" = [nuevo valor]
WHERE {condición};


EJEMPLO:

UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "08-Jan-1999"

store_name
Sales
Date
1500 €
05-Jan-1999
San Diego
250 €
07-Jan-1999
Los Angeles
300 €
08-Jan-1999
Boston
700 €
08-Jan-1999













El resultado seria:
Tabla Store_Information

store_name
Sales
Date
Los Angeles
1500 €
05-Jan-1999
San Diego
250 €
07-Jan-1999
Los Angeles
500 €
08-Jan-1999
Boston
700 €
08-Jan-1999

Procedimientos


Los procedimientos quedan almacenados en la base de datos a diferencia de los bloques anónimos que se almacenaban en el buffer.  Algo que nos diferencia los bloques anónimos de los procedimientos o funciones es que en los procedimientos o funciones no se pueden utilizar variables de sustitución.

Ejemplo de un procedimiento que nos muestre los datos de un usuario:

CREATE OR REPLACE PROCEDURE ver_usuario(nomusu VARCHAR2)
IS
   NIFusu   VARCHAR2(10);
   Domusu   VARCHAR2(10);
BEGIN
   select nif, domicilio into NIFusu,Domusu from usuario where nombre=nomusu;
   DBMS_OUTPUT.PUT_LINE('Nombre:'||nomusu|| 'NIF:' ||NIFusu|| 'Domicilio' ||Domusu);
EXCEPTION
   WHEN NO_DATA_FOUND THEN
      DBMS_OUTPUT.PUT_LINE('No hemos encontrado al usuario || nomusu);
END;
/

Si el compilador detecta errores nos saldrá un mensaje como este: “Procedimiento creado con errores de compilación”. Para ver estos errores tenemos la orden SHOW ERRORS.
Al tener almacenado el procedimiento en la base de datos, este puede ser llamado por cualquier usuario que tenga los permisos oportunos. Para invocar un procedimiento utilizamos la orden EXECUTE,

Para invocar al procedimiento que hemos creado antes tendríamos que ejecutar la siguiente orden:

EXECUTE ver_usuario('Luis');
Pero también podemos invocarlo desde un bloque PL/SQL de ls siguiente forma:
BEGIN
   ver_usuario('Luis');
END;
.
Como en cualquier lenguaje, podemos agregar comentarios a nuestros procedimientos de la siguiente forma:
- - para comentar en una sola linea
/* */ para varias lineas.
 

FUNCIONES

Las funciones tienen una estructura y una funcionalidad similar a los procedimientos, solo que estas devuelven un valor.

               Su sintaxis es:
FUNCTION
       ([])
RETRN
IS
 ;
BEGIN
;
RETURN ;
. .
EXCEPTION
;
END;

BIBLIOGRAFIA:

  •        TítuloSQL server 2005: SQL, Transact SQL
          Recursos informáticos
               AutorJérôme Gabillaud
                EditorEdiciones ENI

  •        UNIDAD 11 (‘FUNDAMENTOS DEL LENGUAJE PL/SQL’)

¿QUE ES UNA BASE DE DATOS?

Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente. A continuación te presentamos una guía que te explicará el concepto y características de las bases de datos. 

El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada. 

Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.

Definición de Base de Datos

Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.

Características

Entre las principales características de los sistemas de base de datos podemos mencionar:
  • Independencia lógica y física de los datos.
  • Redundancia mínima.
  • Acceso concurrente por parte de múltiples usuarios.
  • Integridad de los datos.
  • Consultas complejas optimizadas.
  • Seguridad de acceso y auditoría.
  • Respaldo y recuperación.
  • Acceso a través de lenguajes de programación estándar.

Sistema de Gestión de Base de Datos (SGBD)

Los Sistemas de Gestión de Base de Datos (en inglés DataBase Management System) son un tipo de software muy específico, dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Se compone de un lenguaje de definición de datos, de un lenguaje de manipulación de datos y de un lenguaje de consulta.

Ventajas de las bases de datos

Control sobre la redundancia de datos:

Los sistemas de ficheros almacenan varias copias de los mismos datos en ficheros distintos. Esto hace que se desperdicie espacio de almacenamiento, además de provocar la falta de consistencia de datos.
En los sistemas de bases de datos todos estos ficheros están integrados, por lo que no se almacenan varias copias de los mismos datos. Sin embargo, en una base de datos no se puede eliminar la redundancia completamente, ya que en ocasiones es necesaria para modelar las relaciones entre los datos.

Consistencia de datos:

Eliminando o controlando las redundancias de datos se reduce en gran medida el riesgo de que haya inconsistencias. Si un dato está almacenado una sola vez, cualquier actualización se debe realizar sólo una vez, y está disponible para todos los usuarios inmediatamente. Si un dato está duplicado y el sistema conoce esta redundancia, el propio sistema puede encargarse de garantizar que todas las copias se mantienen consistentes.

Compartición de datos:

En los sistemas de ficheros, los ficheros pertenecen a las personas o a los departamentos que los utilizan. Pero en los sistemas de bases de datos, la base de datos pertenece a la empresa y puede ser compartida por todos los usuarios que estén autorizados.

Mantenimiento de estándares:

Gracias a la integración es más fácil respetar los estándares necesarios, tanto los establecidos a nivel de la empresa como los nacionales e internacionales. Estos estándares pueden establecerse sobre el formato de los datos para facilitar su intercambio, pueden ser estándares de documentación, procedimientos de actualización y también reglas de acceso.

Mejora en la integridad de datos:

La integridad de la base de datos se refiere a la validez y la consistencia de los datos almacenados. Normalmente, la integridad se expresa mediante restricciones o reglas que no se pueden violar. Estas restricciones se pueden aplicar tanto a los datos, como a sus relaciones, y es el SGBD quien se debe encargar de mantenerlas.

Mejora en la seguridad:

La seguridad de la base de datos es la protección de la base de datos frente a usuarios no autorizados. Sin unas buenas medidas de seguridad, la integración de datos en los sistemas de bases de datos hace que éstos sean más vulnerables que en los sistemas de ficheros.

Mejora en la accesibilidad a los datos:

Muchos SGBD proporcionan lenguajes de consultas o generadores de informes que permiten al usuario hacer cualquier tipo de consulta sobre los datos, sin que sea necesario que un programador escriba una aplicación que realice tal tarea.

Mejora en la productividad:

El SGBD proporciona muchas de las funciones estándar que el programador necesita escribir en un sistema de ficheros. A nivel básico, el SGBD proporciona todas las rutinas de manejo de ficheros típicas de los programas de aplicación.
El hecho de disponer de estas funciones permite al programador centrarse mejor en la función específica requerida por los usuarios, sin tener que preocuparse de los detalles de implementación de bajo nivel.

Mejora en el mantenimiento:

En los sistemas de ficheros, las descripciones de los datos se encuentran inmersas en los programas de aplicación que los manejan.
Esto hace que los programas sean dependientes de los datos, de modo que un cambio en su estructura, o un cambio en el modo en que se almacena en disco, requiere cambios importantes en los programas cuyos datos se ven afectados.
Sin embargo, los SGBD separan las descripciones de los datos de las aplicaciones. Esto es lo que se conoce como independencia de datos, gracias a la cual se simplifica el mantenimiento de las aplicaciones que acceden a la base de datos.

Aumento de la concurrencia:

En algunos sistemas de ficheros, si hay varios usuarios que pueden acceder simultáneamente a un mismo fichero, es posible que el acceso interfiera entre ellos de modo que se pierda información o se pierda la integridad. La mayoría de los SGBD gestionan el acceso concurrente a la base de datos y garantizan que no ocurran problemas de este tipo.

Mejora en los servicios de copias de seguridad:

Muchos sistemas de ficheros dejan que sea el usuario quien proporcione las medidas necesarias para proteger los datos ante fallos en el sistema o en las aplicaciones. Los usuarios tienen que hacer copias de seguridad cada día, y si se produce algún fallo, utilizar estas copias para restaurarlos.
En este caso, todo el trabajo realizado sobre los datos desde que se hizo la última copia de seguridad se pierde y se tiene que volver a realizar. Sin embargo, los SGBD actuales funcionan de modo que se minimiza la cantidad de trabajo perdido cuando se produce un fallo.

Desventajas de las bases de datos


Complejidad:

Los SGBD son conjuntos de programas que pueden llegar a ser complejos con una gran funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder realizar un buen uso de ellos.

Coste del equipamiento adicional:

Tanto el SGBD, como la propia base de datos, pueden hacer que sea necesario adquirir más espacio de almacenamiento. Además, para alcanzar las prestaciones deseadas, es posible que sea necesario adquirir una máquina más grande o una máquina que se dedique solamente al SGBD. Todo esto hará que la implantación de un sistema de bases de datos sea más cara.


Vulnerable a los fallos:

El hecho de que todo esté centralizado en el SGBD hace que el sistema sea más vulnerable ante los fallos que puedan producirse. Es por ello que deben tenerse copias de seguridad (Backup).