You are on page 1of 80

S Q L

STRUCTURE
QUERY
LANGUAGE
Ing. Wiler Arturo Ponce Benites
Facultad de Ingenieria Industrial - UNMSM
2018
S Q L

Contenido:
➢ Consultas de Selección
➢ Criterios de Selección
➢ Agrupamiento de registros
➢ Consultas de eliminación
SQL: Structure Query Language
➢ El lenguaje de consultas estructurado SQL, es un
lenguaje de base de datos normalizado, utilizado por
el motor de base de datos de Microsoft Jet.

➢ SQL se utiliza para crear objetos: QueryDef, como el


argumento de origen del método: OpenRecordSet y
como la propiedad: RecordSource del control de
datos.

➢ También se puede utilizar con el método Execute


para crear y manipular directamente la base de datos
Jet y crear consultas SQL de paso a través para
manipular base de datos remotas cliente–servidor.
Componentes del SQL
El lenguaje SQL está compuesto por:
➢ Comandos,
➢ Cláusulas,
➢ Operadores y
➢ Funciones de agregado.

Estos elementos se combinan en las instrucciones para:


➢ Crear,
➢ Actualizar y
➢ Manipular las TABLAS de la base de datos
Comandos SQL

Existen dos tipos de comandos SQL:

❑ DDL
DATA DEFINITION LANGUAGE

❑ DML
DATA MANIPULATION LANGUAGE
Comandos DDL
Los DDL que permiten crear y definir
nuevas bases de datos, campos e
índices, procedimientos almacenados y
funciones.

Comando Descripción
Utilizado para crear nuevas Base de datos, tablas, campos e índice,
CREATE
procedimientos almacenados
Empleado para eliminar: base de datos tablas, índices
DROP
procedimientos almacenados.
Utilizado para modificar: base de datos, tablas: agregando o
ALTER cambiando la definición de los campos , índices, procedimientos
almacenados.
7

Como crear una Base de Datos


USE master
GO

CREATE DATABASE Autoseguro


ON PRIMARY (
NAME = Autoseguro,
FILENAME = ‘H:\BDExParcial20172\ Autoseguro.mdf',
SIZE = 3MB,
MAXSIZE = 5MB,
FILEGROWTH = 2MB)
LOG ON (
NAME = Autoseguro _log,
FILENAME = ‘H:\BDExParcial20172\ Autoseguro _log.ldf',
SIZE = 1MB,
MAXSIZE = unlimited,
FILEGROWTH = 10%)
GO
8

Como crear una Base de Datos


USE master
GO

CREATE DATABASE escuela


ON PRIMARY (
NAME = escuela,
FILENAME = ‘F:\BaseDatos\LabMartes20181\ escuela.mdf',
SIZE = 3MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 20%)
LOG ON (
NAME = escuela _log,
FILENAME = ‘F:\BaseDatos\LabMartes20181\ escuela _log.ldf',
SIZE = 1MB,
MAXSIZE = unlimited,
FILEGROWTH = 10%)
GO
-- CREACION DE TABLAS
-- Una buena practica es empezar por
aquellas tablas que
no tienen llave foránea:

-- Tabla carrera
CREATE TABLE carrera
(
clave_c int,
nomc varchar(50),
duracion_c float,
constraint pc_cc primary key(clave_c)
)
GO
-- Tabla materia
CREATE TABLE materia
(
clave_m int,
nom_m varchar(50),
cred_m float,
constraint pl_cm primary key (clave_m)
)
GO
-- Tabla PROFESOR
CREATE TABLE profesor
(
clave_p int,
nom_p varchar(150),
dir_p varchar(200),
tel_p varchar(15),
Hor_p varchar(10),
constraint pk_cp primary key(clave_p)
)
GO
-- 2.- Sigue la tabla que tienE llave primaria y llave foranea, en
este caso la tabla alumno

-- Tabla alumno
CREATE TABLE alumno
(
mat_alu int,
nom_alu varchar(150),
edad_alu int,
sem_alu int,
gen_alu varchar(10),
clave_c1 int,
constraint pk_calu primary key(mat_alu),
constraint fk_fc foreign key (clave_c1) references carrera(clave_c)
)
GO
-- 3.- Creacion la tablas relacionales

-- Tabla Alumno-Profesor
create table alumno_profesor
(
mat_alu1 int,
clave_p1 int,
constraint fk_falu1 foreign key(mat_alu1)
references alumno(mat_alu),
constraint fk_fp1 foreign key(clave_p1)
references profesor(clave_p)
)
GO
-- Tabla: Materia-Profesor
create table materia_profesor
(
clave_m2 int,
clave_p2 int,
constraint fk_fm2 foreign key (clave_m2)
references materia(clave_m),
constraint fk_fp2 foreign key (clave_p2)
references profesor(clave_p)
)
GO
-- Tabla: Materia-Alumno
create table materia_alumno
(
clave_m1 int,
clave_alu2 int
constraint fk_fm1 foreign key (clave_m1)
references materia(clave_m),
constraint fk_falu2 foreign key (mat_alu2)
references alumno (mat_alu)
)
GO
20

Eliminar una base de datos


Recomendaciones
Tenga en cuenta la posibilidad de realizar una copia de seguridad completa
de la base de datos.
Una base de datos eliminada solo puede volver a crearse si se restaura de
una copia de seguridad.
Para ejecutar DROP DATABASE, el usuario debe tener, como mínimo, el
permiso CONTROL en la base de datos.
Para eliminar una base de datos:
Conéctese con el Motor de base de datos.
En la barra Estándar, haga clic en Nueva consulta.
Digitar el siguiente ejemplo en la ventana de consulta y haga clic en Ejecutar.
USE master
GO
DROP DATABASE Sales, NewSales
GO
El ejemplo retira o elimina las bases de datos Sales y NewSales
21

Eliminar una base de datos

USE master
GO

DROP DATABASE Autoseguro


GO
-- Creación de Tablas:
1.- Poner en uso la base de datos:
USE Autoseguro
GO
1.- Creación de la tabla: Titular
/* 01.- Tabla Titular */
CREATE TABLE Titular
(
idTitular int IDENTITY(1,1) NOT NULL,
ApePat varchar(50) NOT NULL, ApeMat varchar(50) NOT NULL,
NomPri varchar(50) NOT NULL, NomSeg varchar(50) NULL,
NomOtr varchar(200) NULL, DocIdTipo varchar(15) NULL,
DocIdNum varchar(15) NULL, ViaTipo varchar(5) NULL,
ViaNombre varchar(100) NULL, ViaNum varchar(5) NULL,
ViaMz varchar(5) NULL, ViaLt varchar(5) NULL,
ViaBlock varchar(5) NULL, ViaPiso varchar(5) NULL,
ViaDpto varchar](5) NULL, Telf1 varchar](15) NULL, Tele2 varchar(15) NULL,
Tele3 varchar(15) NULL, Tele4 varchar(15) NULL, Tele5 varchar(15) NULL,
email1 varchar(50) NULL, email2 varchar(50) NULL, email3 varchar(50) NULL,
FecNac date NULL, FecReg date NULL
)
GO
Los corchetes [ ], son de uso obligatorio, cuando el nombre de campo
o columna tienen espacio, por ejemplo:
[Apellido Paterno]
02.- Creación de la Tabla: Beneficiarios
CREATE TABLE Beneficiarios
(
idBenef int IDENTITY(1,1) NOT NULL,
idTitular int NOT NULL,
NomPri varchar(50) NOT NULL,
NomSeg varchar(50) NULL,
NomOtr varchar(200) NULL,
DocIdTipo varchar(15) NULL,
DocIdNum varchar(15) NULL,
FecNac date NULL,
IdParentesco int NULL,
Porcentaje float NULL
)
GO
Crear primary key y foreign key

-- CREACION DE PRIMARY KEY


1.- Poner en uso la BD:
USE Autoseguro
2.- Adicionando las Primary Key:
ALTER TABLE Titular ADD PRIMARY KEY (idTitular)
ALTER TABLE Beneficiarios ADD PRIMARY KEY (idBenef)
GO
CREACION DE FOREIGN KEY y DIAGRAMA
DE RELACIONES

USE Autoseguro
GO
ALTER TABLE Beneficiarios
ADD FOREIGN KEY (idTitular)
REFERENCES Titular
GO
Visualizar el Diagrama de Relaciones

1. Luego de hacer un Refresh o Actualizar en el


explorador,
2. Posicionar el cursor en la carpeta Databases
Diagrams
3. Hacer clic, si nos salen avisos de advertencia.
4. Ejecutar las siguientes instrucciones, como por
ejemplo: asignar propietario a la BD, en ese caso
ejecutar las instrucciones que se muestra en la
diapositiva siguiente.
5. Luego repetir desde el paso 2
6. Continuar-
Como asignar un propietario a la bd:

➢En un nueva consulta, digitar lo siguiente:


use Autoseguro
exec sp_changedbowner sa
➢SA o sa, es un usuario con privilegios de
administrador, es decir, puede realizar
acciones de crear, modificar, eliminar.
Visualizar el Diagrama de Relaciones
Ahora nos muestra la
siguiente ventana ➔:

Haciendo clic seleccionar


las tablas que se desea
visualizar, también lo
puede hacer con una
acción de arrastre del
cursor.

Luego hacer clic en el


botón Add.
Visualizar el Diagrama de Relaciones

Como resultado se
obtiene el diagrama
de relaciones, tal
como se aprecia en
al siguiente imagen

Eliminar una tabla con restricciones

Primero: poner en uso la BD:


USE <dataBase>
Segundo: eliminar la(s) restricción(es) en la tabla, así:
ALTER TABLE <yourTable>
DROP CONSTRAINT <Name_of_Constraint>
Tercero: eliminar la tabla:
DROP TABLE <yourtable>
Eliminar una tabla con restricciones
Por ejemplo, se desea eliminar la tabla
Beneficiarios:
Práctica DDL
✓ En la Base de datos Autoseguro, realizar
las siguientes modificaciones
Comandos DML
Los comandos DML que permiten generar consultas
para ordenar, filtrar y extraer datos de las bases de
datos.
Comando Descripción
SELECT Utilizado para consultar registros de la base de datos que
satisfagan un criterio determinado.

INSERT Utilizado para cargar lotes de datos en la base de datos, es


una única operación.

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.
Cláusulas
Las cláusulas son condiciones de
modificación utilizadas para definir los
datos que desea seleccionar o manipular:
Comando Descripción
Utilizada para especificar las tablas de la cuales se
FROM
van a seleccionar los registros.
Utilizada para especificar las condiciones que debe
WHERE
reunir los registros que se van a seleccionar.
Utilizada para separar los registros seleccionados en
GROUP BY
grupos específicos
Utilizada para expresar la condicion que debe
HAVIND
satisfacer cada grupo.
Utilizada para ordenar los registros seleccionados de
ORDER BY
acuerdo con un orden especifico.
Operadores Lógicos

Operador Descripción

AND Es el "y" lógico. Evalúa dos condiciones y devuelve


un valor de verdad solo si ambas son ciertas.
Es el "O" lógico. Evalúa dos condiciones y devueve
OR un valor de verdad si alguna de las dos en cierta o
verdadera.
Negación lógica. Devuelve el valor contrario a la
NOT
expresión.
Operadores de Comparación

Operador Uso
< Menor que
> Mayor que
<> Distinto que
<= Menor o igual que
>= Mayor o igual que
= Igual que
Utilizado para especificar un intervalo de
BETWEEN
valores
LIKE Utilizado en la comparación de un modelo
Utilizado para especificar registros de una base
In
de datos.
Funciones de Agregado
Las funciones de agregado se usan dentro de una
cláusula SELECT en grupos de registros para
devolver un único valor que se aplica a un grupo
de registros.
Función Descripción
Utilizado para calcular el promedio de los valores de
AVG
un campo determinado.
Utilizada para devolver el número de registros de una
COUNT
selección.
Utilizada para devolver la suma de todos los valores
SUM
de un campo determinado.
Utilizada para devolver el más alto valor de un campo
MAX
especificado.
Utilizada para devolver el más bajo valor de un
MIN
campo especificado.
Ordenar Registros
En predicado se incluye entre la clausula y el
primer nombre del campo a recuperar.

Los posibles predicados son:

Predicado Descripción

Devuelve un deterninado número de registros


TOP
de la tabla.

Omite los registros cuyos campos


DISTINCT
seleccionados coincidan totalmente.
Consultas de Selección

❖La consultas de selección se utilizan para indicar


al motor de datos que devuelva información de la
base de datos
❖Esta información es devuelta en forma de un
conjunto de registros que se pueden almacenar
en un objeto recordset.
❖Este conjunto de registros es modificable.
Consultas básicas
La sintaxis básica de una consulta de selección es:
SELECT campos FROM tabla
En donde campos es la lista de campos que se desean
recuperar y tabla es el origen de los mismos,
Por ejemplo:
SELECT NombreCompañía, Teléfono, Fax FROM Clientes
Esta consulta devuelve un recordset con los campos:
NombreCompañía,Teléfono y Fax
de la tabla:
Clientes
Ordenar los registros
Adicionalmente se puede especificar el orden en que se desean recuperar los
registros de las tablas mediante la cláusula ORDER BY <lista de campos>. En
donde <lista de campos> representa los campos a ordenar. Ejemplo:
SELECT CódPostal,NombreCompañía,Teléfono FROM Clientes
ORDER BY NombreCompañía;
Esta consulta devuelve los campos CódPostal,NombreCompañía,Teléfono de la
tabla Clientes ordenados por el campo NombreCompañía.
Se pueden ordenar los registros por más de un campo, como por ejemplo:
SELECT CódPostal,NombreCompañía,Teléfono FROM Clientes
ORDER BY CódPostal,NombreCompañía;
Incluso se puede especificar el orden de los registros: ascendente mediante la
cláusula ASC que es el valor por defecto o des para descendente. Ejemplo:
SELECT CódPostal,NombreCompañía,Teléfono FROM Clientes
ORDER BY CódPostal DESC,NombreCompañía ASC;
Ordenar los registros
Select * from Clientes order by CódPostal
Select NombreCompañía, NombreContacto, Ciudad, CódPostal
from Clientes order by CódPostal
Select top 25 NombreCompañía, NombreContacto, Ciudad,
CódPostal from Clientes order by CódPostal desc
Select top 10 percent NombreCompañía, NombreContacto,
Ciudad, CódPostal from Clientes order by CódPostal desc
Select Destinatario from Pedidos
Select Destinatario from Pedidos order by Destinatario
Select Distinct Destinatario from Pedidos
Select distinct Destinatario As [Recibido por] from Pedidos
Criterios de Selección
Ya vimos la forma de recuperar registros de las tablas, las formas
empleadas devolvían todos los registros de la mencionada tabla.
A lo largo de este capitulo se estudiarán las posibilidades de filtrar los
registros con el fin de recuperar solamente aquellos que cumplan una
condición preestablecida.
Antes de comenzar este capítulo hay que recalcar tres detalles de vital
importancia:
1. Cada vez que se desee establecer una condición referida a un campo
de texto la condición de búsqueda debe ir encerrada entre comillas
simples.
2. No es posible establecer condiciones de búsqueda en los campos
memo y
3. Las fechas se deben escribir siempre en formato aaaa-mm-dd, hay
que prestar atención a los separadores, es el guión (-), no sirve flash
(/) y además la fecha debe ir entre apóstrofes según se ve en el
siguiente ejemplo: '2015-09-03' se refiere al 3 de septiembre de 2015
Operadores Lógicos

Los operadores lógicos soportados por SQL son:


AND, OR, XOR, Eqv, Imp, Is y Not.
A excepción de los dos últimos todos poseen la siguiente
sintaxis:
<expresión1> operador <expresion2>
La siguiente tabla muestra los diferentes posibles
resultados:
Operadores Lógicos
Los operadores lógicos soportados pro SQL
son: AND, OR, XOR, Eqv, Imp, Is y Not.
A excepción de los dos últimos todos
poseen la siguiente sintaxis:
<expresión1> operador <expresion2>
La siguiente tabla muestra los diferentes
posibles resultados:
Denomina-
<expresión1> Operador <expresión2> Resultado
ción
Verdad AND FALSO FALSO

Y lógico
Verdad AND Verdad Verdad
Operadores lógicos FALSO AND Verdad FALSO

Tablas de verdad
FALSO AND FALSO FALSO
Verdad OR FALSO Verdad

O lógico
Verdad OR Verdad Verdad
FALSO OR Verdad Verdad
FALSO OR FALSO FALSO
Verdad XOR Verdad FALSO

O exclusivo
Verdad XOR FALSO Verdad
FALSO XOR Verdad Verdad
FALSO XOR FALSO FALSO
Verdad Eqv Verdad Verdad
Equivalencia

Verdad Eqv FALSO FALSO


FALSO Eqv Verdad FALSO
FALSO Eqv FALSO Verdad
Verdad Imp Verdad Verdad
Verdad Imp FALSO FALSO
Implicación o condicional

Verdad Imp Null Null


FALSO Imp Verdad Verdad
FALSO Imp FALSO Verdad
FALSO Imp Null Verdad
Null Imp Verdad Verdad
Null Imp FALSO Null
Null Imp Null Null
Criterios de Selección
SELECT * FROM Pedidos WHERE FechaEnvío =
CAST('28/11/1994' AS DATETIME)
SELECT IdPedido, IdCliente, FechaPedido, FechaEntrega,
FechaEnvío FROM Pedidos WHERE FechaEnvío =
CAST('28/11/1994' AS DATETIME)
SELECT IdPedido, IdCliente, FechaPedido, FechaEntrega,
FechaEnvío FROM Pedidos WHERE FechaEnvío =
CAST('27/11/1995' AS DATETIME)
Operadores Lógicos
El ultimo operador denominado Is se emplea para comparar dos
variables de tipo objeto <Objeto1> Is <Objeto2>, este operador
devuelve verdad si los dos objetos son iguales.

Si a cualquiera de las anteriores condiciones le anteponemos el


operador NOT el resultado de la operación será el contrario al
devuelto sin el operador NOT.
Operadores Lógicos
SELECT * FROM Productos WHERE PrecioUnidad > 25
AND PrecioUnidad < 50
SELECT * FROM Productos WHERE PrecioUnidad > 25
AND PrecioUnidad < 50 OR PrecioUnidad = 10
SELECT * FROM Productos WHERE IdCategoría = 1
SELECT * FROM Productos WHERE NOT IdCategoría = 1
Operadores Lógicos
SELECT * FROM Pedidos
SELECT * FROM Pedidos WHERE CiudadDestinatario =
'Madrid' OR CiudadDestinatario = 'Lyon'
SELECT * FROM Pedidos WHERE (Cargo > 100 AND cargo
< 500) OR (CiudadDestinatario = 'Lyon' AND
RegiónDestinatario = Null) ORDER BY CARGO
SELECT * FROM Pedidos WHERE (Cargo > 100 AND cargo
< 500) OR (CiudadDestinatario = 'Madrid' AND
RegiónDestinatario = Null) ORDER BY CARGO
Operadores Lógicos
Para indicar que deseamos recuperar los registros según el
intervalo de valores de un campo emplearemos el operador
BETWEEN, cuya sintaxis es:
Campo [Not] BETWEEN valor1 And Valor2
La condición Not es opcional.
En este caso la consulta devolvería los registros que
contengan en “campo un valor incluido en el intervalo valor1
y valor2.
Si anteponemos la condición Not, devolverá aquellos valores
no incluídos en el intervalo.
SELECT * FROM Pedidos WHERE CódPostalDestinatario
BETWEEN ‘28000’ And ‘28999’
Operadores Lógicos
Operador BETWEEN, cuya sintaxis es:
Campo [Not] BETWEEN valor1 And Valor2
Ejemplos:
SELECT IdPedido, IdCliente, FechaPedido FROM Pedidos
WHERE CódPostalDestinatario BETWEEN ‘28000’ And
‘28999’
Devuelve registro que se encuentra entre el rango 28000
y 28999
SELECT IdPedido, IdCliente, FechaPedido FROM Orders
WHERE CódPostalDestinatario Not BETWEEN ‘28000’
And ‘28999’
Devuelve registro que no se encuentran entre el rango
‘28000’ y ‘28999’
El operador LIKE
Se utiliza para comparar una expresión de cadena con un
modelo en una expresión SQL.
Su sintaxis es:
Expresión LIKE modelo
En donde: Expresión, es una cadena, modelo o campo
contra el que se compara la expresión.
El operador LIKE, se puede utilizar para encontrar valores
en los campos que coincidan con el modelo especificado.
Por modelo puede especificar un valor completo (Ana
María) o se pueden utilizar caracteres comodín como los
reconocidos por el sistema operativo para encontrar un
rango de valores, por ejemplo:
LIKE An%.
El operador LIKE

SELECT NombreContacto FROM Proveedores


ORDER BY NombreContacto

SELECT NombreContacto FROM Proveedores


WHERE NombreContacto LIKE 'Cha%'

SELECT NombreContacto FROM Proveedores


WHERE NombreContacto LIKE '%Cha%‘
El operador LIKE
El operador LIKE se puede utilizar en una
expresión para comparar un valor de un
campo con una expresión de cadena.
Por ejemplo: si introduce LIKE B% en una
consulta SQL, la consulta devuelve todos
los valores de campo que comiencen por la
letra B.
En una consulta con parámetros, puede
hacer que el usuario escriba el modelo que
se va a utilizar.
El operador LIKE

El operador LIKE se puede utilizar en una expresión para


comparar un valor de un campo con una expresión de
cadena.

Por ejemplo: si introduce LIKE C* en una consulta SQL,


la consulta devuelve todos los valores de campo que
comiencen por la letra C.

En una consulta con parámetros, puede hacer que el


usuario escriba el modelo que se va a utilizar.
El operador LIKE
◼ El ejemplo siguiente devuelve los datos que
comienza con la letra P seguido de cualquier letra
entre A y F y de tres dígitos:

LIKE ‘P%###’

◼ Este ejemplo, devuelve los campos cuyo


contenido empiece con la letra de la A a la D
seguidas de cualquier cadena:

LIKE '[A-D]%’
El operador In
Este operador devuelve aquello registros cuyo campo
indicado coincide con alguno de los de una lista.
Su sintaxis es:
Expresión [Not] In (Valor1, Valor2,…)
Su sintaxis es:
SELECT * FROM Orders WHERE ShipCity
In (‘Reims’, ‘Munster’, ‘Río de Janeiro’)
El operador In
SELECT Destinatario, FechaPedido, FechaEntrega,
PaísDestinatario
FROM Pedidos
WHERE PaísDestinatario In ('Irlanda', 'Venezuela', 'Río
de Janeiro')
ORDER BY Destinatario DESC

SELECT Destinatario, FechaPedido, FechaEntrega,


PaísDestinatario
FROM Pedidos
WHERE PaísDestinatario In ('Irlanda', 'Venezuela', 'Río
de Janeiro')
ORDER BY PaísDestinatario, Destinatario DESC
El operador In
SELECT Destinatario, FechaPedido, FechaEntrega, PaísDestinatario
FROM Pedidos
WHERE PaísDestinatario Not In ('Irlanda', 'Venezuela', 'Río de
Janeiro')
ORDER BY Destinatario DESC
SELECT Destinatario, FechaPedido, FechaEntrega, PaísDestinatario
FROM Pedidos
WHERE PaísDestinatario Not In ('Irlanda', 'Venezuela', 'Río de
Janeiro')
ORDER BY PaísDestinatario ASC, Destinatario DESC
Por default el ordenamiento es ASCENDENTE (ASC por lo que no
es necesario especificarlo.
Cláusula WHERE

La cláusula WHERE puede usarse para determinar que registros


de las tablas enumeradas en la cláusula FROM aparecerán en los
resultados de la instrucción SELECT.
Después de escribir esta cláusula se deben especificar las
condiciones expuestas en lo manifestado anteriormente.
Si no se emplea esta cláusula, la consulta devolverá todas las filas
de la tabla.
WHERE es opcional, pero cuando aparece debe ir a continuación
de FROM.
SELECT Apellidos, Nombre, Extensión FROM Empleados WHERE
Extensión > 4000
SELECT IdProducto, UnidadesEnExistencia, UnidadesEnPedido
FROM Productos WHERE UnidadesEnExistencia <=
UnidadesEnPedido
SELECT * FROM Pedidos WHERE FechaEnvío = ‘1994-09-09'
SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos =
'King'
SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos
LIKE ‘S%'
SELECT Apellidos, Nombre FROM Empleados WHERE Sueldo
BETWEEN 2000 And 3000;
SELECT Apellidos, Nombre FROM Empleados WHERE
Apellidos BETWEEN ‘Lon’ And ‘Tol’;
SELECT IdPedido, FechaPedido FROM Pedidos WHERE
FechaPedido BETWEEN ‘1990-11-01' And '2002-06-30'
SELECT IdPedido, IdCliente, Destinatario, Cargo,
PaísDestinatario FROM Pedidos WHERE PaísDestinatario
IN ('Francia','Venezuela', 'Reino Unido')
SELECT IdProducto, UnidadesEnExistencia FROM
Productos WHERE UnidadesEnExistencia <=
UnidadesEnPedido
SELECT Apellidos, Nombre, Extensión FROM
Empleados WHERE Extensión > 4000
SELECT Apellidos, Nombre, Extensión FROM
Empleados WHERE Apellidos = 'King'
SELECT Apellidos, Nombre, Extensión FROM
Empleados WHERE Apellidos LIKE 'S%'
SELECT Apellidos, Nombre FROM Empleados WHERE
Sueldo BETWEEN 2000 AND 3000
SELECT Apellidos, Nombre FROM Empleados WHERE
Apellidos BETWEEN ‘Lon’ AND ‘Tol’

SELECT IdPedido, IdCliente, FechaPedido, FechaEntrega,


FechaEnvío FROM Pedidos WHERE FechaPedido
BETWEEN CAST('01/10/1995' AS DATETIME) AND
CAST('10/10/1995' AS DATETIME)
SELECT Apellidos, Nombre, Ciudad FROM Empleados
WHERE Apellidos BETWEEN Ciudad IN (‘Lima’,
‘Arequipa’, ‘Huancayo’, ‘Cusco’)
Resumen
El lenguaje SQL

IMPORTANCIA:
➢ Es el lenguaje más extendido.
➢ Estandarizado.

COMPONENTES:
➢ Un lenguaje de definición de datos (DDL).
➢ Un lenguage de manipulación de datos (DML).

28
El lenguaje SQL: manipulación de datos

ACCIONES BÁSICAS:
✓ Consulta de información: sentencias SELECT
✓ Inserción de información: sentencias INSERT
✓ Actualización de información: sentencias UPDATE
✓ Eliminación de información: sentencias DELETE

CONSULTAS BÁSICAS:
SELECT atributos FROM tablas WHERE condiciones ORDER BY atributos

Ejemplo:
SELECT * FROM TablaClientes WHERE dni=32777555 ORDER BY nombre

29
El lenguaje SQL: manipulación de datos (II)

PALABRAS RESERVADAS:
SELECT: especifica las columnas (atributos) que se quieren consultar.
DISTINCT: indica que no deben aparecir filas repetidas en el resultado:
p. ej: SELECT DISTINCT nombre, apellido
FROM: especifica las tablas que se van a utilizar (1 ó varias)
p. ej: FROM TablaClientes, TablaUsuarios, TablaSalarios
WHERE: elimina las filas que no cumplen las condiciones especificadas.
p. ej: WHERE edad>25 AND ciudad=‘Lugo’ AND comentario IS NOT NULL
ORDER BY: indica los atributos que determinan el orden del resultado.
p. ej: ORDER BY edad ASC, sueldo DESC, hijos

30
El lenguaje SQL: manipulación de datos (III)

FUNCIONES AGREGADAS:
COUNT: devuelve el número de filas que responden a las condiciones
SELECT COUNT (sueldo) FROM TablaSueldos
SUM: devuenve la suma del atributo seleccionado
SELECT SUM (salario) WHERE dni=32876543
MAX (MIN): devuelve el máximo (mínimo) del campo seleccionado
SELECT MAX (edad) WHERE salario>2000
AVG: devuelve el promedio de una columna determinada
SELECT AVG(edad);

31
El lenguaje SQL: manipulación de datos (III)

FUNCIONES AGREGADAS:
COUNT: devuelve el número de filas que responden a las condiciones
SELECT COUNT (sueldo) FROM TablaSueldos
SUM: devuenve la suma del atributo seleccionado
SELECT SUM (salario) WHERE dni=32876543
MAX (MIN): devuelve el máximo (mínimo) del campo seleccionado
SELECT MAX (edad) WHERE salario>2000
AVG: devuelve el promedio de una columna determinada
SELECT AVG(edad)

31
El lenguaje SQL: manipulación de datos (III)

JOIN SIMPLE:
SELECT TablaClientes.nombre, TablaTelefonos.telefono
FROM TablaClientes, TablaTelefonos
WHERE TablaClientes.dni=TablaTelefonos.dni

Cuando no hay atributos con el mismo nombre en las tablas implicadas, se


puede omitir el nombre de la tabla el la especificación de los atributos:

SELECT nombre, telefono FROM TablaClientes, TablaTelefonos


WHERE TablaClientes.dni=TablaTelefonos.dni

32
El lenguaje SQL: manipulación de datos (IV)

COMBINACIÓN DE TABLAS RESULTADOS:


UNION: concatena las filas resultantes de varias consultas
SELECT nombre, direccion FROM TablaClientes
UNION
SELECT nombre , direccion FROM TablaEmpleados

INTERSECT: sólo devuelve las filas comunes de ambas consultas


SELECT nombre, direccion FROM TablaClientes
INTERSECT
SELECT nombre , direccion FROM TablaEmpleados

33
El lenguaje SQL: manipulación de datos (V)

COMBINACIÓN DE TABLAS RESULTADOS:


EXCEPT: elimina las filas del resultado de la primera consulta que coinciden
con las de la segunda:

SELECT nombre, direccion FROM TablaClientes


EXCEPT
SELECT nombre , direccion FROM TablaEmpleados

34
El lenguaje SQL: manipulación de datos (VI)

INSERCIÓN DE VALORES:

INSERT INTO TablaEmpleados (nombre, apellido, dni)


VALUES (‘Ana ’,’García’, 23456789)

INSERT INTO TablaMorosos (nombre, dni)


SELECT nombre, dni FROM TablaClientes WHERE deuda > 0

ACTUALIZACIÓN DE VALORES:

UPDATE TablaEmpleados SET sueldo=sueldo*1.04

UPDATE TablaEmpleados SET sueldo=100000, cargo=‘director’


WHERE dni=22333444

35
El lenguaje SQL: manipulación de datos (VII)

ELIMINACIÓN DE VALORES:

todas las filas:


DELETE from TablaAlumnosAprobados

filas seleccionadas:
DELETE from TablaEmpleados WHERE dni = 33777888

36
El lenguaje SQL: definición de datos

EJEMPLO DE TIPOS DE DATOS:


CHAR (un carácter), VARCHAR (cadena de caracteres),

FLOAT (número real), INTEGER (número entero),

DATE (fecha)

EJEMPLO DE CREACIÓN DE UNA TABLA


CREATE TABLE TablaEmpleados ( dni VARCHAR(8) NOT NULL,
nombre VARCHAR(15) NOT NULL,
apellido VARCHAR(15) NOT NULL,
fechaNacimiento DATE)

37
El lenguaje SQL: definición de datos

Link: Curso SQL

http://www.mailxmail.com/curso-sql

38

You might also like