Vous êtes sur la page 1sur 25

Lenguaje Estructurado de consultas

SQL
ESTRUCTURA BASICA, OPERACIONES, CONSULTAS

SQL

El lenguaje de consulta estructurado (SQL) es un lenguaje de base de datos normalizado y estandar para trabajar con bases

de datos relacionales. Originalmente fue desarrollado en IBM a principio de los aos setenta, fue implementado por primera vez a gran escala en un prototipo de IBM llamado System R. Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sera realmente complicada a gestionar de no ser por la existencia de estndares que nos permiten el realizar las operaciones bsicas de una forma universal. Es de eso de lo que trata el Structured Query Language que no es mas que un lenguaje estndar de comunicacin con bases de datos.

SQL

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.
Los DLL nos permiten crear y definir nuevas bases de datos, campos e ndices

DDL

CREATE DROP ALTER

Comandos
DML
SELECT INSERT UPDATE Los DML nos permite generar consultas para ordenar, filtrar y extraer datos de la base de datos.

SQL
From
Utilizada para especificar la tabla de la cual se van a seleccionar los registros
Utilizada para especificar las condiciones que deben reunir los registros que se van a seleccionar para separar los seleccionados en grupos especficos registros

Where

Clausulas
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o manipular.

Group By Utilizada Having Order By

Utilizada para expresar la condicin que debe satisfacer cada grupo Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico

SQL
Logicos

And Or Not

Operadores
< > = Between Like In

Comparacion

SQL
avg
Utilizada para calcular el promedio de los valores de un campo determinado Utilizada para devolver el nmero de registros de la seleccin Utilizada para devolver la suma de todos los valores de un campo determinado Utilizada para devolver el valor ms alto de un campo especificado Utilizada para devolver el valor ms bajo de un campo especificado

count

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.

sum max min

CREACION DE TABLAS EN SQL

Para crear una tabla debemos especificar diversos datos: El nombre que le queremos asignar, los nombres de los campos y sus caractersticas. Adems, puede ser necesario especificar cules de estos campos van a ser ndices y de qu tipo van a serlo. La sintaxis de esta sentencia seria la siguiente:

Sintaxis
Create Table tabla ( campo1 tipo(tamao) campo2 tipo campoN tipo Key(campo_x,...) );

AGREGAR UN REGISTRO A LA TABLAS


Los registros pueden ser introducidos a partir de sentencias que emplean la instruccin Insert. Sintaxis: Insert Into nombre_tabla (nombre_campo1, nombre_campo2,...) Values (valor_campo1, valor_campo2...) Ejemplo: insert into drinkers values ('Hugo', 'CIC-IPN', '5729-6000');

BORRAR UN REGISTRO A LA TABLAS


Para borrar un registro nos servimos de la instruccin Delete. En este caso debemos especificar cual o cuales son los registros que queremos borrar. Es por ello necesario establecer una seleccin que se llevara a cabo mediante la clusula Where. Sintaxis: Delete From nombre_tabla Where condiciones_de_seleccin Ejemplo: Delete From clientes Where nombre='Perico'

Hay que tener cuidado con esta instruccin ya que si no especificamos una condicin con Where, lo que estamos haciendo es borrar toda la tabla:
Delete From clientes

ACTUALIZAR UN REGISTRO A LA TABLAS


Update es la instruccin que nos sirve para modificar nuestros registros. Como para el caso de Delete, necesitamos especificar por medio de Where cules son los registros en los que queremos hacer efectivas nuestras modificaciones. Adems, obviamente, tendremos que especificar cules son los nuevos valores de los campos que deseamos actualizar. La sintaxis es de este tipo: Sintaxis:

Update nombre_tabla Set nombre_campo1 = valor_campo1, nombre_campo2 = valor_campo2,... Where condiciones_de_seleccin


Ejemplo: Update clientes Set nombre='Jos' Where nombre='Pepe' Mediante esta sentencia cambiamos el nombre Pepe por el de Jos en todos los registros cuyo nombre sea Pepe. Aqu tambin hay que ser cuidadoso de no olvidarse de usar Where, de lo contrario, modificaramos todos los registros de nuestra tabla.

SELECCION DE REGISTROS DE TABLAS


La seleccin total o parcial de una tabla se lleva a cabo mediante la instruccin Select. En dicha seleccin hay que especificar Los campos que queremos seleccionar -La tabla en la que hacemos la seleccin Sintaxis:

Select campos From tabla


Por ejemplo si tenemos una tabla de clientes podramos hacer una seleccin del nombre y direccin de los clientes con una instruccin de este tipo: Select nombre, direccin From clientes Si quisisemos seleccionar todos los campos, es decir, toda la tabla, podramos utilizar el comodn * del siguiente modo: Select * From clientes

SELECCION DE REGISTROS DE TABLAS


Resulta tambin muy til el filtrar los registros mediante condiciones que vienen expresadas despus de la clusula Where. Sintaxis: Select campos From tabla Where condicion Por ejemplo Si quisisemos mostrar los clientes de una determinada ciudad usaramos una expresin como esta: Select * From clientes Where poblacion Like 'Madrid'

ORDENAR LA SELECCION DE REGISTROS DE TABLAS


Adems, podramos ordenar los resultados en funcin de uno o varios de sus campos. Sintaxis: Select campos From tabla Where condicion Order By campo Para este ejemplo los podramos ordenar por nombre as:
Select * From clientes Where poblacion Like 'Madrid' Order By nombre

Teniendo en cuenta que puede haber ms de un cliente con el mismo nombre, podramos dar un segundo criterio que podra ser el apellido:
Select * From clientes Where poblacion Like 'Madrid' Order By nombre, apellido

ORDENAR LA SELECCION DE REGISTROS DE TABLAS


Es posible tambin clasificar por orden inverso. Si por ejemplo quisisemos ver nuestros clientes por orden de pedidos realizados teniendo a los mayores en primer lugar escribiramos algo as: Select * From clientes Order By pedidos Desc Una opcin interesante es la de efectuar selecciones sin coincidencia. Si por ejemplo buscaramos el saber en qu ciudades se encuentran nuestros clientes sin necesidad de que para ello aparezca varias veces la misma ciudad usaramos una sentencia de esta clase:

Select

Distinct

poblacion

From

clientes

Order

By

poblacion

As evitaramos ver repetido Madrid tantas veces como clientes tengamos en esa poblacin.

COMODINES

* %
_

Sustituye a todos los campos Sustituye a cualquier cosa o nada dentro de una cadena Sustituye un solo caracter dentro de una cadena

USO DE LOS COMODINES:


Aplicaciones practicas de estos operadores. En esta sentencia seleccionamos todos los clientes de Madrid cuyo nombre no es Pepe. Como puede verse, empleamos Like en lugar de = simplemente para evitar inconvenientes debido al empleo o no de maysculas. Select * From clientes Where poblacion Like 'madrid' And Not nombre Like 'Pepe' Si quisiramos seleccionar a los clientes de nuestra tabla cuyo apellido comienza por A y cuyo nmero de pedidos esta comprendido entre 20 y 40: Select * From clientes Where apellidos like 'A%' And pedidos Between 20 And 40

PRACTICA LIBRERIA
Tenemos una base de datos para una aplicacin de e-comercio, la tabla clientes puede estar perfectamente coordinada con una tabla donde almacenamos los pedidos realizados por cada cliente. Esta tabla de pedidos puede a su vez estar conectada con una tabla donde almacenamos los datos correspondientes a cada artculo del inventario. Definamos las diferentes tablas y campos que vamos a utilizar en nuestro ejemplo:

Consultas(1)
Supongamos que queremos enviar un mailing a todos aquellos que hayan realizado un

pedido ese mismo da. Podramos escribir algo as:

Select clientes.apellidos, clientes.email From clientes,pedidos Where pedidos.fecha like '25/02/00' And pedidos.id_cliente= clientes.id_cliente
Como puede verse esta vez, despus de la clusula From, introducimos el nombre de las dos tablas de donde sacamos las informaciones. Adems, el nombre de cada campo va precedido de la tabla de provenencia separados ambos por un punto. En los campos que poseen un nombre que solo aparece en una de las tablas, no es necesario especificar su origen aunque a la hora de leer la sentencia puede resultar ms claro el precisarlo. En este caso el campo fecha podra haber sido designado como "fecha" en lugar de "pedidos.fecha".

Consultas(2)
Si queremos ver el ttulo del libro correspondiente a cada uno de los pedidos

realizados: Select pedidos.id_pedido, articulos.titulo From pedidos, articulos Where pedidos.id_articulo=articulos.id_articulo En realidad la filosofa continua siendo la misma que para la consulta de una nica tabla.

SQL

FUNCIONES

Reina Hernandez Ramirez

Funciones(1)
Adems de los criterios para realizar las consultas en tablas, SQL permite

tambin aplicar un conjunto de funciones predefinidas. Estas funciones, aunque bsicas, pueden ayudarnos en algunos momentos a expresar nuestra seleccin de una manera ms simple. Algunas de estas funciones son representadas en la tabla siguiente :

Funciones(2)
Dado que el campo de la funcin no existe en la base de datos, sino que lo estamos generando virtualmente, esto puede crear inconvenientes cuando estamos trabajando con nuestros scripts a la hora de tratar su valor y su nombre de campo. Es por ello que el valor de la funcin ha de ser recuperada a partir de un alias que nosotros especificaremos en la sentencia SQL a partir de la instruccin AS. Por ejemplo: Select Sum(total) As suma_pedidos From pedidos A partir de esta sentencia calculamos la suma de los valores de todos los pedidos realizados y almacenamos ese valor en un campo virtual llamado suma_pedidos que podr ser utilizado como cualquier otro campo por nuestras paginas dinmicas.

Funciones(3)
Todo lo visto hasta ahora puede ser aplicado en este tipo de funciones de modo que, por ejemplo, podemos establecer condiciones con la clusula Where construyendo sentencias como esta: Select Sum(cantidad) as suma_articulos From pedidos Where id_articulo=6 Esto nos proporcionara la cantidad de ejemplares de un determinado libro que han sido vendidos.

Funciones(4)
Otra propiedad interesante de estas funciones es que permiten realizar operaciones con varios campos dentro de un mismo parntesis: Select Avg(total/cantidad) From pedidos

Esta sentencia da como resultado el precio medio al que se estn vendiendo los libros.
Este resultado no tiene por qu coincidir con el del precio medio de los libros presentes en el inventario, ya que, puede ser que la gente tenga tendencia a comprar los libros caros o los baratos: Select Avg(precio) as precio_venta From articulos

Funciones(5)
Una clusula interesante en el uso de funciones es Group By. Esta clusula nos permite agrupar registros a los cuales vamos a aplicar la funcin. Podemos por ejemplo calcular el dinero gastado por cada cliente: Select id_cliente, Sum(total) as suma_pedidos From pedidos Group By id_cliente O saber el numero de pedidos que han realizado: Select id_cliente, Count(*) as numero_pedidos From pedidos Group By id_cliente

Vous aimerez peut-être aussi