You are on page 1of 4

El lenguaje de consulta estructurado o SQL (por sus siglas en ingls structured query

language) es un lenguaje declarativo de acceso a bases de datos relacionales que permite


especificar diversos tipos de operaciones en ellas. Una de sus caractersticas es el manejo
del lgebra y el clculo relacional que permiten efectuar consultas con el fin de recuperar
de forma sencilla informacin de inters de bases de datos, as como hacer cambios en ella.
Seleccionar los datos a cargar de una tabla (02/May/04)
Esta es la forma ms sencilla y habitual de usar las rdenes SQL.
Normalmente usaremos este tipo de instrucciones para cargar los datos en un
DataTable (si trabajamos con ADO.NET o en un Recordset si trabajamos con ADO o
DAO).
Por ejemplo:
SELECT * FROM Clientes WHERE Provincia = 'Madrid'
Este cdigo SQL selecciona los registros de la tabla Clientes que residan en Madrid.
Los campos que devolvera seran todos, ya que hemos indicado * despus de SELECT.
Si slo queremos que devuelva los datos contenidos en los campos Nombre, Apellidos
y NIF haramos esto otro:
SELECT Nombre, Apellidos, NIF FROM Clientes WHERE Provincia = 'Madrid'
TIP:
Por rendimiento, es recomendable devolver slo los campos que realmente
necesitamos en lugar de devolver todos los campos.

Clasificar los datos seleccionados (ORDER BY) (02/May/04)


Tambin podemos indicar que esos datos se devuelvan clasificados por cualquier
campo, por ejemplo por los Apellidos de forma ascendente (la forma predeterminada):
SELECT Nombre, Apellidos, NIF FROM Clientes WHERE Provincia = 'Madrid'
ORDER BY Apellidos
Pero si queremos los datos de mayor a menor (descendente), le aadimos la
instruccin DESC despus del campo por el que queremos clasificar:
SELECT Nombre, Apellidos, NIF FROM Clientes WHERE Provincia = 'Madrid'
ORDER BY Apellidos DESC
O si queremos que la clasificacin se haga usando dos campos, esos campos los
indicaremos separados por comas:
SELECT Nombre, Apellidos, NIF FROM Clientes WHERE Provincia = 'Madrid'
ORDER BY Apellidos, Nombre
Y si queremos que el orden sea descendente, le aadimos a continuacin la instruccin
DESC detrs de cada campo:

SELECT Nombre, Apellidos, NIF FROM Clientes WHERE Provincia = 'Madrid'


ORDER BY Apellidos DESC, Nombre DESC
Tambin podemos clasificar en distinto orden los campos indicados tras ORDER BY, por
ejemplo:
SELECT * FROM Clientes ORDER BY Apellidos DESC, Nombre ASC, NIF DESC
.

Indicar el nmero mximo de filas a devolver (TOP) (02/May/04)


Al realizar una seleccin de datos clasificados (usando ORDER BY), podemos indicar el
nmero de filas (registros) mximos que queremos devolver, para ello indicaremos TOP
y el nmero de filas o el porcentaje de filas a devolver:
Con las siguientes instrucciones se devolvern los primeros 50 registros (si los hay)
que cumplan las condiciones indicadas:
SELECT TOP 50 Nombre, Apellidos, NIF FROM Clientes WHERE Provincia =
'Madrid' ORDER BY Apellidos DESC
TOP no diferencia filas que sean iguales, es decir, si la fila 50 y la 51 tienen los mismos
Apellidos, devolver 51.
En este otro ejemplo, se devolver el 20% de las filas que coincidan con las
instrucciones SQL indicadas:
SELECT TOP 20 PERCENT Nombre, Apellidos, NIF FROM Clientes WHERE
Provincia = 'Madrid' ORDER BY Apellidos DESC
Nota:
Dependiendo de que estemos usando DAO o ADO el nmero de filas devueltas puede
que sea distinto de cuando usamos ADO.NET, al menos en una misma tabla, usando
TOP 150, con ADO me devolva 151 filas y con ADO.NET me devolva 150.
No se si es que TOP se comporta de forma diferente en ADO.NET
.

Actualizar los datos segn un criterio (UPDATE) (02/May/04)


Si lo que quieres es actualizar el contenido de un campo cuando se cumpla un criterio
indicado, en lugar de recorrer todas las filas, podemos usar UPDATE / SET, por
ejemplo:
UPDATE Clientes SET NPr = 28 WHERE Provincia = 'Madrid'

Esto har que se asigne un valor 28 al campo NPr de todos los clientes que cumplan lo
que se indica despus de WHERE, es decir que cumplan el criterio indicado.
Tambin podemos indicar (despus de SET) varios campos a actualizar, separndolos
por comas:
UPDATE Clientes SET NPr = 28, Patrn = 'San Isidro' WHERE Provincia =
'Madrid'
Una vez ejecutadas estas instrucciones SQL no se podr deshacer los cambios, al
menos si estamos trabajando con Recordsets DAO o ADO, ya que si trabajamos con
ADO.NET, esos datos slo se harn permanentes al actualizar "fsicamente" los datos
con el DataAdapter.
.

Eliminar los datos segn un criterio (DELETE) (02/May/04)


De la misma forma que podemos actualizar la informacin mediante un criterio
WHERE, podemos eliminar los registros de forma "masiva" usando la instruccin
DELETE.
Por ejemplo para eliminar todos los Clientes de Madrid:
DELETE * FROM Clientes WHERE Provincia = 'Madrid'

Nota:
Ni que decir tiene que este tipo de instrucciones SQL hay que usarla con muchsima
precaucin, ya que si la tabla est ligada a otra, tambin se perdern los datos
relacionados.
Y una vez eliminados los datos... ya no se pueden recuperar.
El uso de DELETE no elimina la tabla, aunque se eliminaran todos los registros.
.

Sobre el contenido de esta seccin.


En esta pgina te mostrar algunas instrucciones SQL que te permitirn manejar datos
de forma ms o menos fcil o al menos te servirn como punto de referencia cuando
necesites hacer algo en concreto.
Algunas de estas instrucciones (u rdenes) servirn tanto para bases de datos del tipo
Access como de SQL Server (e incluso otros proveedores de datos), en la medida de lo
posible, intentar indicar si hay alguna restriccin para algunos de los proveedores.
Tambin intentar informarte cmo usar esas instrucciones, ya que algunas

simplemente servirn para seleccionar datos y otros harn cambios en las tablas
afectadas.
Los ejemplos principalmente sern para usar con ADO.NET, pero en otras ocasiones
tambin sern vlidas para ADO e incluso para DAO, en estos casos es posible que
existan otros links (enlaces) a las pginas de ADO y DAO "normales", las que estn en
la seccin de VB.
Si no se indica nada (sobre todo si no hay ejemplos de cdigo), las instrucciones SQL
indicadas sern vlidas tanto para DAO, ADO y ADO.NET y para bases de Access o SQL
Server

Nota:
El que se llame rdenes SQL (o instrucciones SQL), no quiere decir
que slo sean vlidos para bases de datos SQL Server, ya que el
"lenguaje" SQL es un estndar (o casi) que se usa para manejar los
datos de cualquier base de datos, (al menos las de Access y SQL
Server).

You might also like