16
SQL Definiciones de SQL (Structured Query Language) Lenguaje utilizado para base de datos desarrollado entre 1974 y 1975 en IBM Research. Por esos años se llamaba SEQUEL (Structured English QUEry Language) y servía como interfaz para un sistema experimental de base de datos llamado SYSTEM R. SQL fue introducido por Oracle por primera vez en una base de datos comercial en el año 1979. Se convirtió en un estándar ANSI e ISO dando lugar al SQL-86 o SQL1, que se fue actualizando a SQL-92 o SLQ2, luego a SQL3 y actualmente (2004) a SQL4. El lenguaje se utiliza para definir, consultar y actualizar la base de datos, y es el más popular de su estilo. La estructura básica para consultas en SQL es select-from-where. Conceptualmente, SQL es un lenguaje de definición de datos (LDD), un lenguaje de definiciones de vistas (LDV) y un lenguaje de manipulación de datos (LMD), que posee también capacidad para especificar restricciones y evolución de esquemas. SQL (Structured Query Language) es un potente lenguaje informático que cumple las funciones de DDL y DML en los SGBD relacionales. Su origen está en el lenguaje SEQUEL (Structured English QUEry Language) desarrollado en IBM en los años 1974-75. Oracle fue el primer fabricante de sistemas de bases de datos en comercializar una implementación de SQL en 1979. IBM lanzó el producto SQL/DS en 1981 y dos años más tarde el conocido DB2. Se trata de un lenguaje fuertemente basado en el inglés, que puede ser utilizado en modo conversacional mediante un intérprete o bien formando parte de un programa desarrollado en un lenguaje de programación anfitrión como C, Cobol, etc. (SQL embebido). La característica relacional más importante de SQL es que permite acceder a los datos sin necesidad de especificar cómo se ha de realizar dicho acceso permitiendo así la "navegación automática" por los datos.

Consultas en access

Embed Size (px)

Citation preview

Page 1: Consultas en access

SQLDefiniciones de SQL

(Structured Query Language) Lenguaje utilizado para base de datos desarrollado entre 1974 y 1975 en IBM Research. Por esos años se llamaba SEQUEL (Structured English QUEry Language) y servía como interfaz para un sistema experimental de base de datos llamado SYSTEM R.

SQL fue introducido por Oracle por primera vez en una base de datos comercial en el año 1979.

Se convirtió en un estándar ANSI e ISO dando lugar al SQL-86 o SQL1, que se fue actualizando a SQL-92 o SLQ2, luego a SQL3 y actualmente (2004) a SQL4.

El lenguaje se utiliza para definir, consultar y actualizar la base de datos, y es el más popular de su estilo.

La estructura básica para consultas en SQL es select-from-where.

Conceptualmente, SQL es un lenguaje de definición de datos (LDD), un lenguaje de definiciones de vistas (LDV) y un lenguaje de manipulación de datos (LMD), que posee también capacidad para especificar restricciones y evolución de esquemas.

SQL (Structured Query Language) es un potente lenguaje informático que cumple las funciones de DDL y DML en los SGBD relacionales. Su origen está en el lenguaje SEQUEL (Structured English QUEry Language) desarrollado en IBM en los años 1974-75. Oracle fue el primer fabricante de sistemas de bases de datos en comercializar una implementación de SQL en 1979. IBM lanzó el producto SQL/DS en 1981 y dos años más tarde el conocido DB2.

Se trata de un lenguaje fuertemente basado en el inglés, que puede ser utilizado en modo conversacional mediante un intérprete o bien formando parte de un programa desarrollado en un lenguaje de programación anfitrión como C, Cobol, etc. (SQL embebido). La característica relacional más importante de SQL es que permite acceder a los datos sin necesidad de especificar cómo se ha de realizar dicho acceso permitiendo así la "navegación automática" por los datos.

La versión actual más común del lenguaje es la denominado SQL2 que respecto al estándar anterior presenta las ventajas de un mayor incremento de la capacidad expresiva, nuevos operadores añadidos y mejor tratamiento de errores, entre otras. SQL3 incorpora al lenguaje características propias del paradigma de orientación a objeto.

Lenguaje de Querry y de programación muy utilizado para acceder, ejecutar querry, actualizar y gestionar los datos en los sistemas de database relacionales.

Page 2: Consultas en access

Utilizando un lenguaje SQL es posible recuperar los datos de un database, crear databases y objetos de database, añadir datos, modificar datos existentes y ejecutar otras funciones más complejas. Con este lenguaje es posible cambiar la configuración del server, modificar las impostaciones de un database o de una sesión y no último controlar los datos y las instrucciones de acceso.

Los orígenes del SQL están ligados a los de las bases de datos relacionales. En 1970 Dr. Edgar Frank Codd, investigador de IBM, propone el modelo relacional y asociado a este un sub lenguaje de acceso a los datos basado en el cálculo de predicados.

Basándose en estas ideas los laboratorios de IBM definen el lenguaje SEQUEL (Structured English QUEry Language) que más tarde sería ampliamente implementado por el SGBD experimental System R, desarrollado en 1977 también por IBM. Sin embargo, fue Oracle quien lo introdujo por primera vez en 1979 en un programa comercial. El SEQUEL terminaría siendo el predecesor de SQL. La mayoría de las aplicaciones de bases de datos complejas y muchas otras más pequeñas pueden ser manejadas usando SQL. Es un lenguaje de programación interactivo y estandarizado para extraer información y actualizar una base de datos.

SQL Structured Query Language o Lenguaje de Consultas Estructurado. Es el lenguaje que permite la comunicación con el Sistema Gestor de Bases de Datos (Oracle en nuestro caso).

El SQL es un lenguaje unificado Lo utilizan todo tipo de usuarios, desde el administrador de la base de datos, DBA, hasta el usuario final.

El SQL es un lenguaje no procedimental. El usuario especifica Qué quiere, no Cómo ni Dónde conseguirlo.

El SQL es relacionalmente completo. Permite la realización de cualquier consulta de datos.

SQL= DDL + DML Las sentencias del SQL se clasifican como parte del DDL o del DML.

TIPOS DE SENTENCAIAS

Las sentencias SQL pertenecen a dos categorías principales: Lenguaje de Definición de Datos, DDL y Lenguaje de Manipulación de Datos, DML. Estos dos lenguajes no son lenguajes en sí mismos, sino que es una forma de clasificar las sentencias de lenguaje SQL en función de su cometido. La diferencia principal reside en que el DDL crea objetos en la base de datos y sus efectos se pueden ver en el diccionario de la base de datos; mientras que el DML es el que permite consultar, insertar, modificar y eliminar la información almacenada en los objetos de la base de datos.

Page 3: Consultas en access

DML

Un lenguaje de Manipulación de Datos (Data Manipulation Language (DML)) es un lenguaje proporcionado por el sistema de gestión de base de datos que permite a los usuarios de la misma llevar a cabo las tareas de consulta o manipulación de los datos, organizados por el modelo de datos adecuado.          El lenguaje de manipulación de datos más popular hoy día es SQL, usado para recuperar y manipular datos en una base de datos relacional. Otros ejemplos de DML son los usados por bases de datos IMS/DL1, CODASYL u otras.

SENTENCIA DESCRIPCIÓN

DML Manipulación de datosSELECTINSERTUPDATE

Recupera datos de la base de datos.

Añade nuevas filas de datos a la base de datos.

Modifica datos existentes en la base de datos.

SENTENCIA SELECT

La selección sobre una tabla consiste en elegir un subconjunto de filas que cumplan (o no) algunas condiciones determinadas. La sintaxis de una sentencia de este tipo es la siguiente:

SELECT */ <columna1, columna2,....>FROM <nombre-tabla>[WHERE <condición>?[GROUP BY <columna1, columna2....>?[HAVING <condición-selección-grupos>?[ORDER BY <columna1 [DESC?, columna2 [DESC?...> ?

SENTENCIA UPDATE

Actualiza valores de una o más columnas para un subconjunto de filas de una tabla.

UPDATE <nombre-tabla>SET <columna1> = valor1 [, <columna2> = valor2...?[WHERE <condición>?

Actualiza los campos correspondientes junto con los valores que se le asignen, en el subconjunto de filas que cumplan la condición de selección. Si no se pone condición de selección, la actualización se da en todas las filas de la tabla.Si se desea actualizar a nulos, se asignará el valor NULL.

SENTENCIA INSERT

Añade filas a una tabla. Posee varios formatos posibles:

• INSERT INTO <nombre-tabla> VALUES (<serie de valores>)

Page 4: Consultas en access

El orden en el que se asignen los valores en la cláusula VALUES tiene que coincidir con el orden en que se definieron las columnas en la creación del objeto tabla, dado que los valores se asignan por posicionamiento relativo.

• INSERT INTO <nombre-tabla> (<columna1>, <columna2>.....) VALUES (<valor1>, <valor2>....)

En este caso los valores se asignarán a cada una de las columnas mencionadas por posicionamiento relativo, siendo necesario que por lo menos se asignen valores a todas aquellas columnas que no admiten valores nulos en la tabla.

SENTENCIA INSERT CON MÚLTIPLES FILAS

Para insertar un subconjunto de filas de una tabla en otra se escribe una sentencia INSERT con una SUBSELECT interna. Los formatos posibles son:

• INSERT INTO <nombre-tabla> (<columna1>, <columna2>.....) SELECT (<sentencia Select>)

Asigna a las columnas los valores recuperados en la sentencia Select. Inserta en la tabla todas las filas que se recuperen en la Select.

• INSERT INTO <nombre-tabla> SELECT * FROM <nombre-tabla-fuente>En este caso las estructuras de las tablas tienen que ser iguales.

DDLLenguaje de Definición de Datos, Operaciones

básicas.

Las principales funcionalidades de SQL como lenguaje de definición (DDL) son la creación, modificación y borrado de las tablas que componen la base de datos, así como de los índices, vistas, sinónimos, permisos, etc.

SENTENCIA DESCRIPCIÓN

DDL Manipulación de datosCRAETEDROPALTER

Añade una nueva tabla a la base de datos.

Suprime una tabla de la base de datos.

Modifica la estructura de una tabla existente.

La selección sobre una tabla consiste en elegir un subconjunto de filas que cumplan (o no) algunas condiciones determinadas. La sintaxis de una sentencia de este tipo es la siguiente:

SELECT */ <columna1, columna2,....>FROM <nombre-tabla>[WHERE <condición>?[GROUP BY <columna1, columna2....>?[HAVING <condición-selección-grupos>?[ORDER BY <columna1 [DESC?, columna2 [DESC?...> ?

Page 5: Consultas en access

Ejercicio

Consultas en access

Consulta1 Seleccionar nombre de país

SELECT nombreFROM país

Consulta2 Seleccionar nombre de lo departamento

SELECT nombreFROM depto

Page 6: Consultas en access

Consulta3 Seleccionar nombre de lo ciudad

SELECT nombreFROM ciudad

Consulta4 nombre del país y del departamento

SELECT pais.nombre,depto.nombreFROM pais,deptoWHERE pais.idpais=depto.idpais

Consulta5 seleccione los países con sus departamentos

SELECT pais.nombre,depto.nombreFROM pais,deptoWHERE pais.idpais=depto.idpais;

Consulta6 seleccione nombre pais y correspondiente ciudad

Page 7: Consultas en access

SELECT pais.nombre,ciudad.nombreFROM pais,ciudadWHERE pais.idciudad=ciudad.idciudad;

Consulta7 selec nombre del departamento y depto

SELECT depto.nombre,ciudad.nombreFROM depto,ciudadWHERE depto.idciudad=ciudad.idciudad;

Consulta8 selec nombre de la ciudad con su depto

SELECT ciudad.nombreFROM ciudad,paisWHERE ciudad.idciudad=pais.idciudad;

Consulta9 selec nombre de las ciudades que son capital del departamento

SELECT ciudad.nombreFROM ciudad,depto

Page 8: Consultas en access

WHERE ciudad.idciudad=depto.idciudad;

Consulta10 selec cione nombre de la ciudad que son capital del país y aseves suDepartamento

SELECT ciudad.nombreFROM ciudad,depto,paisWHERE ciudad.idciudad=depto.idciudad AND pais.idciudad=ciudad.idciudad;

Funciones de agregado

las funciones de agregado permiten hacer operaciones sobre los campos y devolver el resultado de esta

select max: devuelve el valor mas alto en un campo especificado

Page 9: Consultas en access

Ejemplo:

SELECT nombre,max (valorunitario) as maximovalorFROM productogroup by nombre,valorunitariohaving max(valorunitario)>3000;

selec min : devuelve el valor mas bajo en un campo especificadoEjemplo:SELECT nombre,min (valorunitario) as minimovalorFROM productogroup by nombre,valorunitariohaving min(valorunitario)<3000;

select avg: utilizado para calcular el promedio de los valores de un campo determinado

Ejemplo:

SELECT avg(cantidad) as promedioFROM producto;

select sum: utilizado para devolver la suma de todos los valores de un campo determinadoEjemplo:

SELECT sum(cantidad)* sum(valorunitario) as valortotaFROM producto;

select count: utilizado para devolver el número de registro de la selección Ejemplo:

SELECT count(nombre) as cuantosproductosFROM producto;

Page 10: Consultas en access

StDev, StDevP: esta funcion nos permite allar la desviacion estandar

Ejemplo:

SELECT StDev(valorunitario) as desviación FROM producto;

Like ”caracteres*”: es otra palabra clave que se utiliza en la cláusula WHERE. Básicamente, LIKE le permite hacer una búsqueda basada en un patrón en vez de especificar exactamente lo que se desea

SELECT paciente.nombreFROM paciente WHERE paciente.nombre like"J*";

n

Funciones de cadena en SQL

Las funciones de cadena trabajan con campos char y varchar por lo que los literales que escribamos se deben encerrar entre comillas simples.

Estas funciones que vamos a explicar a continuación pueden manipular cadenas de letras u otros caracteres por lo que las vamos a dividir en dos grupos:

Funciones que devuelven caracteres

Este tipo de funciones devuelven un carácter o varios caracteres.

Page 11: Consultas en access

Función Propósito

CHR(n)Nos devuelve el carácter cuyo valor en binario es n

CONCAT(cad1, cad2) Nos devuelve cad1 concatenada con cad2

UPPER(cad) Convierte cad a mayúsculas

LOWER(cad) Convierte cad a minúsculas

LPAD(cad1,n[,cad2])Con esta función añadimos caracteres a cad1 por la izquierda hasta una longitud máxima dada por n

INITCAP(cad) Convierte la primera letra de cad a mayúscula

LTRIM(cad [,set])Elimina un conjunto de caracteres a la izquierda de cad, siendo set el conjunto de caracteres a eliminar

RPAD(cad1, n[,cad2])Con esta función añadimos caracteres de la misma forma que con la función LPAD pero esta vez los añadimos a la derecha

RTRIM(cad[,set]) Hace lo mismo que LTRIM pero por la derecha

REPLACE(cad,cadena_buscada [,cadena_sustitucion] )

Sustituye un conjunto de caracteres de 0 o más caracteres, devuelve cad con cada ocurrencia de cadena_buscada sustituida por cadena_sustitucion

SUBSTR(cad, m[,n])Devuelve la subcadena de cad que abarca desde m hasta el numero de caracteres dados por n.

TRANSLATE(cad1,cad2,cad3)

Convierte caracteres de una cadena en caracteres diferentes. Devuelve cad1 con los caracteres encontrados en cad2 y sustituidos por los caracteres de cad3

Ponemos algunos ejemplos de utilización de estas funciones:

Sentencia sql que nos devuelve las letras cuyo valor asccii es el 45 y el 23

select CHR(45), CHR(23) FROM TABLA;

Sentencia sql que obtiene el nombre de los alumnos sacando por pantalla la siguiente frase: el nombre del alumno es (nombre que esta almacenado en la tabla)

select CONCAT ('el nombre de alumno es', nombre) from alumno;

Sentencia sql que me devuelve los nombres de los alumnos en mayúsculas

select UPPER(nombre) from alumno;

Sentencia sql que obtiene de un campo nombre, las 3 primeras letras

select SUBSTR(nombre,0,3) from alumno;

Y asi con el resto de funciones…

Page 12: Consultas en access

Funciones que devuelven valores numéricos

Estas funciones nos devuelven números a modo de información.

Función Propósito

ASCII(cad) Devuelve el valor ASCII de la primera letra de cad

INSTR(cad1, cad2[,comienzo[,m]])

Función que busca un conjunto de caracteres dentro de una cadena. Nos devuelve la posición de cad2 en cad1 empezando a buscar en comienzo

LENGTH(cad) Devuelve en número de caracteres de cad

Como con las funciones anteriores dejamos unos ejemplos para que veáis su funcionamiento.

Sentencia sql que nos devuelve el valor ASCII de la letra ('s')

select ASCII('s') from tabla;

Sentencia que nos devuelve la posición de la ocurrencia 'pe' dentro de la cadena 'Los perros están bien' a partir de la posición 2

select INSTR('Los perros están bien','pe',2) from tabla;

Sentencia sql que nos devuelve el numero de caracteres de los nombres de los alumnos

select LENGTH(nombre) from alumnos;

Funciones matemáticas en SQL

UNA FUNCION MATEMATICA REALIZA EN EXPRECIONES NUMERICAS Y DEVUELBE EL RESULTADO DE LA OPERACIÓN. LAS FUNCIONES MATEMATICAS OPERAN SOBRE DATOS NOMERICOS SOMINISTRADOS POREL SISTEMA

Siguiente son todas las funciones matemáticas disponibles en la base de datos McKoi. Tenga en cuenta que algunas de estas funciones puede perder precisión, ya que el número podría ser emitidos a un "doble". Usted puede asumir todas las funciones matemáticas que tienen en el peor de la precisión de un "doble".

Funciones de fecha en SQL

DATEOB (date_string)

Page 13: Consultas en access

Analiza una cadena a un objeto Fecha que se puede utilizar en las consultas contra TIMESTAMP / FECHA / TEMNE columnas. DATEOB sin argumentos devuelve la hora actual de la máquina ejecutando la base de datos.

Desde la versión 0.92 de esta función ha quedado obsoleto. Usar la fecha normal, y TIMESTAMP TEMNE literales especificado en lugar de SQL-92.

Ejemplos: SELECCIONE DATEOB () ==> Mar Ago 09 11:49:31 GMT 2000 SELECCIONE DATEOB (1 de agosto de 2000 ») ==> Mar Ago 01 00:00:00 GMT 2000 Seleccionar el número de pedidos DÓNDE date_made> = DATEOB (1 de enero de 2000 »)

Las funciones de Fecha/Hora provee un poderoso conjunto de herramientas para manipular varios tipos Date/Time.

http://www.miliuco.net/docs/oracle_select.htmhttp://www.diclib.com/cgibin/d1.cgi?l=es&base=es_wiki_10&page=showid&id=50789http://www.pergaminovirtual.com.ar/definicion/SQL.htmlhttp://www.alegsa.com.ar/Dic/sql.phphttp://www.infor.uva.es/~jvegas/cursos/bd/sqlplus/sqlplus.html#terminologiahttp://www.infor.uva.es/~jvegas/cursos/bd/sqlplus/sqlplus.html#terminologiahttp://www.cs.us.es/cursos/bd-2001/temas/sql_I.html

http://diccionario.babylon.com/SQLhttp://www.alegsa.com.ar/Dic/sql.phphttp://es.tldp.org/Postgresql-es/web/navegable/user/x2484.htmlhttp://translate.google.com.co/translate?hl=es&langpair=en|es&u=http://mckoi.com/database/InternalFunctions.html&prev=/translate_s%3Fhl%3Des%26q%3DFunciones%2Bmatem%25C3%25A1ticas%2Ben%2BSQL%26tq%3DMathematical%2BFunctions%2Bin%2BSQL%26sl%3Des%26tl%3Den