LENGUAJE SQL
INTRODUCCION
Es un lenguaje normalizado , utilizado por el motor de base de datos de Microsoft Jet. Se utliliza para crear objetos QueryDef.
COMPONENTES DE SQL
Esta compuesto por comandos, clausulas, operadores y funciones de agregado.
COMANDOS
EXISTEN DOS TIPOS DE COMANDOS SQL:
Los DLL que permiten crear y definir nuevas bases d datos, campos e indices.
Los DML que permiten generar consultas para ordenar, filtar y extraer datos de la base de datos.
FUNCIONES DE AGREGADO
Se utilizan dentro de una clausula SELECT en grupos de registros
AVG
Calcula el promedio de los valores de un campo
COUNT
Devuelve el numero de registros de la seleccion
SUM
Devuelve la suma de todos los valores de un campo
MAX
Devuelve el valor mas alto de un campo
MIN
Devuelve el valor mas bajo d un campo
CRITERIOS DE SELECCION
OPERADORES LOGICOS
Los operadores logicos soportados por SQL son: AND, OR, XOR, Eqv,Imp, Is y Not
SELECT * FROM Empleados WHERE Edad > 25 AND edad < 50
INTERVALOS LOGICOS
Para indicar que deseamos recuperar los registros segun intervalo de valores de un campo emplearemos el operador Between
campo[Not] Between valor And valor(La condicion Not es opcional)
OPERADOR LIKE
Se utiliza para comparar una expresion de cadena con un modelo en una expresion SQL
Like 'P[A-F]####
OPERADOR IN
Devuelve aquellos registros cuyo campo indicado coincide con alguno de los en una lista
SELECT * FROM Pedidos WHERE Provincia In ('Madrid','Barcelona');
CLAUSULA WHERE
Es utilizada para determinar que registros de las tablas enumeradas en la clausula FROM apareceran en los resultados SELECT
SELECT Apellido, Salaroio FROM Empleados WHERE Salario > 21000;
CONSULTAS DE ACCION
Son aquellas que no devuelven ningun registro
DELETE
Crea una consulta que eliminan registros de una o mas tablas
DELETE Tabla * FROM Tabla WHERE criterio
INSERT INTO
Agrega un registro a una tabla
Para insertar un unico registro
INSERT INTO Tabla (campo1, campo2.......)
VALUES (valor1,valor2....)
Para insertar Registros de otra Tabla
INSERT INTO Tabla SELECT TablaOrigen * FROM TablaOrigen
UPDATE
Crea una consulta de actualizacion que cambia los valores de los campos de una tabla
UPDATE Pedido SET Pedido=Pedido*1.1,Transporte*1.03
WHERE PaisEnvio = 'ES'
SUB CONSULTAS
Puede ser utilizada de tres formas de sintaxis para crear una consulta
comparación [ANY | ALL | SOME] (instrucción sql)
expresión [NOT] IN (instrucción sql)
[NOT] EXISTS (instrucción sql)
COMPARACION
Compara la expresión con el resultado
de la subconsulta.
EXPRESION
Busca el conjunto resultante de la subconsulta.
INTRODUCCION SQL
Se utiliza en una subconsulta en lugar de una expresión en la lista de campos de una
instrucción SELECT o en una cláusula WHERE o HAVING.
CONSULTAS DE UNION INTERNAS
Las relaciones entre tablas se realizan mediante la clausula INNER que combinan registros de dos tablas
SELECT campos FROM tb1 INNER JOIN tb2 ON tb1.campo1 comp tb2.campo2
tb1, tb2
Son nombres de tablas
campo1, campo2
Son nombres de tablas que se comvinan
comp
Es cualquier operador de comparacion
ESTRUCTURAS DE TABLAS
Creacion de tablas tablas nuevas
CREATE TABLE tabla (campo1 tipo (tamaño) índice1 ,
campo2 tipo (tamaño) índice2 , ...,
índice multicampo , ... )
La clausula CONSTRAINT
CONSTRAINT nombre {PRIMARY KEY (primario1[, primario2 [, ...]]) |
UNIQUE (único1[, único2 [, ...]]) |
FOREIGN KEY (ref1[, ref2 [
Creacion de Indices
CREATE [ UNIQUE ] INDEX índice
ON tabla (campo [ASC|DESC][, campo [ASC|DESC], ...])
[WITH { PRIMARY | DISALLOW NULL | IGNORE NULL }]
Modificar el diseño de una tabla
ALTER TABLE tabla {ADD {COLUMN tipo de campo[(tamaño)] [CONSTRAINT
índice]
CONSTRAINT índice multicampo} |
DROP {COLUMN campo I CONSTRAINT nombre del índice} }
CONSULTAS DE PARAMETROS
Son aquellas cuyas condiciones de busqueda se definen en parametros
PARAMETERS nombre1 tipo1, nombre2 tipo2, ... , nombreN tipoN Consulta
BASESE DE DATOS EXTERNAS
Para el acceso a bases de datos externas se utiliza la cláusula IN. Se puede
acceder a base de datos dBase, Paradox o Btrieve.
FROM Tabla IN '[dBASE IV; DATABASE=C:\DBASE\DATOS\VENTAS;]';
FROM Tabla IN 'C:\DBASE\DATOS\VENTAS' 'dBASE IV;'
OMITIR LOS PERMISOS DE EJECUCION
Se puede utilizar la cláusula WITH OWNERACCESS OPTION
SELECT Apellido, Nombre, Salario FROM Empleados ORDER BY Apellido
WITH OWNERACCESS OPTION;
LA CLAUSULA PROCEDURE
se utiliza para crear una consulta a la misma
vez que se ejecuta
PROCEDURE NombreConsulta Parámetro1 tipo1, .... , ParámetroN tipon
ConsultaSQL
CLAUSULAS
Las clausulas son condiciones de modificacion utilizadas para definir los datos que deseas seleccionar o manipular.
FROM
Especifica la tabla de la cual se seleccionan registros
WHERE
Especifica las condiciones que deben reunir los registros
GROUP BY
Separa los registros seleccionados
HAVING
Expresa la condicion de cada grupo
ORDER BY
Ordena los registros seleccionados
OPERADORES LOGICOS
AND
Es el "Y" logico
OR
Es el "O" logico
NOT
Negacion logica
OPERADORES DE COMPARACION
<
Menor que
>
Mayor que
<>
Distinto que
<=
Menor igual que
>=
Mayor igual que
=
Igual que
BETWEEN
Especifica un intervalo de valores
LIKE
Comparacion de un modelo
In
Especifica registros de una base de datos
CONSULTAS DE SELECCION
Se utiliza para indicar al motor de datos que devuelva informacion de las bases de datos
CONSULTAS BASICAS
La sintaxis basica de una consulta de seleccion es la siguiente
SELECT Campos FROM Tabla
ORDENAR LOS REGISTROS
Espeifica el orden en que se desean recuperar los registros de las tablas mediante la clausula ORDER BY
SELECT CodigoPostal,Nombre,Telefono FROM Clientes ORDER BY Nombre;
CONSULTAS CON PREDICADO
Se incluye entre la clausula y el primer nombre del campo a recuperar
ALL
Devuelve todos los campos de la tabla
TOP
Devuelve un determinado numero de registro
DISTINCT
Omiten los registros cuyos campos no coincidan
DISTINCTROW
Omite los registros duplicados
ALIAS
En determinadas circunstancias es necesario asignar un nombre a alguna columna deteerminada de un conjunto devuelto.
SELECT DISTINCTROW Apellido AS Empleado FROM Empleados
RECUPERAR INFORMACION
DE UNA BASE EXTERNA
En ocaciones es necesario la recuperacion de informacion que se encuentra en una tabla que no se encuentra en la base de datos
SELECT DISTINCTROW Apellido AS Empleado FROM Empleados IN 'c:\databases\gestion.mdb';
AGRUPACION DE REGISTROS
GROUP BY
Combina los registros con valores identicos en la lista de campos especificos
SELECT campos FROM tabla WHERE criterio GROUP BY campos del grupo
AVG
Calcula la media aritmetica de un conjunto de valores contenidos en un campo
SELECT Avg(Gastos) AS Promedio FROM Pedidos WHERE Gastos > 100
COUNT
Calcula el numero de registros devueltos por una consulta
SELECT Count(*) AS Total FROM Pedidos
MAX, MIN
Devuelve el minimo y el maximo de un conjunto de valores contenidosen un campo
SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais = 'España'
SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais = 'España'
StDev, StDevP
Devuelve estimaciones de la desviacion estandar para la poblacion
SELECT StDev(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'España'
SELECT StDevP(Gastos) AS Desviacion FROM Pedidos WHERE Pais = 'España'
SUM
Devuelve la suma sdel conjunto de valores contenidos en un campo especifico de una consulta
SELECT Sum(Precio*Cantidad) AS Total FROM DetallePedidos
Var,VarP
Devuelve una estimacion d la varianza de una poblacion
SELECT Var(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España'
SELECT VarP(Gastos) AS Varianza FROM Pedidos WHERE Pais = 'España'
TIPOS DE DATOS
Los tipos de datos en SQL se clasifican el 13 tipos de datos
Tipos de datos primarios:
BINARY 1 byte
BIT 1 byte Valores Si/No ó True/False
BYTE 1 byte Un valor entero entre 0 y 255.
COUNTER 4 bytes
CURRENCY 8 bytes
DATETIME 8 bytes
SINGLE 4 bytes
DOUBLE 8 bytes
SHORT 2 bytes
LONG 4 bytes
LONGTEXT 1 byte
LONGBINARY Según se necesite
TEXT 1 byte
TABLA DE SININIMOS
BINARY VARBINARY
BIT BOOLEAN
LOGICAL
LOGICAL1
YESNO
BYTE INTEGER1
COUNTER AUTOINCREMENT
CURRENCY MONEY
DATETIME DATE TIME
TIMESTAMP
SINGLE FLOAT4
IEEESINGLE
REAL
DOUBLE FLOAT
FLOAT8
IEEEDOUBLE
NUMBER
NUMERIC
SHORT INTEGER2
SMALLINT
LONG INT
INTEGER
INTEGER4
LONGBINARY GENERAL
OLEOBJECT
LONGTEXT LONGCHAR
MEMO
NOTE
TEXT ALPHANUMERIC
CHAR
CHARACTER
STRING
VARCHAR
VARIANT (No Admitido) VALUE
CONSULTAS DE REFERENCIA CRUZADA
Es aquella que nos permite visualizar los datosb en filas y columnas
TRANSFORM función agregada instrucción select PIVOT campo pivot
[IN (valor1[, valor2[, ...]])]
FUNCION AGREGADA
Opera los datos seleccionados
INSTRUCCION SELECT
Es una instruccion select
CAMPO PIVOT
Se utiliza para crear las cabezeras de una columna
VALOR1, VALOR2
Son valor fijos para crear la cabezera de una columna
CONSULTAS DE UNION EXTERNAS
Se utiliza la oparcio UNION para crear una consultade union
[TABLE] consulta1 UNION [ALL] [TABLE]
consulta2 [UNION [ALL] [TABLE] consultan [ ... ]]
consulta1, consulta2, consultan
Son instrucciones SELECT, pueden convinar los resuiltados de dos o mas consultas
TABLE [Nuevas Cuentas] UNION ALL SELECT * FROM Clientes
WHERE [Cantidad pedidos] > 1000;