martes, 2 de noviembre de 2010

CREACIÓN DE CONSULTAS A LA BASE DE DATOS

El objetivo de toda base de datos es permitir la consulta de la data que esta almacenada en las tablas y para eso SQL Server 2005 posee la cláusula SELECT  que nos permite realizar consultas simples o complejas, utilizando las herramientas que acompañan a este comando el uso de operadores, funciones de conversión, comodines y otras clausulas necesarias como el FORM, WHERE, ORDER BY.

Se utilizaran:
SELECT                permite seleccionar una, varias o todas las columnas
FROM                   para especificar de qué tabla(s) se obtendrá la data
WHERE                 para especificar una condición simple o compleja
ORDER BY           para ordenar (ascendente o descendente) la data consultada


Sintaxis completa:
SELECT: * | lista_columnas
INTO: crear una nueva tabla a partir de un select
FROM: tabla_origen
WHERE: condición_filas
GROUP BY: expresión_agrupar_por
HAVING: es un where de la data agrupada
ORDER BY [ASC/DESC]: ordenar de forma ascendente o descendente

·      lista_columnas es la lista de columnas q mostrar en el resultado de la consulta. Si se especifica * se mostrarán todas las columnas de la tabla.
·      condición_filas es una expresión lógica que indica que las filas a mostrar son aquellas para las que el valor de la expresión es verdadero
Funciones:
·      MAX: para determinar el máximo de una columna
·      MIN: para determinar el mínimo de una columna
·      AVG: saca el promedio de una columna
·      COUNT(*): cuenta el número de elementos de una tabla
·      SUM(NOM_COLUMNA): suma los elementos de una columna
·      DISTINCT  NOM_COL: muestra los elementos diferentes de la columna
·      %: cualquier cadena
·      DESC: ordena de forma descendente
·      ASC: ordena de forma ascendente

EMPEZAMOS A TRABAJAR
Ahora se realizara algunos ejemplos para poder apreciar mejor como se trabaja bajo estas consultas.
Para el ejemplo se usara la base de datos DEMO y la tabla CLIENTE, que fueron creadas anteriormente.
--se situa la BD donde se va a trabajar
USE DEMO
GO

--mostrar todas las columnas y filas de la tabla CLIENTE
SELECT * FROM CLIENTE 
GO

--mostra solamente ID_CLIENTE y NOMBRE de CLIENTE
SELECT ID_CLIENTE, NOMBRE
FROM CLIENTE
GO

--cambiamos el nombre de las columnas para visualizr los resultados
SELECT ID_CLIENTE AS CODIGO, NOMBRE AS [NOMBRE DE CLIENTE]
FROM CLIENTE
GO
--usando WHERE, aquí se mostrara todos los clientes q tengan apellido ZEGARRA
SELECT *
FROM CLIENTE
WHERE APELLIDO='ZEGARRA'
GO
 
--mostrar clientes que se llamen LUIS o FIORELA
SELECT *
FROM CLIENTE
WHERE NOMBRE='LUIS' OR
        NOMBRE='FIORELA'
GO
--mostrar clientes cuyos ID_CLIENTE esten entre 0001 y 0005
SELECT *
FROM CLIENTE
WHERE ID_CLIENTE BETWEEN '0001' AND '0005'
GO

--agregamos el operador LIKE, para realizar busquedas
SELECT *
FROM CLIENTE
WHERE NOMBRE LIKE 'M%'   --determina a los nombres q empisan con la  letra m sin importar las demas letras donde el '%' significa cualkier cadena
GO

SELECT *
FROM CLIENTE
WHERE APELLIDO LIKE '%A'   –-apellidos que terminan en la letra A
GO

SELECT *
FROM CLIENTE
WHERE NOMBRE LIKE '%E%'     –-nombres que contengan la letra E
GO

SELECT *
FROM CLIENTE
WHERE NOMBRE LIKE '__R%' --no importa cual se el primer o segundo termino, pero que el tercero sea R y lo que resta q sea cualquier cadena
GO

--usando ORDER BY
SELECT *
FROM CLIENTE
ORDER BY NOMBRE ASC
GO

--         1        2       3
SELECT ID_CLIENTE,NOMBRE,APELLIDO
FROM CLIENTE
ORDER BY 2 ASC, 3 DESC  --- primero ordena en base al campo 2 de forma ascendente, luego si hay varios elementos para este orden, se ordena en base al campo 3 de forma descendente
GO






19 comentarios:

  1. chevere su blog ya que sea de mucha ayuda para todos,ya que estros alamcenan info.

    TURNO: TARDE - AULA : 210
    ALUMNO: ALCARRAZ GONZALES PABLO ANGEL

    ResponderEliminar
  2. este blog es interesante ya k nos ayudara pal prox ciclo como es base de datos
    muy importante gracias man 10 puntos para ti :)

    turno tarde aula 210
    eduardo quispe garcia

    ResponderEliminar
  3. Este blog es de ayuda ya que nos da un pequeño ejemplo como es una base de datos, esto nos servira de ayuda para el proximo ciclo, gracias x la ayuda

    Jordan Baltodano Tineo
    Turno Tarde
    Aula 209

    ResponderEliminar
  4. buen tema!!!! espero que puedas hablar un poco mas sobre: triggers, views, stored procedure; estoy seguro que con eso mejorara mucho tu blog!!1

    ResponderEliminar
  5. este blog sería más interesante si fuera más dinamico, en lo particular si me parece util aprender el verdadero sentido que tiene el usar las consultas en una base de dato, ya que te permite realizar busquedas y agilizar procesos.

    alumno: Karen Lezma Quincho
    Aula: 209
    Turno:Tarde

    ResponderEliminar
  6. Es un aporte interesante Victor, el detalle es bueno, me parece que le hace falta que agregues el linck de descarga del SQL 2005, y que también pudieras mostrar un poco de la instalación, saltándome del tema que piensas con ralaciÓn a las consultas en el SQL 2007, seria bueno ese aporte adicional.
    Gracias...
    "Meléndez Guevara César - Seminario de actualización 2"

    ResponderEliminar
  7. Me parece bien la introduccion que nos haces a base de datos , tambien cabe destacar que digas las caracteristicas y utilidades del SQL asi como tambien sus defectos como lo son el nop poder instalarlos en windows 7, dejando un lado a esto esta bien tu explicacion aunque podrias mejorarlo explicandonos como usar estos datos con software de aplicacion para ciclos menores para ampliar sus conocimiento.

    RICALDI VILA, Carlos

    210 Tarde GE

    ResponderEliminar
  8. ola esta bueno tu blogs sobre ssql -pero deberias detallar algunas consultas mas fuertes o que dependan de un cubo ,,o como hacer el cubo de en toma de decisiones ,,,podrias mostrar un tutorial-.-.y mi pregunta sria como haria para no saturar mi log... con datos que ya son innecesarios

    medina garcia igor alejandro
    8vo ciclo

    ResponderEliminar
  9. buana para poder ordenar la consultas ASc Desc tambien filtrando por caracteres Like

    ResponderEliminar
  10. muy importante para las consultas en mysql y sql server me sirve de mucho

    ResponderEliminar
  11. buena forma como filtrar o seleccionar informacion en una consulta de sql, como en lineas arriba hay una consulta que no muestra los registros pero cuando la columna NOM_COL (DISTINC)

    y en el caso del comando DISTINTROW como seria???

    ResponderEliminar
  12. buena forma como filtrar o seleccionar informacion en una consulta de sql, como en lineas arriba hay una consulta que no muestra los registros pero cuando la columna NOM_COL (DISTINC)

    y en el caso del comando DISTINTROW como seria???

    ResponderEliminar
  13. buen blog me apoya en las consultas de SQL o MYSQL

    ResponderEliminar
  14. Hola! Creo que debrias ser un poco mas claro en referencia al "%" ¿A que te refieres con "cualquier cadena"?

    ResponderEliminar
  15. Hola, muy interesante tu aporte, seria conveniente que colocaras consultas con multiples tablas haciendo uso del join.
    Podrìas agregar algo sobre la administraciòn del sql, serìa interesante.

    ResponderEliminar
  16. no conosco mucho base de datos pero e podido comprender algunas cosas en tu bolg...d e seguro que me ayudara + adlate__ bn men

    ResponderEliminar
  17. hola cmelendezg, el link de descarga del sql server lo agregare despues, es buena esa sugerencia, pero la instalacion si esta desarrollado en el blog, en la part de Instalacion y Configuracion de SQL Server 2005, lo muestro mediante un video.
    por otro lado, no he escuchado nada con respecto al sql 2007, escuche del 2008, perofuera de eso, el proposito del blog es mostrar la herramienta sql server 2005 nada mas, sin meter versiones anteriores o posteriores de este producto.

    ResponderEliminar
  18. holas giseth, el uso de % es para determinar cualquier tipo de carateres, por ejemplo si queremos mostrar nombres q contengan la letra 'A', sin importar la ubicacion, entonces se pondria de la siguiente manera:
    WHERE NOMBRE LIKE '%A%'; en donde no importa los caracteres que compongan el nombre, solo que este la letra 'A'.

    ResponderEliminar
  19. Buena guía, se espera el siguiente tutorial que contenga el group by y el having.

    ResponderEliminar