sql

4
El lenguaje de consulta estructurado o SQL (por sus siglas en inglés 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 características es el manejo del álgebra y el cálculo relacional que permiten efectuar consultas con el fin de recuperar de forma sencilla información de interés 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 más 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 código SQL selecciona los registros de la tabla Clientes que residan en Madrid. Los campos que devolvería serían todos, ya que hemos indicado * después de SELECT. Si sólo queremos que devuelva los datos contenidos en los campos Nombre, Apellidos y NIF haríamos esto otro: SELECT Nombre, Apellidos, NIF FROM Clientes WHERE Provincia = 'Madrid' TIP: Por rendimiento, es recomendable devolver sólo los campos que realmente necesitamos en lugar de devolver todos los campos. Clasificar los datos seleccionados (ORDER BY) (02/May/04) También 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 añadimos la instrucción DESC después del campo por el que queremos clasificar:

Upload: luis-aguilar

Post on 04-Sep-2015

223 views

Category:

Documents


0 download

DESCRIPTION

Sistema SQL

TRANSCRIPT

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 ApellidosPero 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 DESCO 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, NombreY 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 DESCTambin 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 DESCTOP 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 DESCNota: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 ServerNota: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).