Vous êtes sur la page 1sur 37

1.- SQL.

Introduccin
2.- Comandos DDL, DML, DCL

1.- SQL. Introduccin


SQL sigla de Structured Query Language, que es un lenguaje
estndar de comunicacin con bases de datos. Es un lenguaje
normalizado que permite trabajar con cualquier tipo de
lenguaje (ASP o PHP) en combinacin con cualquier tipo de
base de datos (MS Access, SQL Server, Oracle, MySQL...).

Pero como sucede con cualquier sistema de normalizacin


hay excepciones para casi todo; de hecho, cada motor de
bases de datos tiene sus peculiaridades y lo hace diferente de
otro motor, por lo tanto, el lenguaje SQL normalizado (ANSI)
no servir para resolver todos los problemas, aunque si se
puede asegurar que cualquier sentencia escrita en ANSI ser
interpretable por cualquier motor de datos.

SQL (Structured Query Language).


DDL (Data Definition Language): son los comandos que permiten definir la
estructura de la base de datos relacional, como por ejemplo: Crear tablas,
indexes, Alterar Tablas, Crear Vistas.
DML (Data Manipulation Language): son los comandos que permiten insertar
nuevos registros, modificar registros en la base de datos y eliminar registros,
adems, de la recuperacin de la informacin. Los comandos son: Insert,
Update y Select.
DCL (Data Control Language): son los comandos de control y seguridad del
sistema.

SQL . Comandos DDL.


CREATE : Utilizado para crear nuevas tablas, campos e ndices
DROP;
DROP Empleado para eliminar tablas e ndices
ALTER:
ALTER Utilizado para modificar las tablas agregando campos o cambiando la
definicin de los campos.

SQL . Comandos DML.


SELECT Utilizado para consultar registros de la base de datos que satisfagan un
criterio determinado (Query)
INSERT Utilizado para cargar lotes de datos en la base de datos en una nica
operacin.
UPDATE Utilizado para modificar los valores de los campos y registros
especificados
DELETE Utilizado para eliminar registros de una tabla de una base de datos

SQL . Clasulas
Las clasulas son condiciones de modificacin utilizadas para definir los datos que
desea seleccionar o manipular.
FROM

Utilizada para especificar la tabla de la cual se van a seleccionar los


registros

WHERE Utilizada para especificar las condiciones que deben reunir los registros
que se van a seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos especficos
HAVING Utilizada para expresar la condicin que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un
orden especfico

SQL . Operadores Lgicos


AND

Es el "y" lgico. Evala dos condiciones y devuelve un valor de verdad slo


si ambas son ciertas.

OR

Es el "o" lgico. Evala dos condiciones y devuelve un valor de verdad si


alguna de las dos es cierta.

NOT

Negacin lgica. Devuelve el valor contrario de la expresin. Operadores


de Comparacin

SQL . Consultas (Query)


Las Query se utilizan para indicar al motor de datos que devuelva informacin de
las bases de datos, esta informacin es devuelta en forma de conjunto de registros
que se pueden almacenar en un. objeto recordset.
SELECT [ ALL | DISTINCT ] selectselect-list
...[ INTO { host-variable-list | variable-list } ]
... FROM tabletable-list
...[ WHERE search-condition ]
...[ GROUP BY column-name, ... ]
...[ HAVING search-condition ]
...[ ORDER BY { expression | integer } [ ASC | DESC ], ... ]
;

SQL . Operadores de Comparacin


< Menor que

> Mayor que

<= Menor Igual que

<> Distinto de

>= Mayor Igual que

= Igual que

BETWEEN Utilizado para especificar un intervalo de valores.


LIKE

Utilizado en la comparacin de un modelo

IN

Utilizado para especificar registros de una base de datos

SQL . Funciones
Las funciones se usan dentro de una clusula SELECT en grupos de registros para
devolver un nico valor que se aplica a un grupo de registros.
AVG

Utilizada para calcular el promedio de los valores de un campo


determinado

COUNT Utilizada para devolver el nmero de registros de la seleccin


SUM

Utilizada para devolver la suma de todos los valores de un campo


determinado

MAX

Utilizada para devolver el valor ms alto de un campo especificado

MIN

Utilizada para devolver el valor ms bajo de un campo especificado

SQL . Consultas (Query)


SELECT *
FROM Region;

SELECT Nombre_Region
FROM Region;
La misma consulta, pero con orden en la salida
SELECT Nombre_Region
FROM Region
ORDER BY Nombre_Region;

SQL . Consultas (Query)


SELECT *
FROM Region;
Otra opcin es ALL para recuperar
todas las filas
SELECT ALL
FROM Region;
TOP devuelve un cierto nmero de filas
SELECT TOP 2 salario, nombre & " " & apellido
FROM empleado
ORDER BY Salario DESC;

SQL . Consultas (Query)


DISTINCT omite las filas que contienen datos duplicados en los campos
seleccionados
SELECT apellido
FROM empleado;

SELECT DISTINCT apellido


FROM empleado;

SQL . Consultas (Query)


SELECT nombre, apellido, email
FROM Empleado;

Alias
SELECT nombre AS NOMBRE_EMPLEADO,
apellido AS APELLIDO_EMPLEADO, email
FROM empleado;

SQL . Consultas (Query)


SELECT nombre , apellido , salario, "Valor Calculo",
salario * 0.10 As "10%"
FROM empleado;

SELECT nombre , apellido , "10% del Sueldo",


salario * 0.10
FROM empleado
WHERE salario*.10 > 500;

SQL . Consultas (Query)


SELECT *
FROM Departamento
WHERE ID_Lugar = 1700 and ID_Manager <>
NULL;

SELECT Count (*)


FROM Departamento
WHERE ID_Lugar = 1700 and ID_Manager <>
NULL;

SQL. Consultas. Otras funciones.


COUNT: Nmero de valores en la columna
SELECT COUNT(*) FROM Empleado;

SUM: Suma de los valores de la columna


SELECT SUM(Salario) FROM Empleado;

AVG: Promedio de los valores de la columna


SELECT avg(Salario)
avg(Salario) FROM Empleado;

MAX: Valor ms grande de la columna


MIN: Valor ms pequeo de la columna
SELECT min(Salario), max(salario)
max(salario) From Empleado;

SQL. Consultas.
Formato fecha: #mm/dd/aaaa#
SELECT Empleado.Apellido, Empleado.email,
Empleado.Fecha_Contratacion
FROM Empleado
WHERE (((Empleado.Fecha_Contratacion)=#9/30/2010#));

SQL . Consultas (Query)


Group By Having. Se usa para combinar los registros con valores idnticos, en un nico
registro. Su sintaxis es:
SELECT columna(s), funcion_grupo(columna)
FROM tabla(s) WHERE criterio
GROUP BY columna(s)
HAVING criterio para group;
Se puede dividir filas en una tabla en grupos menores usando esta clausula.
Todas las columnas listadas en el SELECT que no estn en funciones de grupo deben estar
en la clausula GROUP BY.
SELECT ID_Departamento, AVG(salario)
FROM empleado
GROUP BY ID_Departamento;

SQL . Consultas (Query)


Group By Having.
No se usa la clausula WHERE para restringir grupos, eso se realiza con la clausula
HAVING
SELECT ID_Departamento, AVG(salario)
FROM empleado
GROUP BY ID_Departamento
HAVING AVG(salario) > 5000;

SQL . Consultas (Query)


Consultas de dos o ms tablas relacionadas
SELECT *
FROM Paises,Region
WHERE Paises.ID_Region = Region.ID_Region;

SELECT *
FROM Paises INNER JOIN Region
ON Paises.ID_Region = Region.ID_Region;

SQL . Consultas (Query)


Consultas de dos o ms tablas relacionadas
SELECT *
FROM Paises , Region
WHERE Paises.ID_Region = Region.ID_Region;

SQL . Consultas (Query)


Consultas de dos o ms tablas relacionadas,
cuando es la misma tabla.
SELECT empleado.ID_Empleado,
empleado.nombre,
empleado.email,
empleado.ID_Manager
FROM empleado, empleado AS empleado1
WHERE empleado.ID_Manager=100
AND empleado1.ID_manager=empleado.ID_Empleado;

SQL . Consultas (Query)

SELECT Departamento.Nombre_Departamento, Empleado.Apellido,


Empleado.Fecha_Contratacion, Rol.Titulo_Rol
FROM empleado, departamento, rol
WHERE Empleado.ID_Rol = Rol.ID_Rol and
Empleado.ID_Departamento = Departamento.ID_Departamento;

SQL . Consultas (Query)


valores.
BETWEEN Utilizado para especificar un intervalo de valores
SELECT Apellido, email,
FROM Empleado
WHERE (((Fecha_Contratacion)
BETWEEN #1/1/1998# AND #9/30/2010#));

Empleado.Fecha_Contratacion

LIKE Utilizado para comparar una expresin de cadna con un modelo en una expresin SQL.
SELECT Apellido, email
FROM Empleado
WHERE apellido LIKE "*re*";

IN Utilizado para especificar registros de una base de datos

SQL . Consultas (Query)


IN Utilizado para especificar registros de una base de datos

SELECT Apellido,
Apellido, email, ID_manager SELECT Apellido,
Apellido, email, ID_manager
FROM empleado
FROM empleado
WHERE ID_Manager
WHERE ID_manager
IN (101,103);
NOT IN (101,103);

SQL . SubConsultas
Se puede utilizar una subconsulta en lugar de una expresin en la lista de campos de una
instruccin SELECT o en una clusula WHERE o HAVING. En una subconsulta, se utiliza una
instruccin SELECT para proporcionar un conjunto de uno o ms valores especificados para
evaluar en la expresin de la clusula WHERE o HAVING.
Por ejemplo , lo siguiente devuelve todos los productos cuyo precio unitario es
mayor que el de cualquier producto vendido con un descuento igual o mayor a 25%
SELECT * FROM Productos
WHERE PrecioUnidad > ANY
(SELECT PrecioUnidad FROM DetallePedido
WHERE Descuento >= 0 .25);

SQL . SubConsultas
Utilizado ANY
Valor 1 Operador Valor 2 Resultado
3
> ANY (2,5,7)
V
3
= ANY (2,5,7)
F
3
= ANY (2,3,5,7)
V
El operacion =ANY es equivalente al operador IN, ambos devuelven el mismo resultado.

SQL . SubConsultas
Utilizado IN
SELECT apellido
FROM empleado
WHERE ID_Manager IN
(SELECT ID_empleado
FROM empleado
WHERE apellido = "Torres");

SQL . SubConsultas
Utilizado Operadores
SELECT apellido
FROM empleado
WHERE salario >
(SELECT AVG (Salario)
FROM empleado);

Utilizado EXISTS (NOT EXISTS). Se usa en comparaciones de V/F para determinar si la


subconsulta devuelve algn registro.
SELECT salario, nombre & " " & apellido
FROM empleado
WHERE EXISTS
(SELECT *
FROM empleado
WHERE fecha_contratacion > #9/30/2009# );

SQL .
Los siguientes comandos son tambin conocidos como de accin y no devuelven registros, son
encargadas de realizar acciones de Borrar, Aadir, Modificar.
DELETE FROM Tabla WHERE criterio;
criterio;
Ejemplo:
DELETE FROM Localidad where Ciudad= Santiago;
INSERT INTO Table (campo1, campo2,.. campoN)
campoN)
VALUES(valor1, valor2, valorN);
valorN);
Ejemplo:
INSERT INTO Region (ID_region,
ID_region, Nombre_Region)
Nombre_Region)
VALUES(5, Valparaiso
Valparaiso);
Valparaiso);
UPDATE Table SET campo1=valor1, campo2=valor2,
WHERE Criterio;
Ejemplo:
UPDATE Empleado SET salario=salario*1,15
WHERE salario < 20000;

SQL . Comandos DDL


Para crear una tabla, puede utilizar un comando CREATE TABLE. Un comando CREATE TABLE
tiene la siguiente sintaxis:
CREATE TABLE table_name (field1 type [(size)] [NOT NULL] [index1] [, field2 type [(size)] [NOT
NULL] [index2] [, ...][, CONSTRAINT constraint1 [, ...]])

Ejemplo:
CREATE TABLE Autos (Marca TEXT(30), Modelo TEXT(30), AnhoTEXT(4), Precio CURRENCY);

SQL . Comandos DDL


Para modificar una tabla, se utiliza el comando ALTER TABLE. Con ALTER TABLE puede agregar,
modificar o quitar columnas o restricciones. Un comando ALTER TABLE tiene la siguiente
sintaxis:
ALTER TABLE table_name Predicado;
Donde Predicado puede ser:
ADD COLUMN field type[(size)] [NOT NULL] [CONSTRAINT constraint]
ALTER COLUMN field type[(size)]
DROP COLUMN field
DROP CONSTRAINT constraint

SQL . Ejemplos

SQL . Ejemplos:
1. Muestre toda la informacin contenida en la tabla Historico.
2. Cuente todas las tuplas en que el Codigo Postal queso en
blanco en la tabla Localidad.
3. Liste todos los empleados que trabajan en el departamento de
Ventas.
4. Muestre el nombre y apellido de todos los empleados y el
nombre del departamento al que pertenecen.

SQL . Ejemplos:
1. SELECT * FROM Historico;
Historico;
2. SELECT Count(CODIGO_POSTAL)
Count(CODIGO_POSTAL) FROM Localidad WHERE Codigo_postal = ;
3. SELECT Nombre, Apellido FROM empleado
WHERE ID_Departamento = (SELECT ID_Departamento FROM departamento WHERE
nombre_departamento = Ventas);
Ventas);
4. SELECT e.nombre,
e.nombre, e.apellido,
e.apellido, d.nombre_departamento
FROM empleado as E, departamento as D
WHERE e.ID_Departamento=
e.ID_Departamento=d.ID_Departamento;
d.ID_Departamento;