Lenguaje SQL, un acercamiento básico

5
Tecnología de la Información UBA - FCE Apunte realizado por Federico Morrone y editado por Gustavo Schneider 1 Structured Query Language (SQL) a) Definición. Origen. El SQL es un lenguaje de manipulación y definición 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 traducción es ‘Lenguaje de consulta estructurado) está basado en palabras del idioma Inglés. El origen de este lenguaje se da por la mitad de la década del 80’ cuando los laboratorios de IBM lo desarrollaron con el fin de poseer un medio ágil, rápido e intuitivo para tratar la información. Con el correr del tiempo, el SQL se fue afianzando hasta convertirse en un estándar dentro de la industria de la información. Si bien es un estándar 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 básicas 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 definición de datos: Son utilizadas para crear bases de datos y definir su estructura. b.2) Funciones de Manipulación de datos: Son las funciones más 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 básicas del SQL Cómo se describió anteriormente, el SQL adopta como instrucciones para el accionar sobre los datos palabras escritas en el idioma inglés. A continuación definiremos las principales instrucciones: INSTRUCCIÓN MODO DE USO ACCION SELECT SELECT <Nombre de campo> o <Lista de campos> o <comodín> Selecciona campos. FROM SELECT * FROM <Nombre de la Tabla> Indica la tabla fuente. WHERE SELECT * FROM <Tabla> WHERE <Campo> <Operador> <Criterio> Permite filtrar la búsqueda. ORDER BY SELECT * FROM <Tabla> WHERE <Campo> <Operador> <Criterio> ORDER BY <Campo> Ordena la búsqueda según un campo de la selección.

description

El SQL es un lenguaje de manipulación y definición de datos que nos permite extraer, insertar, consultar, administrar y realizar varias operaciones con las tablas y los datos de una base de datos. En este apunte se intentará hacer una aproximación al mismo, ideal para alumnos que no tienen nociones informáticas.Autor: Gustavo Schneider

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