Lenguaje SQL, un acercamiento básico
description
Transcript of Lenguaje SQL, un acercamiento básico
-
Tecnologa de la Informacin UBA - FCE
Apunte realizado por Federico Morrone y editado por Gustavo Schneider 1
Structured Query Language (SQL)
a) Definicin. Origen.
El SQL es un lenguaje de manipulacin y definicin de datos que nos permite extraer,
insertar, consultar, administrar y realizar varias operaciones con las tablas y los datos de una base de datos. El SQL (cuya traduccin es Lenguaje de consulta estructurado)
est basado en palabras del idioma Ingls. El origen de este lenguaje se da por la mitad de la dcada del 80 cuando los laboratorios de IBM lo desarrollaron con el fin de
poseer un medio gil, rpido e intuitivo para tratar la informacin. Con el correr del
tiempo, el SQL se fue afianzando hasta convertirse en un estndar dentro de la industria de la informacin.
Si bien es un estndar del manejo de datos, cada fabricante de motores de base de datos (Microsoft, Oracle, Infomix, Sybase, entre otros) le han ido adaptando algunas
operaciones propietarias, pero siempre respetando las instrucciones bsicas del
lenguaje.
b) Funciones del esenciales del SQL
El SQL trae alrededor de 47 tipos de instrucciones las cuales permiten realizar
diferentes acciones sobre las bases de datos.
b.1) Funciones de definicin de datos: Son utilizadas para crear bases de datos y definir su estructura.
b.2) Funciones de Manipulacin de datos: Son las funciones ms comunes del
SQL (y las que vemos en el curso). Se utilizan para consultar la base de datos,
para agregar, borrar, modificar y extraer datos contenidos en la base de datos.
b.3) Procedimientos Almacenados: Son un conjunto de instrucciones SQL almacenadas y ejecutados en conjunto por un programa o una persona.
c) Sentencias y estructuras bsicas del SQL
Cmo se describi anteriormente, el SQL adopta como instrucciones para el accionar sobre los datos palabras escritas en el idioma ingls. A continuacin definiremos las
principales instrucciones:
INSTRUCCIN MODO DE USO ACCION SELECT SELECT o o Selecciona campos.
FROM SELECT * FROM Indica la tabla fuente.
WHERE SELECT * FROM WHERE Permite filtrar la bsqueda.
ORDER BY SELECT * FROM WHERE ORDER BY Ordena la bsqueda segn un campo de la seleccin.
-
Tecnologa de la Informacin UBA - FCE
Apunte realizado por Federico Morrone y editado por Gustavo Schneider 2
La clusula SELECT indica el o los campos que deseamos ver como resultado. Por defecto el sistema nombrar cada columna de la tabla de resultados como la columna
de la tabla de origen. Para modificarlo, se puede utilizar un alias.
Con respecto a la instruccin FROM, la utilizamos para indicar el origen de los campos sealados en toda la consulta. Los alias en esta instruccin sirven para resumir el uso
del nombre de las tablas en toda la consulta. Estas dos instrucciones SON BASICAS E IMPRESINDIBLES PARA REALIZAR UNA CONSULSA SQL. La ausencia de una de estas clusulas provocara un error de consulta.
Mediante la sentencia WHERE podemos refinar nuestra bsqueda utilizando ciertos
criterios aplicados a determinados campos. Se podrn aplicar condiciones sobre columnas que NO estn en la clusula select, siempre y cuando pertenezcan a las
tablas ingresadas en el FROM.
El ordenamiento de la consulta lo indicamos utilizando la instruccin ORDER BY
seguida del campo por el cual se pretende ordenar. Por defecto el ordenamiento es ASCENDENTE (del menor al mayor valor). En el caso que se pretende ordenar el
resultado de la consulta en forma descendente se debe escribir la palabra DESC luego del nombre del campo por el cual ordenar de la instruccin ORDER BY. Al igual que con
la sentencia WHERE, se podr ordernar los datos por columnas que NO estn en la clusula select, siempre y cuando pertenezcan a las tablas ingresadas en el FROM.
Tanto el WHERE, como el ORDER BY son instrucciones optativas, es decir, para armar una consulta SQL se puede prescindir de stas, no as la instruccin SELECT y la
instruccin FROM.
d) Operadores para los criterios de la instruccin WHERE
La esencia de la instruccin WHERE es permitir aplicar distintos criterios sobre el valor que pueden asumir campos de una tabla determinada. Dichos criterios se aplican
mediante el uso de distintos tipos de operadores. Estos operadores los clasificaremos
de la siguiente manera:
1) Operadores Matemticos: Son aquellos operadores los cuales nos permiten aplicar a los criterios buscados cierta relacin. Estos son:
OPERADOR SIGNIFICADO
= Igual. El valor escrito despus del signo debe coincidir exactamente con el valor contenido en el campo buscado.
Distinto. El valor escrito despus del signo debe ser distinto exactamente al valor contenido en el campo buscado.
> Mayor que. El valor escrito luego del signo debe ser ms grande y excluyente al que se busca en el campo.
< Menor que. El valor escrito luego del signo debe ser ms pequeo y excluyente al que se busca en el campo.
>= Mayor o Igual. El valor escrito despus del signo deber ser o bien igual o bien mayor al buscado en el campo.
-
Tecnologa de la Informacin UBA - FCE
Apunte realizado por Federico Morrone y editado por Gustavo Schneider 3
OPERADOR SIGNIFICADO
IN El operador IN deber ser acompaado pr una serie de valores encerrados entre parntesis. Esta validacin permitir chequear que un campo tenga uno de valores que se incluirn dentro de los parntesis.
LIKE Realiza una bsqueda de valores de alfanumricos utilizando caracteres especiales conocidos como comodines.
3) Operadores Lgicos: Los operados lgicos utilizados en SQL funcionan
uniendo criterios de los otros dos tipos de operadores, o bien pueden ser utilizados para enlazar distintas sentencias WHERE.
OPERADOR SIGNIFICADO
AND Es el y lgico, la conjuncin. Significa que las condiciones que hacen las veces de extremos deben ser verdaderas si o si.
OR Es el o lgico, disyuncin. Significa que los criterios que hacen las veces de extremos deben ser al menos uno verdadero para que se cumple.
Restricciones de uso
Existen algunas restricciones en el momento de realizar criterios de bsqueda
en SQL, que son inherentes al tipo de datos que pueden asumir los campos. A continuacin veremos algunos de ellas:
a) Campos de tipo texto: Son aquellos campos cuyo valor se encuentra compuesto por caracteres alfanumricos que van desde
la letra A hasta la Z y los cuales pueden estar combinados con nmeros desde el 0 al 9. Un ejemplo de campo de tipo texto podra
ser el apellido de un individuo Perez o un cdigo de frmula que
sea PERT9001. Para este tipo de campos, los nicos operadores que utilizaremos van a ser el igual (=), el distinto () y el LIKE,
y en todos los casos el valor a buscar debe estar entre comillas simples (). A su vez, no se podr utilizar ninguno de los otros
operadores. A modo de ejemplo veamos la siguiente consulta:
SELECT *
FROM Productos WHERE codigo = PERT9001
b) Campos de tipo numrico: Son aquellos campos cuyos valores solo
son nmeros que representan cifras. Para este tipo de campos no
existe ninguna restriccin con respecto al uso de los operadores salvo que no es necesario utilizar las comillas dobles para indicar el
valor deseado. En este caso, el ejemplo podra ser el siguiente:
-
Tecnologa de la Informacin UBA - FCE
Apunte realizado por Federico Morrone y editado por Gustavo Schneider 4
SELECT *
FROM Productos
WHERE stock => 4 AND stock
-
Tecnologa de la Informacin UBA - FCE
Apunte realizado por Federico Morrone y editado por Gustavo Schneider 5
Devolver un nico resultado, indicando la suma de todos los stocks reales de la sucursal 8.
Por el otro lado, si se acompaa la funcin con el nombre de alguna tabla, ser obligatorio el
uso de la instruccin GROUP BY que le indicar al sistema cmo debe agrupar los datos que resultan de aplicar la funcin. Para este curso, el ORDER BY simplemente deber contener el
nombre de todas las columnas que aparezcan en el SELECT adems de la funcin de agregacin.
Por ejemplo la consulta:
SELECT ID_SUCURSAL as Id de Sucursal, sum(STOCK_REAL)
as Total de stock real FROM SUCURSAL_PRODUCTO
WHERE ID_SUCURSAL in (7,8,9) GROUP BY ID_SUCURSAL
Nos indicar un resultado como el siguiente:
Id de Sucursal Total de stock real
7 400
8 500
9 200
Vale la aclaracin que los datos resultantes de la consulta podrn ser ordenados por los
resultados de la funcin de agregacin. Por ejemplo, a la sentencia anterior podemos
modificarla de la siguiente manera:
SELECT ID_SUCURSAL as Id de Sucursal, sum(STOCK_REAL) as Total de stock real
FROM SUCURSAL_PRODUCTO
WHERE ID_SUCURSAL in (7,8,9) GROUP BY ID_SUCURSAL
ORDER BY sum(STOCK_REAL) DESC
Y el resultado ser el siguiente:
Id de Sucursal Total de stock real
8 500
7 400
9 200
f) Unin de tablas
Para trabajar con ms de una tabla, utilizaremos la instruccin INNER JOIN, dentro de la
clusula FROM, de la siguiente manera:
SELECT ., . FROM INNER JOIN ON . = .
Recuerden que podrn utilizar alias para simplificar la consulta, por ejemplo:
SELECT SP.NOMBRE AS Nombre de la sucursal, P.DESCRIPCION as Descripcin del producto
FROM PRODUCTOS AS P INNER JOIN SUCURSAL_PRODUCTO SP ON P.ID_PRODUCTO =
SP.ID_PRODUCTO