Vous êtes sur la page 1sur 16

Conceptos generales, estructura bsica, predicados y operadores. Tipos de datos.

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

Existen dos tipos de comandos SQL:

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.

La lgica de estos operadores es igual que en cualquier lenguaje de programacin y


sirven para unir predicados.
Las operaciones aritmticas en SQL son:

+ ( 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

Utilizada para calcular el promedio de los valores de un


campo determinado

COUNT

Utilizada para devolver el nmero de registros de la


seleccin

SUM

Utilizada para devolver la suma de todos los valores de un


campo determinado

MAX

Utilizada para devolver el valor ms alto de un campo


especificado

MIN

Utilizada para devolver el valor ms bajo de un campo


especificado

Operadores de Comparacin
Operador

Uso

<

Menor que

>

Mayor que

<>

Distinto de

<=

Menor Igual que

>=

Mayor Igual que

Igual que

BETWEEN

Utilizado para especificar un intervalo de


valores.

LIKE

Utilizado en la comparacin de un modelo

In

Utilizado para especificar registros de una base


de datos

El operador de comparacin BETWEEN, se utiliza para valores comprendidos.


Ejemplo: Encontrar todos los nombres y Id de las personas cuyos Id sea mayor que 50
mil y menor a 60 mil
SELECT nombre, Id
FROM persona
WHERE Id BETWEEN 50000 and 60000
NOMBRE
PABLO
ROBERTO
SANDRA

ID
54856
56640
54836

Ordenar los registros.


Adicionalmente se puede especificar el orden en que se desean recuperar los registros
de las tablas mediante la clusula ORDER BY Lista de Campos. En donde Lista de campos
representa los campos a ordenar. Ejemplo:
SELECT Nombre, Apellido, Id FROM persona ORDER BY Nombre;
Esta consulta devuelve los campos Nombre, Apellido y Id ordenados por el campo
Nombre.
El resultado sera:
JOSE
JUAN
PABLO
ROBERTO
RUBEN
SANDRA

ALVAREZ
BALDERAS
LPEZ
SANCHEZ
LPEZ
BULLOCK

34568
71280
54856
56640
42389
54836

Consultas con Predicado


El predicado se incluye entre la clusula y el primer nombre del campo a recuperar, los
posibles predicados son:
Predicado

Descripcin

ALL

Devuelve todos los campos de la tabla

TOP

Devuelve un determinado nmero de registros de la


tabla

DISTINCT

Omite los registros cuyos campos seleccionados


coincidan totalmente

Omite los registros duplicados basndose en la


DISTINCTROW totalidad del registro y no slo en los campos
seleccionados.
Si no se incluye ninguno de los predicados se asume ALL. El Motor de base de datos
selecciona todos los registros que cumplen las condiciones de la instruccin SQL.
Con el uso de este predicado obligamos al motor de la base de datos a analizar la
estructura de la tabla para averiguar los campos que contiene, se recomienda por su rapidez
indicar el listado de campos deseados. Ejemplo:
7

SELECT ALL FROM persona;

SELECT * FROM persona;

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

SELECT Nombre, Apellido FROM persona WHERE Apellido ="Lpez";

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)

Por ejemplo utilizando nuestra tabla muestra.


INSERT INTO persona (Nombre, Apellido, Id) VALUES ('Luis', 'Snchez', '54122');
Para insertar Registros de otra Tabla:
INSERT INTO Tabla SELECT TablaOrigen.* FROM TablaOrigen
De esta forma los campos de TablaOrigen se grabarn en Tabla, para realizar esta
operacin es necesario que todos los campos de TablaOrigen estn contenidos con igual
nombre en Tabla. Tabla deber poseer todos los campos de TablaOrigen (igual nombre e
igual tipo).
UPDATE
Crea una consulta de actualizacin que cambia los valores de los campos de una tabla
especificada basndose en un criterio especfico. Su sintaxis es:
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN
WHERE Criterio;
Ejemplo:
UPDATE persona SET Id = 12345 WHERE Id = 34568;

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

Estructuras de las Tablas


Creacin de Tablas Nuevas.
La sentencia CREATE TABLE sirve para crear la estructura de una tabla no para
rellenarla con datos, nos permite definir las columnas que tiene y ciertas restricciones
que deben cumplir esas columnas.
La sintaxis es la siguiente:
CREATE
TABLE
tabla
campo2
tipo
ndice multicampo , ... )

(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

Se utiliza la clusula CONSTRAINT en las instrucciones ALTER TABLE y CREATE


TABLE para crear o eliminar ndices. Existen dos sintaxis para esta clusula dependiendo si
desea Crear Eliminar un ndice de un nico campo o si se trata de un campo multindice.
Tipo de
Indice

Descripcin

Genera un ndece de clave nica, lo que implica que los registros de


UNIQUE la tabla no pueden contener el mismo valor en los campos
indexados.
Genera un ndice primario en el campo o los campos especificados.
PRIMARY
Todos los campos de la clave principal deben ser nicos y no nulos,
KEY
cada tabla slo puede contener una nica clave principal.
Genera un ndice externo (toma como valor del ndice de los
FOREIGN campos contenidos en otras tablas). Una clave fornea es una
columna o conjunto de columnas que contiene un valor que hace
KEY
referencia a una fila de otra tabla,
13

14

Modificar el Diseo de una Tabla.


Modifica el diseo de una tabla ya existente, se pueden modificar los campos o los
ndices existentes. Su sintaxis es:
ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamao)] [CONSTRAINT
ndice] CONSTRAINT ndice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del ndice} }
En donde:
tabla Es el nombre de la tabla que se desea modificar.
campo Es el nombre del campo que se va a aadir o eliminar.
tipo Es el tipo de campo que se va a aadir.
tamao El el tamao del campo que se va a aadir (slo para campos de texto).
ndice Es el nombre del ndice del campo (cuando se crean campos) o el nombre del
ndice de la tabla que se desea eliminar.
ndice multicampo Es el nombre del ndice del campo multicampo (cuando se crean
campos) o el nombre del ndice de la tabla que se desea eliminar.
ADD COLUMN Se utiliza para aadir un nuevo campo a la tabla, indicando el nombre,
el tipo de campo y opcionalmente el tamao (para campos de tipo texto).
ADD Se utliza para agregar un ndice de multicampos o de un nico campo.
DROP COLUMN Se utliza para borrar un campo. Se especifica nicamente el nombre
del campo.
DROP Se utiliza para eliminar un ndice. Se especifica nicamente el nombre del ndice
a continuacin de la palabra reservada CONSTRAINT.
Ejemplo:
Agrega un campo Salario de tipo Moneda a la tabla persona.
ALTER TABLE persona ADD COLUMN Salario CURRENCY;
Elimina el campo Salario de la tabla persona.
ALTER TABLE persona DROP COLUMN Salario;

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

Vous aimerez peut-être aussi