Académique Documents
Professionnel Documents
Culture Documents
SQL
Introduccin
El lenguaje de consulta estructurado SQL (Standard Query Language) ) es un lenguaje
de base de datos normalizado, utilizado por el motor de base de datos de Microsoft Jet el
cual nos permite crear tablas y obtener datos de ella de manera muy sencilla.
El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de
agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y
manipular las bases de datos.
Para exponer mas claramente los conceptos se realizaran ejemplo sobre relaciones que
se crearan aqu para entender mejor como funciona SQL.
Cuando nos refiramos a relacin estamos hablando ms concretamente de la tabla de
datos en si, y sus atributos sern los campos de la tabla. Como ejemplo la siguiente
relacin (tabla) la llamaremos persona y sus atributos ( campos ) son nombre, apellido y Id
PERSONA
ID
NOMBRE
APELLIDO
34568
JOSE
54856
PABLO
LPEZ
56640
ROBERTO
SNCHEZ
71280
JUAN
BALDERAS
42389
RUBEN
54836
ALVAREZ
LPEZ
SANDRA
BULLOCK
los DLL que permiten crear y definir nuevas bases de datos, campos e ndices.
los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la
base de datos.
Comandos DLL
CREATE Utilizado para crear nuevas tablas, campos e ndices
DROP Empleado para eliminar tablas e ndices
ALTER Utilizado para modificar las tablas agregando campos o cambiando la
definicin de los campos.
Comandos DML
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
operacin.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos
Estructura bsica
Las clusulas son condiciones de modificacin utilizadas para definir los datos que
desea seleccionar o manipular.
FROM Utilizada para especificar la tabla de la cual se van a seleccionar los registros
WHERE Utilizada para especificar las condiciones que deben reunir los registros que se
van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos especficos
HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un
orden especfico
La estructura bsica de una expresin para consulta SQL consta de tres elementos:
SELECT
FROM
WHERE
2
Consultas de Seleccin
Las consultas de seleccin se utilizan para indicar al motor de datos que devuelva
informacin de las bases de datos, esta informacin es devuelta en forma de conjunto de
registros.
Una consulta bsica en SQL tiene la forma:
SELECT A1,A2,...,An
FROM r1,r2,...,rn
WHERE P
Donde:
A = atributo ( Campo de la tabla )
r = relacin ( Tabla )
P = condicin
Ejemplo: Seleccionar todos los nombres de las personas que tengan el apellido LPEZ
de la tabla PERSONA
SELECT nombre
FROM persona
WHERE apellido = LPEZ;
El resultado de una consulta es por supuesto otra
relacin (Tabla). Si se omite la clusula WHERE, el
predicado P es verdadero. La lista A1, A2,..., An puede
LPEZ
54856
sustituirse por un asterisco (*) para seleccionar todos
los atributos de todas las relaciones que aparecen en la
LPEZ
42389
clusula FROM, aunque no es conveniente elegir esta
ultima opcin salvo que sea necesario pues desperdiciamos mucho tiempo en obtenerlo.
APELLIDO
ID
Predicados y operadores.
Los operadores lgicos en SQL son:
AND Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo si
ambas son ciertas.
OR Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si
alguna de las dos es cierta.
NOT Negacin lgica. Devuelve el valor contrario de la expresin.
+ ( Suma )
- ( Resta )
* ( Multiplicacin )
/ ( Divisin )
Funciones de Agregado
Las funciones de agregado se usan dentro de una clusula SELECT en grupos de
registros para devolver un nico valor que se aplica a un grupo de registros.
Funcin Descripcin
AVG
COUNT
SUM
MAX
MIN
Operadores de Comparacin
Operador
Uso
<
Menor que
>
Mayor que
<>
Distinto de
<=
>=
Igual que
BETWEEN
LIKE
In
ID
54856
56640
54836
ALVAREZ
BALDERAS
LPEZ
SANCHEZ
LPEZ
BULLOCK
34568
71280
54856
56640
42389
54836
Descripcin
ALL
TOP
DISTINCT
TOP
Devuelve un cierto nmero de registros que entran entre al principio o al final de un
rango especificado por una clusula ORDER BY. Supongamos que queremos recuperar los
nombres de las 3 primeras personas de nuestra tabla ejemplo.
SELECT TOP 3 Nombre, Apellido FROM persona ORDER BY Apellido;
Si no se incluye la clusula ORDER BY, la consulta devolver un conjunto arbitrario de
3 registros de la tabla persona .El predicado TOP no elige entre valores iguales.
Se puede utilizar la palabra reservada PERCENT para devolver un cierto porcentaje de
registros que caen al principio o al final de un rango especificado por la clusula ORDER
BY. Ejemplo:
SELECT TOP
ORDER BY Apellido;
30
PERCENT
Nombre,
Apellido
FROM
persona
La clusula WHERE
La clusula WHERE puede usarse para determinar qu registros de las tablas
enumeradas en la clusula FROM aparecern en los resultados de la instruccin SELECT.
Depus de escribir esta clusula se deben especificar las condiciones. Si no se emplea esta
clusula, la consulta devolver todas las filas de la tabla. WHERE es opcional, pero cuando
aparece debe ir a continuacin de FROM.
SELECT Nombre, Apellido FROM persona WHERE Id > 56000;
Obtendramos el siguiente resultado:
ROBERTO
JUAN
SANCHEZ
BALDERAS
56640
71280
Consultas de Accin
Las consultas de accin son aquellas que no devuelven ningn registro, son las
encargadas de acciones como aadir y borrar y modificar registros.
DELETE
Crea una consulta de eliminacin que elimina los registros de una o ms de las tablas
listadas en la clusula FROM que satisfagan la clusula WHERE. Esta consulta elimina los
registros completos, no es posible eliminar el contenido de algn campo en concreto. Su
sintaxis es:
DELETE Tabla.* FROM Tabla WHERE criterio
La opcin tabla.* se utiliza cuando el origen est basado en varias tablas, y sirve
para indicar en qu tabla vamos a borrar.
DELETE * FROM persona WHERE Apellido = "Snchez";
La opcin * es opcional y es la que se asume por defecto y se puede poner unicamente
cuando el origen es una sola tabla.
Nota importante. Una vez borrados, los registros no se pueden recuperar.
Para saber con seguridad qu registros se eliminarn, primero se puede ejecutar una
consulta de seleccin que utilice el mismo criterio y despus ejecutar la consulta de
borrado. Es importante mantener copias de seguridad de los datos por si se eliminan los
registros equivocados, podrn ser recuperados.
10
INSERT INTO
La insercin de nuevos datos en una tabla se realiza aadiendo filas enteras a la tabla,
la sentencia SQL que lo permite es la orden INSERT INTO.
Esta consulta puede ser de dos tipo: Insertar un nico registro Insertar en una tabla los
registros contenidos en otra tabla.
Para
insertar
un
En este caso la sintaxis es la siguiente:
INSERT
INTO
Tabla
VALUES (valor1, valor2, ..., valorN)
nico
(campo1,
Registro:
campo2,
..,
campoN)
11
Tipos de Datos
Los tipos de datos SQL se clasifican en 13 tipos de datos primarios y de varios
sinnimos vlidos reconocidos por dichos tipos de datos.
Los tipos de datos primarios son:
BINARY, BIT, BYTE, COUNTER, CURRENCY, DATETIME, SINGLE, DOUBLE,
SHORT, LONG, LONGTEXT, LONGBINARY, TEXT
(campo1
(tamao)
tipo
(tamao)
ndice1
ndice2
,
...,
Donde:
tabla nombre de la tabla que estamos definiendo.
campo1, campo2 nombre de la columna que estamos definiendo
tipo: tipo de dato de la columna, todos los datos almacenados en la columna debern ser
de ese tipo.
indice1, indice2 Es una clusula CONSTRAINT que define el tipo de ndice a crear.
Esta clusula en opcional.
indice multicampo Es una clusula CONSTRAINT que define el tipo de ndice
multicampos a crear. Un ndice multicampo es aquel que est indexado por el contenido de
varios campos. Esta clusula en opcional.
12
Ejemplos:
CREATE TABLE persona (Nombre TEXT (25) , Apellido TEXT (50));
Crea una nueva tabla llamada PERSONA con dos campos, uno llamado Nombre de
tipo texto y longutid 25 y otro llamado apellidos con longitud 50.
CREATE TABLE persona (Id INTEGER CONSTRAINT IndicePrimario PRIMARY,
Nombre TEXT, Apellido TEXT, Fecha_Nacimiento DATETIME);
Crea una tabla llamada PERSONA con un campo Texto de longitud predeterminada
(50) llamado Nombre y otro igual llamado Apellido, crea otro campo llamado
Fecha_Nacimiento de tipo Fecha/Hora y el campo Id de tipo entero el que establece como
clave principal.
ID
34568
54856
56640
71280
42389
54836
NOMBRE
JOSE
PABLO
ROBERTO
JUAN
RUBEN
SANDRA
APELLIDO
ALVAREZ
LPEZ
SNCHEZ
BALDERAS
LPEZ
BULLOCK
FECHA_NAC
19/06/1975
03/08/1973
08/05/1980
02/06/1979
03/06/1976
04/04/1979
La clusula CONSTRAINT
Descripcin
14
15
DROP TABLE
La sentencia DROP TABLE sirve para eliminar una tabla. No se puede eliminar una
tabla si est abierta, tampoco la podemos eliminar si el borrado infringe las reglas de
integridad referencial (si interviene como tabla padre en una relacin y tiene registros
relacionados).
La sintaxis es la siguiente:
DROP TABLE tabla1
Ejemplo:
DROP TABLE persona
Elimina de la base de datos la tabla persona.
16